Kubernetes认证考试自学系列 | 安装kubernetes集群

书籍来源:《CKA/CKAD应试指南:从Docker到Kubernetes完全攻略》

一边学习一边整理读书笔记,并与大家分享,侵权即删,谢谢支持!

附上汇总贴:Kubernetes认证考试自学系列 | 汇总_COCOgsta的博客-CSDN博客


3.2.1 实验拓扑图及环境

拓扑图及配置如图3-5所示。

3.2.2 实验准备

在安装kubernetes之前,需要设置好yum源,关闭selinux及关闭swap等。

步骤1:建议所有节点使用centos7.4,在所有节点上同步/etc/hosts。

[root@vmsX ~]# cat/etc/hosts
127.0.0.1   localhost localhost.localdomain localhost4 localhost4.localdomain4
::1         localhost localhost.localdomain localhost6 localhost6.localdomain6
192.168.26.10   vms10.rhce.cc          vms10
192.168.26.11   vms11.rhce.cc          vms11
192.168.26.12   vms12.rhce.cc          vms12
[root@vmsX ~]#
复制代码

步骤2:在所有节点上配置防火墙和关闭selinux。

[root@vmsX ~]# firewall-cmd --get-default-zone 
trusted 
[root@vmsX ~]# getenforce 
Disabled 
[root@vmsX ~]#
复制代码

步骤3:在所有节点上关闭swap,并注释掉/etc/fstab里的swap相关条目。

[root@vms10 ~]# swapon -s 
文件名               类型           大小        已用     权限
/dev/sda2         partition    10485756       12      -1
[root@vmsX ~]# swapoff -a 
[root@vmsX ~]# sed -i '/swap/s/UUID/#UUID/g' /etc/fstab
复制代码

步骤4:在所有节点上配置好yum源。

[root@vmsX ~]# rm -rf /etc/yum.repos.d/* ; wget -P /etc/yum.repos.d/ ftp://ftp.rhce.cc/k8s/*
[root@vmsX ~]#
...
[root@vmsX ~]#
复制代码

步骤5:在所有节点安装并启动docker,并设置docker自动启动。

yum install docker-ce -y 
systemctl enable docker --now
复制代码

步骤6:在所有节点设置内核参数。

[root@vmsX ~]# cat <<EOF> /etc/sysctl.d/k8s.conf 
net.bridge.bridge-nf-call-ip6tables = 1
net.bridge.bridge-nf-call-iptables = 1
net.ipv4.ip_forward = 1
EOF
[root@vmsX ~]#
复制代码

让其立即生效。

[root@vmsX ~]# sysctl -p /etc/sysctl.d/k8s.conf 
[root@vmsX ~]#
复制代码

步骤7:在所有节点上安装软件包

[root@vmsX ~]# yum install -y kubelet-1.21.1-0 kubeadm-1.21.1-0 kubectl-1.21.1-0 --disable excludes=kubernetes 
已加载插件: fastestmirror
...
更新完毕:
  yum.noarch 0:3.4.3-167.el7.centos 
  
  完毕!
[root@vmsX ~]#
复制代码

步骤8:在所有节点上启动kubelet,并设置开机自动启动。

[root@vmsX ~]# systemctl restart kubelet ; systemctl enable kubelet 
Created symlink from /etc/systemd/system/multi-user.target.wants/kubelet.service to /usr/lib/systemd/system/kubelet.service.
[root@vmsX ~]# 
注意: 此时kubelet的状态为activating 
复制代码

3.2.3 安装master

下面的操作是在vms10上进行的,目的是把vms10配置成master。

步骤1:在master上执行初始化。

[root@vms10 ~]# kubeadm init --image-repository registry.aliyuncs.com/google_containers --kubernetes-version=v1.21.1 --pod-network-cidr=10.244.0.0/16
...输出...
Then you can join any number of worker nodes by running the following on each as root:
Your Kubernetes control-plane has initialized successfully!
To start using your cluster, you need to run the following as a regular user:
mkdir -p $HOME/.kube
sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config
sudo chown $(id -u):$(id -g) $HOME/.kube/config
Alternatively, if you are the root user, you can run:
  export KUBE CONFIG=/etc/ku bernet es/admin.conf
...输出...
Then you can join any number of worker nodes by running the following on each as root:
     kubeadm join 192.168.26.10:6443 --token 524g6o.cpzywevx4ojems69 \
    --discovery-token-ca-cert-hash sha256:6b19ba9d3371c0ac474e8e70569dfc8ac93c76fd841ac8df025a43d49d8cd860
[root@vms10 ~]#
复制代码

步骤2:复制kubeconfig文件。

[root@vms10 ~]# mkdir -p $HOME/.kube
[root@vms10 ~]# sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/confg 
[root@vms10 ~]# sudo chown $(id-u):$(id-g) $HOME/.kube/config
[root@vms10 ~]#
复制代码

3.2.4 配置worker加入集群

下面的步骤是把vms11和vms12以worker的身份加入kubernetes集群。

步骤1:在vms11和vms12分别执行以下命令。

[root@vmsX ~]# kubeadm join 192.168.26.10:6443 --token w6v53s.16xt8ssokjuswlzx --discovery-token-ca-cert-hash sha256:6b19ba9d3371coac474e8e70569dfc8ac93c76fd841ac8df025a43d49d8cd860
[preflight] Running pre-flight checks
   [WARNING Service-Kubelet]: kubelet service is not enabled, please run 'systemctl enable kubelet.service'
...输出...
Run 'kubectl get nodes' on the master to see this node join the cluster.

[root@vmsX ~]#
复制代码

步骤2:切换到master上,可以看到所有节点已经加入集群了。

[root@vms10 ~]# kubectl get nodes
NAME                STATUS    ROLES                  AGE      VERSION 
vms10.rhce.cc      NotReady  control-plane,master   2m27s     v1.21.1
vms11.rhce.cc      NotReady  <none>                  21s      v1.21.1
vms12.rhce.cc      NotReady  <none>                  19s      v1.21.1
[root@vms10 ~]#
复制代码

从这里可以看到所有节点的状态为NotReady,我们需要安装calico网络才能使得k8s正常工作。

3.2.5 安装calico网络

因为在整个kubernetes集群里,pod都是分布在不同的主机上的,为了实现这些pod的跨主机通信,必须要安装CNI网络插件,这里选择calico网络。

步骤1:在master上下载配置calico网络的yaml。

[root@vms10 ~]# wget https://docs.projectcalico.org/v3.19/manifests/calico.yaml 
... 输出 ...
[root@vms10 ~]#
复制代码

步骤2:修改calico.yaml里的pod网段。

把calico.yaml里pod所在网段改成kubeadm init时选项 --pod-network-cidr所指定的网段,用vim打开此文件然后查找“192”,按如下标记进行修改。

# no effect. This should fall within '--cluster-cidr'.
# - name: CALICO_IPV4POOL_CIDR 
#   value: "192.168.0.0/16"
# Disable file logging so 'kubectl logs'works.
- name: CALICO_DISABLE_FILE_LOGGING 
  value: "true"
复制代码

把两个#及#后面的空格去掉,并把192.168.0.0/16改成10.244.0.0/16。

# no effect. This should fall within '--cluster-cidr'.
- name: CALICO_IPV4POOL_CIDR
  value: "10.244.0.0/16"
# Disable file logging so 'kubectl logs' works.
- name: CALICO_DISABLE_FILELOGGING
  value: "true"
复制代码

步骤3:提前下载所需要的镜像。

查看此文件用哪些镜像。

[root@vms10 ~]# grep image calico.yaml
         image: calico/cni:v3.19.1
         image: calico/cni:v3.19.1
         image: calico/pod2daemon-flexvol:v3.19.1
         image: calico/node:v3.19.1
         image: calico/kube-controllers:v3.19.1
[root@vms10 ~]#
复制代码

在所有节点(包括master)上把这些镜像下载下来。

[root@vmsX ~]# for i in calico/cni:v3.19.1 calico/pod2daemon-flexvol:v3.19.1 calico/node:v3.19.1 calico/kube-controllers:v3.19.1 ; do docker pull $i ; done 
...大量输出...
[root@vmsX ~]#
复制代码

步骤4:安装calico网络。

在master上执行如下命令。

[root@vms10 ~]# kubectl apply -f calico.yaml 
... 大量输出 ...
[root@vms10 ~]#
复制代码

步骤5:验证结果。

再次在master上运行命令kubectl get nodes,查看运行结果。

[root@vms10 ~]# kubectl get nodes 
NAME               STATUS      ROLES                   AGE     VERSION 
vms10.rhce.cc       Ready     control-plane, master    13m     v1.21.1
vms11.rhce.cc       Ready     <none>                   11m     v1.21.1
vms12.rhce.cc       Ready     <none>                   11m     v1.21.1
[root@vms10 ~]#
复制代码

可以看到所有节点的状态已经变为Ready了。

猜你喜欢

转载自blog.csdn.net/guolianggsta/article/details/130469950
今日推荐