microk8s 是ubuntu 生態(tài)里的一個(gè)可以單機(jī)使用的k8s版本靶擦,非常適合學(xué)習(xí)再膳。這里記錄一下乡小,microk8s k8s的安裝過(guò)程。
準(zhǔn)備一臺(tái)ubuntu虛擬機(jī)饵史,這里從ubuntu網(wǎng)站下載了20.x的穩(wěn)定桌面版满钟。
1.? 進(jìn)入系統(tǒng)后再命令行中輸入:
sudo snap install microk8s --classic --channel=1.18/stable
提示數(shù)據(jù)密碼后,進(jìn)入下載與安裝過(guò)程胳喷。
2. 將當(dāng)前用戶(hù)加入microk8s 創(chuàng)建的群組:??
sudo usermod -a -G microk8s $USER
sudo chown -f -R $USER ~/.kube
su - $USER
3. 現(xiàn)在可以用以下命令查看以下microk8s 的狀態(tài):
從狀態(tài)上來(lái)看湃番,Microk8s已經(jīng)運(yùn)行了,但是主要插件還沒(méi)有安裝吭露。
4.? 安裝dns 插件
microk8s enable dns
5. 安裝dashboard:?
?microk8s enable dashboard
安裝完成后檢查一下吠撮,是否所有的Pod都成功啟動(dòng)了: microk8s kubectl get pods -A
都成功啟動(dòng),則顯示如下圖讲竿,如有Image下載失敗泥兰,可參照注釋部分,手動(dòng)下載题禀。
想要訪(fǎng)問(wèn)dashboard鞋诗,還需要通過(guò)下面的命令獲取創(chuàng)建時(shí)生成的臨時(shí)Token:
現(xiàn)在將dashboard 服務(wù)映射到本地及端口10443
映射完成后可以通過(guò)本地Node端口100443訪(fǎng)問(wèn)dashboard.
或者使用本地安裝Poxy方式,執(zhí)行一下命令迈嘹,在本地啟動(dòng)一個(gè)Proxy服務(wù):
microk8s?kubectl proxy
完成后通過(guò)本地瀏覽器削彬,輸入以下地址訪(fǎng)問(wèn):
?http://localhost:8001/api/v1/namespaces/kube-system/services/https:kubernetes-dashboard:/proxy/
注意命名空間是kube-system.
輸入上文提到的獲取Token的命令:
token=$(microk8s kubectl -n kube-system get secret | grep default-token | cut -d" "-f1)
microk8s kubectl -n kube-system describe secret$token
Copy并黏貼Token,進(jìn)入Dashboard
6. 安裝Metrics Server??
主要用來(lái)顯示CPU秀仲,memory等資源消耗融痛。
?microk8s enable dashboard
檢查pod,發(fā)現(xiàn)為起來(lái)神僵,同樣需要手動(dòng)pull一下Image雁刷,并導(dǎo)入microk8s中,參考Notes部分。
完成后重新登陸dashboard保礼,點(diǎn)擊node等資源沛励,即可看到資源使用情況。
Notes:==============================================
?使用describe命令檢查服務(wù)氓英,發(fā)現(xiàn)都沒(méi)有起來(lái)侯勉, 無(wú)法下載pause:3.1等來(lái)自k8s 鏡像倉(cāng)庫(kù)的包。
顯示所有的Pod:?
microk8s? kubectl?
查看kubesystem命名空間,所有addon的pod相信信息:
microk8s kubectl describe pod? [pod name] -n kubesystem
解決方案: 安裝 docker:??
? ? ? ? ? ? ? ?sudo apt-get install docker.io
?添加用戶(hù)到docker group铝阐, 并使用該用戶(hù):
? ? ? ? ? ? ?sudo usermod -aG docker? ${USER}
? ? ? ? ? ? su? -? ${USER}
使用Docker 從其它鏡像倉(cāng)庫(kù)下載pause:3.1 鏡像:
docker pull? mirrorgooglecontainers/pause:3.1
下載后修改Tag:
docker tag? ?mirrorgooglecontainers/pause:3.1? ? ?k8s.gcr.io/pause:3.1
將Puase從docker環(huán)境中導(dǎo)出為址貌,pause.tar
docker save k8s.gcr.io.pause? > pause.tar
將導(dǎo)出的文件,導(dǎo)入microk8s 鏡像列表中:
microk8s ctr? image import pause.tar
稍后重新檢查pod狀態(tài)。
通常使用? ?kubectl describe pod? [podname]? ?-n kube-system 來(lái)查看系統(tǒng)命名空間的pod詳情练对。
相同問(wèn)題的鏡像還包括:
令一種遍蟋,通過(guò)修改鏡像地址,來(lái)處理以來(lái)無(wú)法啟動(dòng)問(wèn)題的方法(網(wǎng)上搜到的螟凭,還沒(méi)有嘗試)
--------------------------------------------------------------------------------------------------------------------------------------
修改pod的sandbox
pod的sandbox 默認(rèn)是 k8s.gcr.io/pause:3.1虚青,這個(gè)鏡像是無(wú)法獲取的。需要將sandbox修改為國(guó)內(nèi)可以獲取的鏡像螺男。
修改/var/snap/microk8s/current/args/kubelet棒厘。 添加--pod-infra-container-image=s7799653/pause:3.1
修改/var/snap/microk8s/current/args/containerd-template.toml的plugins -> plugins.cri -> sandbox_image為s7799653/pause:3.1
重啟服務(wù)
microk8s.stop
microk8s.start
http://www.reibang.com/p/02fd2540fab2