本节以10.244.0.0/16网段作为网络驱动CIDR并使用默认网关作为网络广播地址为例,若用户需指定其他网段,命令需要进行对应的修改。
1 2 3 4 |
kubeadm init --pod-network-cidr=10.244.0.0/16 mkdir -p $HOME/.kube cp -i /etc/kubernetes/admin.conf $HOME/.kube/config chown $(id -u):$(id -g) $HOME/.kube/config |
初始化完成后如下图1和图2所示,启动完成后查看Kubernetes集群Pods信息显示正常,Node状态处于NotReady状态,备份好输出中的kubeadm join命令备用,下一步进行网络平面部署。
下载calico.yaml和calicoctl.yaml部署文件,用户无需修改配置文件将默认部署Calico官方推荐的BGP IPIP模式,如用户需要部署VxLAN Only模式的Calico组件,请查看Open vSwitch网络平面管理。
使用kubectl部署集群网络组件。
kubectl apply -f calico.yaml kubectl apply -f calicoctl.yaml alias calicoctl="kubectl exec -i -n kube-system calicoctl -- /calicoctl"
在Kubernetes其他待部署节点,输入步骤二中备份的kubeadm join命令,将待部署节点添加到Kubernetes集群中。
1 2 |
kubeadm join <master-ip:port> --token <your-token> \ --discovery-token-ca-cert-hash sha256:<your-sha256-ca> |
如图5所示,集群节点添加完毕后,应看到This node has joined the cluster提示,至此Calico组件组网操作步骤完成。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 |
apiVersion: apps/v1 kind: Deployment metadata: name: nginx-arm-deployment spec: selector: matchLabels: app: arm64v8_nginx replicas: 5 template: metadata: labels: app: arm64v8_nginx spec: containers: - name: nginx image: nginx:latest ports: - containerPort: 80 |
1
|
kubectl apply -f nginx.yaml |
查看节点路由信息和OVS网桥状态,如图7所示,路由信息显示正常,Calico已在内部IP Pool内部分配对应的地址给容器空间,所有服务端口以veth pair形式被Calico组件进行网络映射。节点内与节点间可正常通过路由互相通信。