1. 程式人生 > 其它 >離線搭建K8s1.21.2叢集

離線搭建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的映象