k8s安装calico网络

因为在整个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                     16h   v1.23.4
worker02   Ready                     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              443/TCP        21h
service/nginx        NodePort    10.96.20.147           80:30536/TCP   8s

你可能感兴趣的:(k8s安装calico网络)