1. 程式人生 > >CentOS7 部署K8S叢集,最新版1.17.3-0

CentOS7 部署K8S叢集,最新版1.17.3-0

  小白在網上找了很多關於k8s叢集部署的文件,但是版本老舊,到處踩坑,終於部署成功,記錄下過程。

一、準備工作

  虛擬機器:VMware® Workstation 15 Pro

  Xhell 6:Xshell.exe: 6.0.0025

  作業系統:CentOS-7

  這裡對虛擬機器有個要求,2cpu,記憶體2g,不然初始化master會警告

  具體的關於虛擬機器安裝可以看另一篇文章https://www.cnblogs.com/CoderLinkf/p/12393993.html

  部署規劃

192.168.3.180        k8s-master
192.168.2.156        k8s-node1

 

1.關閉防火牆,這點基本所有教程都有

  systemctl stop firewalld

2.關閉selinux

  setenforce 0

3.關閉swap

  swapoff -a    臨時關閉

  free             可以通過這個命令檢視swap是否關閉了

  vim /etc/fstab  永久關閉

4.新增主機名與IP對應的關係

  vim /etc/hosts

192.168.3.180        k8s-master
192.168.2.156        k8s-node1

  當然,ip要改成自己的

5.將橋接的IPV4流量傳遞到iptables 的鏈

cat > /etc/sysctl.d/k8s.conf << EOF
net.bridge.bridge-nf-call-ip6tables = 1
net.bridge.bridge-nf-call-iptables = 1
EOF

sysctl --system

6.安裝Docker

  1)安裝docker

wget https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo -O/etc/yum.repos.d/docker-ce.repo
yum -y install docker-ce

  2)設定docker服務開機自啟

systemctl enable docker
systemctl start docker

  3)檢視docker版本,這裡是最新版

docker --version
Docker version 19.03.6, build 369ce74a3c

7.新增阿里雲YUM軟體源

cat > /etc/yum.repos.d/kubernetes.repo << EOF
[kubernetes]
name=Kubernetes
baseurl=https://mirrors.aliyun.com/kubernetes/yum/repos/kubernetes-el7-x86_64
enabled=1
gpgcheck=1
repo_gpgcheck=1
gpgkey=https://mirrors.aliyun.com/kubernetes/yum/doc/yum-key.gpg
https://mirrors.aliyun.com/kubernetes/yum/doc/rpm-package-key.gpg
EOF

8.安裝kubeadm,kubelet和kubectl

yum makecache fast
yum install -y kubelet kubeadm kubectl --nogpgcheck

  指定版本沒試過,這裡直接安裝最新版,並且跳過公鑰檢查

9.部署Kubernetes Master

  1)初始化kubeadm

kubeadm init --apiserver-advertise-address=192.168.3.180 --image-repository registry.aliyuncs.com/google_containers --kubernetes-version v1.17.3 --service-cidr=10.1.0.0/16 --pod-network-cidr=10.244.0.0/16

  一樣的,記得改成自己的master節點ip

  當出現如下結果,表示初始化順利,這一步要等待幾分鐘,並且一開始沒有進度提示,一度以為卡了

  

  檢視映象

docker images

  

 

 

   2)接下來,將初始化結果中的命令複製出來執行:

      

  mkdir -p $HOME/.kube
  sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config
  sudo chown $(id -u):$(id -g) $HOME/.kube/config

  下面的命令等會兒用來新增節點

kubeadm join 192.168.3.180:6443 --token dfug5t.cscrkl8hy8whplx7 \
    --discovery-token-ca-cert-hash sha256:625f94e773c68ba673f44157e8983640a4505232c0adc0cb8a10f7c05e602c90 

  到此,就可以使用kubectl命令了

kubectl get node

    

 

 

   但是是notready狀態,

  執行  kubectl get pods -n kube-system  命令可以看到,頭兩個狀態是pending

10.安裝flannel

  1)這裡,大部分文件的flannel安裝連結基本都失效了,找了很久找到一個

   https://github.com/coreos/flannel/blob/master/Documentation/kube-flannel.yml

  將這個檔案下載下來,ftp到root下面,然後開始執行

  或者執行命令儲存:wget https://raw.githubusercontent.com/coreos/flannel/master/Documentation/kube-flannel.yml

sed -i '[email protected]@quay.azk8s.cn@g' kube-flannel.yml
kubectl apply -f kube-flannel.yml

    

 

 

   2)檢視是否部署成功

kubectl get pods -n kube-system

    

 

 

   3)再次執行  kubectl get node  命令,可以看到,狀態是ready

    

 

 

   安裝失敗了,怎麼清理環境重新安裝啊?執行一條命令:

  kubeadm reset

  然後重新初始化即可

11.Node節點加入叢集

  node節點虛擬機器,執行1-8步,然後執行master節點初始化kubeadm時的命令

kubeadm join 192.168.3.180:6443 --token dfug5t.cscrkl8hy8whplx7 \
    --discovery-token-ca-cert-hash sha256:625f94e773c68ba673f44157e8983640a4505232c0adc0cb8a10f7c05e602c90 

  如果一直卡在 “Running pre-flight checks” 上,則很可能是時間未同步,token失效導致

  可以在master節點執行

  kubeadm token list

  kubeadm token create

  重新生成即可

  openssl x509 -pubkey -in /etc/kubernetes/pki/ca.crt | openssl rsa -pubin -outform der 2>/dev/null | openssl dgst -sha256 -hex | sed 's/^.* //'

  kubeadm reset<br>$ kubeadm join 192.168.38.11:6443 --token unnscz.aq2r62cuc14w27oa \ --discovery-token-ca-cert-hash sha256:8b79b6461e58c07333cb2851fe74fd4374af8bbbe0bf7e040b415b86ad4fb89d

12.測試kubernetes叢集

  在master節點中

kubectl create deployment nginx --image=nginx
kubectl expose deployment nginx --port=80 --type=NodePort
kubectl get pod,svc

  然後執行  kubectl get pods  檢視

  kubectl get pod,svc -o wide

  通過瀏覽器訪問:http://192.168.3.180:32049 正常訪問

參考文章:

https://www.cnblogs.com/caoxb/p/11243472.html

https://www.cnblogs.com/zyxnhr/p/12181721.html#_labe