# Calico 组件的安装

Calico 是一个 CNI（[Container Network Interface](https://github.com/containernetworking/cni)）插件，在 Master01 节点安装 Calico：

### 下载 Calico 配置

{% code overflow="wrap" %}
```bash
git clone https://gitee.com/zhang993632987/k8s-ha-install.git -b manual-installation-v1.27.x
```
{% endcode %}

### 获取 Pod 子网网段信息

{% code overflow="wrap" %}
```bash
cat /etc/kubernetes/manifests/kube-controller-manager.yaml | grep cluster-cidr= | awk -F= '{print $NF}'
```
{% endcode %}

该网段信息在集群初始化配置文件中进行指定。

### 修改 calico.yaml

{% code overflow="wrap" %}
```bash
cd k8s-ha-install/calico/
POD_SUBNET=`cat /etc/kubernetes/manifests/kube-controller-manager.yaml | grep cluster-cidr= | awk -F= '{print $NF}'`
echo $POD_SUBNET
```
{% endcode %}

```bash
sed -i "s#POD_CIDR#${POD_SUBNET}#g" calico.yaml
```

### 安装 calico

```properties
kubectl apply -f calico.yaml
```

安装 Pod 网络后，你可以通过在 kubectl get pods --all-namespaces 输出中检查 CoreDNS Pod 是否 Running 来确认其是否正常运行。

```properties
kubectl get pods --all-namespaces
```
