K8s 開船記-全站登船:Powered by .NET Core on Kubernetes
阿新 • • 發佈:2020-02-24
今天 18:30 左右,我們邁出了 kubernetes 航行的關鍵一步——全站登船,完成了全站應用部署從 docker swarm 叢集向 k8s 叢集的切換,以前所未有的決心與信心重新開起這艘巨輪,而這次航行能否成功就看明天訪問高峰時狂風巨浪下的表現。
部署在 k8s 上的應用會在頁尾顯示下面的資訊,如果航行失敗,"Kubernetes" 會變成 "Linux" 。
Powered by .NET Core on Kubernetes
Kubernetes 叢集部署情況如下。
用了3臺2核4G阿里雲伺服器作為 master 搭建了高可用叢集,worker 節點目前用了12臺4核8G阿里雲伺服器,明天根據負載情況看是否需要加伺服器。
Kuberneres 網路外掛使用的是 calico 。
DNS 伺服器使用的是 coredns ,由於之前遭遇過因為 dns 解析問題造成翻船,這次部署了 nodelocaldns 在每個節點進行本機 dns 快取(相關博文)。
Ingress Controller 使用的是 kubernetes 社群維護的 kubernetes/ingress-nginx,還有一個 nginx 公司與社群共同維護的 nginxinc/kubernetes-ingress,我們推薦使用前者(相關博文)。
部落格站點的部署採用了 HPA(Horizontal Pod Autoscaler) ,基於 CPU 與 QPS 監控指標進行自動伸縮,監控指標資料來自 prometheus (相關博文)。
部署工具用的是 helm ,helm 強大的模板引擎讓我們可以用一個模板搞定 90% 以上應用的部署。
目前一共部署了 115 個應用 pod ,56 個應用 service 。