最近由於我一個學習群里的大佬過於卷.所以沒辦法,只能強迫自己跟着學習提升下自己的能力.
於是乎就打算先學學k8s,但是傳統的k8s過於復雜.為了方便.就選擇了micro-k8s,結合熟悉的Ubuntu系統.配置安裝都非常的方便.
這里我們照常准備了3台機器,1台master2台workder.
- 具體的配置如下:
master: {
CPU: 2,
RAM: 4GB,
ROM: 50GB,
IP: 192.168.2.24
},
worker: {
CPU: 8,
RAM: 16GB,
ROM: 50GB,
IP: 192.168.22,192.168.23
}
- 首先配置好3台服務器.
然后使用XShell或者類似工具鏈接上每一台服務器. - 安裝micro-k8s
- micro-k8s的安裝非常簡單,可以參考GitHub的Readme.md
- 安裝命令如下:
snap install microk8s --classic
- 三台服務器均需要安裝,等待數秒(具體時間視網絡環境而定),安裝完成后,就可以開始配置了.
- 在主節點上,執行如下命令,獲取添加從節點的命令.
sudo microk8s.add-node
- 可以看到控制台會輸出如下結果的信息:
From the node you wish to join to this cluster, run the following:
microk8s join 192.168.2.24:25000/f872a823e90242ff12a3e3db202e3e05/030ba9fe293e
Use the '--worker' flag to join a node as a worker not running the control plane, eg:
microk8s join 192.168.2.24:25000/f872a823e90242ff12a3e3db202e3e05/030ba9fe293e --worker
If the node you are adding is not reachable through the default interface you can use one of the following:
microk8s join 192.168.2.24:25000/f872a823e90242ff12a3e3db202e3e05/030ba9fe293e
- 其中 microk8s join 192.168.2.24:25000/f872a823e90242ff12a3e3db202e3e05/030ba9fe293e 就是添加子節點的命令.
- 這個時候切換到從節點的兩台服務器分別執行如下命令,由於我們是非root賬戶登錄,執行命令需要添加sudo
# 可在后邊添加 --worker參數,直接添加為worker節點,就不再需要后邊設置了.
sudo microk8s join 192.168.2.24:25000/f872a823e90242ff12a3e3db202e3e05/030ba9fe293e --worker
- 執行這個命令的時間不要拖得太長,避免key失效,若是失效了,從新執行上述添加節點的命令獲取新的即可.
- 在從節點執行加入主節點的命令后,從節點就可以不用管了.這個時候返回到主節點.
- 為了方便我們需要將microk8s的命令弄個別名,不然每次需要輸入的命令太長.
sudo snap alias microk8s.kubectl kubectl
- 添加dns服務
sudo microk8s enable dns
- 設置好別名后,即可通過kubectl來執行命令了.
如:
# 獲取節點信息
sudo kubectl get nodes
# 查看集群信息
sudo kubectl cluster-info
# 查看pods
sudo kubectl get pods
sudo kubectl get services
我這里的環境下會輸出如下信息:(這里的worker和master的設置下邊會講到.一開始所有節點ROLES信息應該是一致的)
NAME STATUS ROLES AGE VERSION
k8s-03 Ready worker 11h v1.23.3-2+d441060727c463
k8s-01 Ready master 11h v1.23.3-2+d441060727c463
k8s-02 Ready worker 11h v1.23.3-2+d441060727c463
- 接下來設置master節點和worker節點
# 設置master節點不調度pod,其中的k8s-01需要根據自身實際情況進行替換,這里為服務器的名字,下方的命令也是如此
sudo kubectl taint node k8s-01 node-role.kubernetes.io/master="":NoSchedule
# 設置角色為master
sudo kubectl label nodes k8s-01 node-role.kubernetes.io/master=master
# 設置工作節點
sudo kubectl label node k8s-02 node-role.kubernetes.io/worker=worker
sudo kubectl label node k8s-03 node-role.kubernetes.io/worker=worker
- 設置完成后,再次獲取nodes的節點信息,就可以看到工作節點和主節點的分布了.
# 獲取節點信息
sudo kubectl get nodes
- 獲取k8s的config信息,使用Lens
sudo microk8s.config
- 復制輸出的內容,添加到lens的config文件中即可鏈接micro-k8s了
- 使用Lens鏈接成功后,可以進入集群的Setting設置中開啟一些服務監控集群狀態.
這三項均開啟后,等待所有Pods成功啟動后,重啟Lens即可看到系統信息