Kubernetes CKA課程筆記 15
接著考慮要安裝前面第11篇筆記 — Kubernetes Cluster 安裝步驟細節解說
提到的Kubernetes Processes
在11篇最後面有總結我們總共要安裝的東西有:
這些複雜的安裝則可以全權交給 — kubeadm
kubeadm:
- 基本上每台(master或worker1或worker2)都要安裝
- 但是有一個指令只會執行"乙次"
- 且只執行預計的master node
kubeadm init
- 透過上述指令將機台轉為真正的master node(或稱Control Plane Node)
- 該指令會精心安排整個Cluster setup,具體內容如下:
- 建立/etc/kubernetes目錄
- 產生自簽憑證授權單位(CA)來設定每一個元件的identity
- 產生憑證並放置在內部
- 建立Static Pod manifest files到/etc/kubernetes/manifests
- (上述過程kebelet就會偵測到該目錄的manifest files,並建出Static Pod)
- 建立各種必要設定供必要的Processes(ex:API Server,kubelet,etcd…)
- 待這個指令完成結束就代表單一Node Cluster建立完畢
- 但是記得kubeadm並不安裝或管理kubelet
- 亦即我們需要自行安裝kubelet
另外我們要與K8s Cluster溝通則需要client command line tool:kubectl
所以總共要安裝:
- kubeadm
- kubelet
- kubectl
下面再將上述三樣應用程式簡單敘述:
1.kubelet:
- 啟動Pod與Container
- 每一台都要裝的物件
2.kubeadm:
- Command line tool,專門用來初始化整個Cluster
3.kubectl:
- 也是Command line tool,專門用來對Cluster溝通(建置好後最常用)
並且kubelet,kubeadm,kubectl這三樣都是由Kubernetes官方維護
所以release版本會是相同的
實際安裝:
打開安裝doc網頁,在安裝Container Runtime下面
繼續往下拉找到分散式系統類型分類安裝(ubuntu就是Debian-based的)
所以依序複製上述指令進行安裝,首先進到master node:
- 安裝Kubernetes的安裝套件的repository
2.下載Google Cloud的公開簽署key(後面連線安裝倉庫(repo.)要用)並下載repo
3.最後一步要特別說明,如下安裝三個應用程式
但是沒帶版本號表示決定最後一版
但若是我們想裝以前的版本?
所以要先能查到版本號執行以下:
apt-cache madison kubeadm
接著再重跑指令就看到一大堆版本號:
若要安裝指定版本(例如1.22.2-00)的三個應用程式就要類似這樣打:
sudo apt-get install -y kubelet=1.22.2-00 kubeadm=1.22.2-00 kubectl=1.22.2-00
這邊先跟著講師安裝1.21.0-00版本
而依樣用指令做檢查,執行:
service kubelet status
所以接著就是要跑kubeadm指令,可以先用以下指令查詢指令使用方式:
kubeadm --help
確認安裝版本執行:
kubeadm version
其中如kubectl同理執行kubectl version
以上預定的master機就做完建立Cluster的準備工作了!
但是以上的準備工作(kubelet,kubeadm,kubectl)也要在worker機上安裝
所以到worker兩台準備寫shell script:
在兩台worker機上建立sh名稱為:install-k8s-components.sh
同理開始貼安裝過程要的指令:
wq儲存後記得chmod u+x 檔名(改為可以執行的權限)
然後分別執行下去(./install-k8s-components.sh):
然後一樣用檢查指令看有沒有回應(下面kubelet可以用另外兩個替換):
service kubelet status
kubeadm version
或只打以下,至少會出現指令不完整的提示錯誤
kubeadm
kubectl
至此雖然Cluster還沒裝下去,但是我們有:
另外特別注意到,我寫blog當下的K8s安裝文件已經來到1.22版
有注意到前面開的必要port可能跟講師的1.21不一樣
怕後面真的裝Cluster有問題
所以我上面kubeadm選擇1.21版可能也要將1.21必要port打開:
之後看沒問題可能嘗試將可能多餘的10259,10257 port關掉