---
title: Calico组件组网操作
description: "1. 已在待部署节点安装Docker组件和Kubernetes组件（kubeadm，kubectl，kubelet）。"
url: https://www.hikunpeng.com/document/detail/zh/kunpengcpfs/ecosystemEnable/Docker/kunpengcontainer_06_0017.html
sourcePath: /source/zh/kunpengcpfs/ecosystemEnable/Docker/kunpengcontainer_06_0017.html
indexId: 7a012e99497adeffae3907f8f52e6ec7e8891d1c656d568c7d8cdad792beec2b75
---
# Calico组件组网操作

#### 前提条件

1. 已在待部署节点安装Docker组件和Kubernetes组件（kubeadm，kubectl，kubelet）。
2. 待部署节点可正常拉取Docker镜像。


#### 操作步骤

1. 初始化启动Kubernetes主节点。
  本节以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命令备用，下一步进行网络平面部署。

  图1 Kubernetes主节点初始化成功图

  图2 Kubernetes主节点初始化状态图


2. 编辑Calico部署yaml文件。
  下载calico.yaml和calicoctl.yaml部署文件，用户无需修改配置文件将默认部署Calico官方推荐的BGP IPIP模式，如用户需要部署VxLAN Only模式的Calico组件，请查看Open vSwitch网络平面管理。


3. 部署集群网络组件。
  使用kubectl部署集群网络组件。

```
kubectl apply -f calico.yaml
kubectl apply -f calicoctl.yaml
alias calicoctl="kubectl exec -i -n kube-system calicoctl -- /calicoctl"
```


  部署完成后如下图3和图4所示，coredns服务已处于Running状态，node状态处于Ready状态。

  图3 Calico组件安装图

  图4 Calico组件部署完成状态图


4. 集群添加节点。
  在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组件组网操作步骤完成。

  图5 Calico组网添加节点图


#### 网络验证

1. 拷贝下列内容，编辑Nginx部署测试yaml文件，测试节点内部网络与跨节点通信能力。
  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

2. 在命令行使用kubectl命令部署Nginx服务，完成后如图6所示，服务正常运行，且已分配对应的IP地址。
  1 kubectl apply -f nginx.yaml

  图6 Calico组网业务部署测试图

  查看节点路由信息和OVS网桥状态，如图7所示，路由信息显示正常，Calico已在内部IP Pool内部分配对应的地址给容器空间，所有服务端口以veth pair形式被Calico组件进行网络映射。节点内与节点间可正常通过路由互相通信。

  图7 Calico组网节点路由&工作负载情况
