因为在整个kubernetes集群里,pod都是分布在不同的主机上的,为了实现这些pod的跨主机通信所以我们必须要安装CNI网络插件,这里选择calico网络。
步骤1:在master上下载配置calico网络的yaml。
[root@master01 ~]# wget https://docs.projectcalico.org/v3.14/manifests/calico.yaml --no-check-certificate
输出….
[root@master01 ~]# ls
anaconda-ks.cfg calico.yaml
步骤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_FILE_LOGGING
value: "true"
改的时候请看清缩进关系,即这里的对齐关系。
步骤5:提前下载所需要的镜像。
查看此文件用哪些镜像:
[root@master01 ~]# 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@master01 ~]#
在所有节点(包括master)上把这些镜像下载下来:
[root@master01 ~]# 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 ~]
步骤3:安装calico网络。
在master上执行如下命令:
[root@master01 ~]# kubectl apply -f calico.yaml
...大量输出...
[root@vms10 ~]#
步骤4:验证结果。
再次在master上运行命令 kubectl get nodes查看运行结果:
[root@master01 ~]# kubectl get nodes
NAME STATUS ROLES AGE VERSION
master01 Ready control-plane,master 21h v1.23.4
worker01 Ready <none> 16h v1.23.4
worker02 Ready <none> 16h v1.23.4
[root@master01 ~]#
可以看到所有节点的状态已经变为是Ready了。
测试k8s集群
[root@master01 ~]# kubectl create deployment nginx --image=nginx
deployment.apps/nginx created
[root@master01 ~]# kubectl expose deployment nginx --port=80 --type=NodePort
service/nginx exposed
[root@master01 ~]# kubectl get pod,svc
NAME READY STATUS RESTARTS AGE
pod/nginx-85b98978db-2lsms 0/1 ImagePullBackOff 0 32s
NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE
service/kubernetes ClusterIP 10.96.0.1 <none> 443/TCP 21h
service/nginx NodePort 10.96.20.147 <none> 80:30536/TCP 8s
作者:ruiliu
链接:https://www.jianshu.com/p/2c436a0ffe7f
来源:简书
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。