系統要求: Ubuntu 20.04 LTS, 18.04 LTS or 16.04 LTS或其他支持snapd的操作系統
內存:4G+
硬盤:20G+
安裝microk8s
sudo snap install microk8s --classic
添加當前用戶到用戶組
sudo usermod -a -G microk8s $USER sudo chown -f -R $USER ~/.kube
修改別名 將kubectl定向爲microk8s kubectl
vim ~/.bash_aliases
結尾加入一行 alias kubectl='microk8s kubectl'
然後斷開連接重新登錄
修改沙盒鏡像地址(因爲默認是k8s.gcr.io/pause:3.1,國內訪問不了,需要改爲阿里雲的鏡像)
sudo vim /var/snap/microk8s/current/args/containerd-template.toml
找到sandbox_image = "k8s.gcr.io/pause:3.1"的一行,將k8s.gcr.io替換爲registry.cn-hangzhou.aliyuncs.com/google_containers
退出保存
重啓microk8s
microk8s stop
microk8s start
加入節點
每個節點都執行以上安裝操作
然後主節點執行獲取加入節點命令
microk8s add-node
會得到一堆命令,選擇主節點局域網IP的那條複製到節點去執行
啓用插件
執行命令 microk8s enable xxx
xxx即插件名,比較常用的有dns helm istio等,默認已經開啓了很多插件如非必要是不需要再執行此步驟的
dns 容器網絡, ha-cluster是高可用集羣插件, helm類似應用商店, istio 服務網格
啓用ha-cluster後需要節點執行重新加入
升級
單機部署的升級
sudo snap refresh microk8s --channel=1.21/stable
1.21換成對應版本號即可
集羣升級
<node>替換爲節點名, kubectl drain驅除節點,遷移所有daemonset以外的所有工作負載
microk8s kubectl drain <node> --ignore-daemonsets
可以通過以下命令查看所有負載情況,對應節點應該只剩下daemonset的pod
microk8s kubectl get po -A -o wide
升級節點
sudo snap refresh --stable microk8s
查看節點情況,可以看到當前節點版本已升級到對應版本
microk8s.kubectl get no
恢復節點調度,<node>替換爲節點名
microk8s kubectl uncordon <node>
每個節點重複一遍以上步驟,完成升級
升級失敗 恢復節點
恢復到上一個穩定版本
sudo snap revert microk8s
不van了,卸載
在節點執行
microk8s leave
在主節點執行,將<node>替換爲節點名
microk8s remove-node <node> --force
最後在所有節點都執行
sudo snap remove microk8s