離線搭建K8s1.21.2叢集
一、 準備材料
離線安裝包:k8s-install.zip
網盤:https://cloud.189.cn/t/z2Y7Nf7RZfau (訪問碼:3jfk)
二、 環境規劃
作業系統 |
IP |
CPU/MEM |
主機名 |
角色 |
CentOS 7.7-x86_64 |
192.168.110.100 |
2/4G |
K8s-master |
master |
CentOS 7.7-x86_64 |
192.168.110.111 |
2/4G |
K8s-node1 |
work node |
【版本號】
name |
version |
Docker |
19.03.12 |
kubeadm |
1.21.2 |
kubernetes |
1.21.2 |
三、 CenOS7.x部署
3.1 部署master節點
3.1.1 一鍵部署
# 解壓k8s-install.zip包,進入解壓後的資料夾
[root@hadoop100 k8s-install]# pwd
/usr/local/java/software/k8s-install
[root@hadoop100 k8s-install]# ls
dashboard-ui docker-ce-19.03.12.tar.gz flannel-v0.14.0.tar install.sh k8s1202-images.tar.gz k8s1202-rpm.tar.gz kube-flannel-v0.14.1.yml packages.tar.gz
# 給指令碼賦許可權
[root@hadoop100 k8s-install]# chmod +x install.sh
[root@hadoop100 k8s-install]# ls
dashboard-ui docker-ce-19.03.12.tar.gz flannel-v0.14.0.tar install.sh k8s1202-images.tar.gz k8s1202-rpm.tar.gz kube-flannel-v0.14.1.yml packages.tar.gz
# 執行指令碼 k8s-master:修改的新hostname
[root@hadoop100 k8s-install]# ./install.sh k8s-master
# 等待指令碼自動安裝,出現如下提示則安裝完成,重啟伺服器
# 重啟後hostname為之前的引數k8s-master
# 該操作會升級系統核心,重啟前核心
# 重啟後核心
3.1.2 使用 kubeadm 初始化叢集
# 初始化叢集
[root@k8s-master ~]# kubeadm init --kubernetes-version=v1.21.2 --apiserver-advertise-address=192.168.110.100 --pod-network-cidr=10.244.0.0/16 --service-cidr=10.96.0.0/12
# 出現如下則叢集初始化完成
# 執行提示命令
[root@k8s-master ~]# mkdir -p $HOME/.kube
[root@k8s-master ~]# sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config
[root@k8s-master ~]# sudo chown $(id -u):$(id -g) $HOME/.kube/config
# 將join命令記錄下來,這是將node節點加入到叢集的執行操作命令:
kubeadm join 192.168.110.100:6443 --token tmfusx.gznjcc8hik1mbzz8 \
--discovery-token-ca-cert-hash sha256:83fe7f7f321d246884814209587ad91cfcd31c6f44607bd101233e4f78882d14
# 使用 kubectl 檢視 nodes
[root@k8s-master ~]# kubectl get nodes
當前狀態Notready,是因為網路外掛flannel還沒有部署
3.1.3 初始化網路外掛 flannel
#載入映象(所有節點都載入)
[root@k8s-master ~]# docker load < flannel-v0.14.0.tar
#初始化(只在master)
[root@k8s-master ~]# kubectl apply -f kube-flannel-v0.14.1.yml
#使用 kubectl 檢視 nodes
[root@k8s-master k8s-install]# kubectl get nodes
至此,master操作完成
3.2 部署node節點
3.2.1 一鍵部署
# 同master節點一樣的操作
[root@hadoop100 k8s-install]# pwd
/usr/local/java/software/k8s-install
[root@hadoop100 k8s-install]# ls
dashboard-ui docker-ce-19.03.12.tar.gz flannel-v0.14.0.tar install.sh k8s1202-images.tar.gz k8s1202-rpm.tar.gz kube-flannel-v0.14.1.yml packages.tar.gz
#部署成功後重啟機器
3.2.2 加入叢集
# 執行master步驟初始化集群后記錄的命令,如下:
kubeadm join 192.168.110.100:6443 --token tmfusx.gznjcc8hik1mbzz8 \
--discovery-token-ca-cert-hash sha256:83fe7f7f321d246884814209587ad91cfcd31c6f44607bd101233e4f78882d14
# 出現如下結果即加入成功
# 去master檢視叢集節點資訊
# 可以看到k8s-node1已經加入叢集,如果STATUS狀態為NotReady,如下圖,就多等一會,可能是加入未完成
3.2.3 複製admin.conf檔案
# 使用scp命令將maser的“/etc/kubernetes/admin.conf”複製到node節點
# k8s-master執行:
[root@k8s-master ~]# scp /etc/kubernetes/admin.conf @192.168.110.111://etc/kubernetes/
# k8s-node1執行:
[root@k8s-node1 ~]# echo "export KUBECONFIG=/etc/kubernetes/admin.conf" >> ~/.bash_profile
[root@k8s-node1 ~]# source ~/.bash_profile
# 現在可以在k8s-node1節點使用kubectl命令了
注:該步驟是為了解決node節點不能使用kubectl命令
3.3 部署其他node節點
重複3.2的部署即可
3.4 部署完成
到此,通過 kubeadm 搭建 k8s 環境已經完成。
四、 k8s視覺化(dashboard)部署
4.1 準備檔案
dashboard-ui目錄下
4.2 載入ui映象
[root@k8s-master images]#cd /usr/local/java/software/k8s-install/dashboard-ui/images
[root@k8s-master images]# docker load < kubernetesui-dashboard.tar
[root@k8s-master images]# docker load < kubernetesui-metrics-scraper.tar
# docker image命令檢視映象匯入是否正常:
擴充套件:
儲存映象到本地:docker save -o kubernetesui-dashboard.tar kubernetesui/dashboard: v2.0.0-rc5
kubernetesui-dashboard.tar:儲存本地的映象包名
kubernetesui/dashboard: v2.0.0-rc5:伺服器裡的映象
4.3 執行配置檔案
[root@k8s-master dashboard-ui]# pwd
/usr/local/java/software/k8s-install/dashboard-ui
[root@k8s-master dashboard-ui]# ls
dashboard-svc-account.yaml dashboard.yml images
[root@k8s-master dashboard-ui]# kubectl apply -f dashboard.yml
擴充套件:
如果要刪除該配置檔案可以執行如下命令:kubectl delete-f dashboard.yml
# 檢查配置檔案提供的pod是否正常執行
# 檢查service資源是否正常映射了我們指定的埠32001(配置檔案裡指定的)
4.4 建立角色及賦權
# 想要訪問dashboard服務,就要有訪問許可權,建立kubernetes-dashboard管理員角色
[root@k8s-master dashboard-ui]# kubectl apply -f dashboard-svc-account.yaml
擴充套件:
刪除角色:kubectl delete clusterrolebinding kubernetes-dashboard
4.6 瀏覽器訪問
瀏覽器輸入:http://192.168.110.100:32001
五、 k8s解除安裝
徹底解除安裝k8s,兩個步驟
步驟一:
sudo kubeadm reset -f
sudo rm -rvf $HOME/.kube
sudo rm -rvf ~/.kube/
sudo rm -rvf /etc/kubernetes/
sudo rm -rvf /etc/systemd/system/kubelet.service.d
sudo rm -rvf /etc/systemd/system/kubelet.service
sudo rm -rvf /usr/bin/kube*
sudo rm -rvf /etc/cni
sudo rm -rvf /opt/cni
sudo rm -rvf /var/lib/etcd
sudo rm -rvf /var/etcd
sudo apt-get remove kube*
步驟二:
yum -y remove kubelet kubectl kubeadm kubernetes-cni
步驟三:
如果需要,還可以去docker裡刪除k8s的映象