kubeadm安裝Kubernetes1.15安裝部署詳解-Part 1
Kubernetes最初源于谷歌內部的Borg,提供了面向應用的容器集群部署和管理系統。Kubernetes的目標旨在消除編排物理/虛擬計算,網絡和存儲基礎設施的負擔,并使應用程序運營商和開發人員完全將重點放在以容器為中心的原語上進行自助運營。Kubernetes 也提供穩定、兼容的基礎(平臺),用于構建定制化的workflows 和更高級的自動化任務。 Kubernetes 具備完善的集群管理能力,包括多層次的安全防護和準入機制、多租戶應用支撐能力、透明的服務注冊和服務發現機制、內建負載均衡器、故障發現和自我修復能力、服務滾動升級和在線擴容、可擴展的資源自動調度機制、多粒度的資源配額管理能力。 Kubernetes 還提供完善的管理工具,涵蓋開發、部署測試、運維監控等各個環節。
公司業務環境在去年已經完成了全線容器化改造,并結合開源容器管理平臺Rancher(v1.6)流暢運行,后面發現kubernetes 有要一統的江湖節奏。后面個人有時間逐步開始調研k8s集群,先從源碼部署開始的,源碼部署的時候個人使用了ansible,整個過程可謂一通折騰啊,踩了很多坑。網上倒是有不少批量自動化工具,鑒于我們現在準備用在生產環境,未來是要替換公司容器化生產環境,個人按照公司的業務常規服務器配置,重新組織了基于源碼部署的ansible-playbook??梢酝瓿梢患渴鹨惶锥嘀鞲呖捎胟ubernetes集群,模塊如下:
p1-nginx.yaml
p2-keepalived.yml
1-download-sofrware.yaml
2-creat-key.yaml
3-kernelup.yaml
4-basic.yml
5-copy-command.yml
6-etcd.yml
7-kubmaster.yaml
8-kubnode.yaml
9-flannel.yaml
10-coredns.yml
p1-nginx.yaml
p2-keepalived.yml
整個過程花費很多精力和時間,過程痛苦而漫長(O(∩_∩)O哈?。?,當然收獲也很多。
如果個人想學習或者想了解一些配置細節可以用這種方法,但是最好不要自己寫自動化這塊,談不上特別復雜,主要是使用批量部署工具部署分布集群,肯定要使用很對變量對路徑、配置、權限進行規范,這塊調試挺花時間的,另外如果再對集群部署不熟悉就更坑了。學習、了解直接手動敲一遍就行,先別把自動化的事情在初期就一起推進。另外老鳥就另說了,有時間可以折騰,畢竟自動化部署復雜集群效率還是挺高的。
在使用kubadm之前個人是傾向于源碼部署的,后面再看關于k8s相關周邊資料發現,官方對kubeadm安裝部署推廣力度挺大,新功能迭代也很快。另外還有一個重要因素就是k8s的新功能更新也挺快,新的功能、特性都可能面臨配置的變更和參數的變化。還有k8s周邊的組件dns、網絡插件與k8s兼容和匹配都有約束,好多支持版本的特性只會寫在官方發布的文檔里面,以上種種都帶來問題和坑。。。。。。
總體考慮我推薦使用官方推薦工具部署,首先官方發布新版本前會進行自測和功能驗證,兼容性問題基本可以避免,官網工具用戶量也有保障,有問題解決的速度也快。未來跟隨主版本升級也比較方便。省出來的時間可以多去思考公司業務如何在k8s上跑的更加流暢。
[kub-master] 節點名稱 部署服務
172.20.101.157 name=kubm-01 docker、keepalived、nginx、etcd、kube-apiserver、kube-controller-manager、kube-scheduler
172.20.101.164 name=kubm-02 docker、keepalived、nginx、etcd、kube-apiserver、kube-controller-manager、kube-scheduler
172.20.101.165 name=kubm-03 docker、keepalived、nginx、etcd、kube-apiserver、kube-controller-manager、kube-scheduler
[kub-node]
172.20.101.160 name=kubnode-01 kubelet、docker、kube_proxy
172.20.101.166 name=kubnode-02 kubelet、docker、kube_proxy
172.20.101.167 name=kubnode-03 kubelet、docker、kube_proxy
docker -v
Docker version 18.06.1-ce, build e68fc7a
kubeadm version
kubeadm version: &version.Info{Major:"1", Minor:"15", GitVersion:"v1.15.0", GitCommit:"e8462b5b5dc2584fdcd18e6bcfe9f1e4d970a529",
GitTreeState:"clean", BuildDate:"2019-06-19T16:37:41Z",
GoVersion:"go1.12.5", Compiler:"gc", Platform:"linux/amd64"}
Kubernetes
VERSION v1.15.0
more /etc/redhat-release
CentOS Linux release 7.6.1810 (Core)
uname -a
Linux kubm-01 4.20.10-1.el7.elrepo.x86_64 #1 SMP Fri Feb 15 08:52:17 EST 2019 x86_64 x86_64 x86_64 GNU/Linux
nginx -v
nginx version: nginx/1.16.0
keepalived -v
Keepalived v1.3.5 (03/19,2017), git commit v1.3.5-6-g6fa32f2
?### 配置部署
為了減小篇幅放到一個單獨的文檔。
https://blog.51cto.com/michaelkang/2413965
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。