環境
Master: 192.168.20.93
Node1: 192.168.20.94
Node2: 192.168.20.95
采用kubeadm安裝
kubeadm為kubernetes官方推薦的自動化部署工具,他将kubernetes的元件以pod的形式部署在master和node節點上,并自動完成證書認證等操作。
因為kubeadm預設要從google的鏡像倉庫下載下傳鏡像,但目前國内無法通路google鏡像倉庫,是以已将鏡像下好,隻需要将離線包的鏡像導入到節點中就可以了.\
開始安裝
----所有節點操作:----
下載下傳:
解壓下載下傳下來的離線包
原因:沒有bzip2解壓工具,安裝後解壓:
安裝啟動docker,關閉selinux,firewalld,後
配置系統路由參數,防止kubeadm報路由警告:
導入鏡像:
安裝kubelet kubeadm kubectl包:
Master節點操作:
開始初始化master:
kubernetes預設支援多重網絡插件如flannel、weave、calico,這裡使用flanne,就必須要設定--pod-network-cidr參數,10.244.0.0/16是kube-flannel.yml裡面配置的預設網段,如果需要修改的話,需要把kubeadm init的--pod-network-cidr參數和後面的kube-flannel.yml裡面修改成一樣的網段就可以了。
部分會安裝失敗:
發現原來是kubelet預設的cgroup的driver和docker的不一樣,docker預設的cgroupfs,kubelet預設為systemd,需要将kubelet的cgroup改為和docker的cgroup相同: "Environment="KUBELET_CGROUP_ARGS=--cgroup-driver=systemd""
重新開機reload
此時記得将環境reset一下
執行:
在重新執行:
完成後,将kubeadm join xxx儲存下來,等下node節點加入叢集需要使用
如果忘記了,可以在master上通過kubeadmin token list得到
此時root使用者還不能使用kubelet控制叢集需要,按提示配置下環境變量
對于非root使用者
對于root使用者
也可以直接放到~/.bash_profile
source一下環境變量
kubectl version測試:
安裝網絡,可以使用flannel、calico、weave、macvlan這裡我們用flannel。
下載下傳此檔案
或直接使用離線包裡面的
若要修改網段,需要kubeadm --pod-network-cidr=和這裡同步
vim kube-flannel.yml
修改network項:
"Network": "10.244.0.0/16",
執行
node節點操作
使用剛剛kubeadm後的kubeadm join --xxx:
多次加入報錯檢視/var/log/message日志.
加入成功
在master節點上check一下:
kubernetes會在每個node節點建立flannel和kube-proxy的pod: