安装kubernetes v1.19.0

网友投稿 869 2022-10-28

本站部分文章、图片属于网络上可搜索到的公开信息,均用于学习和交流用途,不能代表睿象云的观点、立场或意见。我们接受网民的监督,如发现任何违法内容或侵犯了您的权益,请第一时间联系小编邮箱jiasou666@gmail.com 处理。

安装kubernetes v1.19.0

实验拓扑图及环境

实验准备

建议所有节点使用Centos7.4,在所有节点上同步/etc/hosts

[root@vmsX ~]# cat etc/hosts127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4::1 localhost localhost.localdomain localhost6 localhost6.localdomain6192.168.26.61 vms61.rhce.cc vms61192.168.26.62 vms62.rhce.cc vms62192.168.26.63 vms63.rhce.cc vms63[root@vmsX ~]#

在所有节点上配置防火墙和关闭selinux

[root@vmsX ~]# firewall-cmd --get-default-zonetrusted[root@vmsX ~]# getenforceDisabled[root@vmsX ~]#

在所有节点上关闭swap,并注释掉/etc/fstab里swap相关条目:[root@vmsX ~]# swapon -s文件名             类型      大小  已用  权限/dev/sda2               partition   10485756    12  -1[root@vmsX ~]# swapoff dev/sda2[root@vmsX ~]# sed -i '/swap/s/UUID/#UUID/g' etc/fstab

在所有节点上配置好yum源(请提前安装好wget,再执行下面的操作)

[root@vmsX ~]# rm -rf etc/yum.repos.d/* ; wget -P etc/yum.repos.d/ ftp://ftp.rhce.cc/k8s/*--2020-08-28 12:38:36-- ftp://ftp.rhce.cc/k8s/* => “/etc/yum.repos.d/.listing”...[root@vmsX ~]#在所有节点安装并启动docker,并设置docker自动启动。yum install docker -ysystemctl enable docker --now

在所有节点设置相关属性

[root@vmsX ~]# cat < etc/sysctl.d/k8s.confnet.bridge.bridge-nf-call-ip6tables = 1net.bridge.bridge-nf-call-iptables = 1net.ipv4.ip_forward = 1EOF[root@vmsX ~]#

让其立即生效:

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

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

[root@vmsX ~]# yum install -y kubelet-1.19.0-0 kubeadm-1.19.0-0 kubectl-1.19.0-0 --disableexcludes=kubernetes已加载插件:fastestmirror......更新完毕:完毕![root@vmsX ~]#

注意:安装时如果没有指定版本则安装的最新版本。在所有节点上启动kubelet,并设置开机自动启动:

[root@vmsX ~]# systemctl restart kubelet ; systemctl enable kubeletCreated symlink from etc/systemd/system/multi-user.target.wants/kubelet.service to usr/lib/systemd/system/kubelet.service.[root@vmsX ~]#

安装master在安装过程中,可以通过—image-repository来指定镜像仓库:

[root@vms61 ~]# kubeadm init --image-repository registry.aliyuncs.com/google_containers --kubernetes-version=v1.19.0 --pod-network-cidr=10.244.0.0/16

但是在写本文档的时候,阿里云镜像里并没有k8s1.19的镜像,所以这里提前下载下来,并事先导入。在所有节点上导入已经下载好的镜像:

[root@vms6X ~]# docker load -i k8s-1.19-img.tar …大量输出…[root@vms6X ~]#[root@vms61 ~]# kubeadm init --image-repository registry.aliyuncs.com/google_containers --kubernetes-version=v1.19.0 --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:...输出...Then you can join any number of worker nodes by running the following on each as root:kubeadm join 192.168.26.61:6443 --token rzf4r7.y50x0r5zrrkvllao \ --discovery-token-ca-cert-hash sha256:227bf56c53a225da581a414d2a15e6afa3e3b4e1b57553c0eedee843b158f177[root@vms61 ~]#

上面输出提示安装完之后要干嘛,按上面的提示分别执行每条命令:

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

上面的提示中,kubeadm join 192.168.26.61:6443 --token rzf4r7.y50x0r5zrrkvllao \--discovery-token-ca-cert-hash sha256:227bf56c53a225da581a414d2a15e6afa3e3b4e1b57553c0eedee843b158f177是用于node加入到kubernetes集群的命令,如果忘记了保存此命令的话,可以用如下命令获取:

[root@vms61 ~]# kubeadm token create --print-join-command......kubeadm join 192.168.26.61:6443 --token q57xry.gxra4khr9hg5ylj0 --discovery-token-ca-cert-hash sha256:227bf56c53a225da581a414d2a15e6afa3e3b4e1b57553c0eedee843b158f177 [root@vms61 ~]#

注意1:这里用--image-repository选项指定使用阿里云的镜像注意2:--pod-network-cidr=10.244.0.0/16 #这里指的是pod的网段注意3:如果想安装其他版本的话,直接在--kubernetes-version里指定:kubeadm init --image-repository registry.aliyuncs.com/google_containers --kubernetes-version=v1.18.2 --pod-network-cidr=10.244.0.0/16(当然要先安装对应的kubelet的版本)

配置node加入集群在node11和node12分别执行

[root@vmsX ~]# kubeadm join 192.168.26.61:6443 --token q57xry.gxra4khr9hg5ylj0 --discovery-token-ca-cert-hash sha256:227bf56c53a225da581a414d2a15e6afa3e3b4e1b57553c0eedee843b158f177[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 ~]#

[root@vms61 ~]# wget https://docs.projectcalico.org/v3.14/manifests/calico.yaml... 输出 ...[root@vms61 ~]#

把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"

把两个#去掉

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_FILE_LOGGING value: "true"

改的时候请看清缩进关系,即这里的对齐关系。

查看此文件用哪些镜像:

[root@vmsX ~]# grep image calico.yaml image: calico/cni:v3.14.0 image: calico/cni:v3.14.0 image: calico/pod2daemon-flexvol:v3.14.0 image: calico/node:v3.14.0 image: calico/kube-controllers:v3.14.0[root@vmsX ~]#

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

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

在master上安装calico网络:

[root@vms61 ~]# kubectl apply -f calico.yaml...大量输出...[root@vms61 ~]#

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

[root@vms61 ~]# kubectl get nodesNAME STATUS ROLES AGE VERSIONvms61.rhce.cc Ready master 19m v1.19.0vms62.rhce.cc Ready 16m v1.19.0vms63.rhce.cc Ready 16m v1.19.0[root@vms61 ~]#

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

第9期CKA基于最新版v1.19版,详情咨询:

上一篇:开发人员(上图的最左边)工作在自己的工作站上
下一篇:DevOps流程和持续交付流水线可能非常复杂
相关文章

 发表评论

暂时没有评论,来抢沙发吧~