離線搭建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的鏡像

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM