calico

http://www.cnblogs.com/tingfengainiaini/p/5010696.html
07-10
### Calico 安装、配置与故障排除 Calico 是一个广泛使用的 Kubernetes 网络插件,用于提供 Pod 间的网络互通和网络策略管理。以下是关于 Calico 的安装、配置以及常见故障排除方法。 #### Calico 安装 Calico 提供了多种安装方式,包括通过 Helm Chart、Kubernetes 清单文件(manifest)或 Operator 方式进行部署。 1. **使用官方清单文件安装** ```bash kubectl apply -f https://docs.projectcalico.org/manifests/calico.yaml ``` 2. **使用 Helm Chart 安装** 添加 Calico Helm 仓库并更新: ```bash helm repo add projectcalico https://projectcalico.docs.tigera.io/charts helm repo update ``` 然后安装 Calico: ```bash helm install calico projectcalico/tigera-operator ``` 3. **自定义镜像安装** 如果需要从本地加载 Docker 镜像以进行离线安装,可以使用 `docker save` 和 `docker load` 命令: ```bash docker save -o calico-node-v3.25.0.tar calico/node:v3.25.0 docker save -o calico-pod2daemon-flexvol-v3.25.0.tar calico/pod2daemon-flexvol:v3.25.0 docker save -o calico-cni-v3.25.0.tar calico/cni:v3.25.0 docker save -o calico-kube-controllers-v3.25.0.tar calico/kube-controllers:v3.25.0 docker save -o calico-typha-v3.25.0.tar calico/typha:v3.25.0 ``` 在目标节点上加载镜像: ```bash docker load -i calico-node-v3.25.0.tar docker load -i calico-pod2daemon-flexvol-v3.25.0.tar docker load -i calico-cni-v3.25.0.tar docker load -i calico-kube-controllers-v3.25.0.tar docker load -i calico-typha-v3.25.0.tar ``` 4. **Operator 安装方式** 创建 `Installation` 资源对象以触发 Calico Operator 自动部署组件: ```yaml apiVersion: operator.tigera.io/v1 kind: Installation metadata: name: default spec: registry: swr.cn-east-2.myhuaweicloud.com imagePath: kuboard-dependency calicoNetwork: ipPools: - blockSize: 26 cidr: 10.100.0.1/16 encapsulation: VXLANCrossSubnet natOutgoing: Enabled nodeSelector: all() nodeAddressAutodetectionV4: interface: ens.* ``` 应用该配置后,Tigera Operator 将自动部署所需的 Calico 组件[^3]。 #### Calico 配置 Calico 的主要配置项包括 IP 池(IP Pool)、NAT 设置、封装模式(如 VXLAN 或 IPIP)、网络策略等。 - **IP Pools**:用于定义分配给 Pod 的 CIDR 地址段。 - **Encapsulation**:决定是否启用 VXLAN 或 IPIP 封装,适用于跨子网通信场景。 - **NAT Outgoing**:控制是否为出站流量执行 SNAT。 - **Node Address Detection**:指定用于识别节点 IP 的网络接口(如 `ens.*`)。 #### 故障排除 1. **Pod 报错:`calico/node is not ready: BIRD is not ready`** 此错误通常表示 Calico 的 BGP 协议守护进程 BIRD 未能正常启动。检查以下内容: - 确认节点之间的 BGP 端口(TCP 179)是否开放。 - 查看 `calico-node` Pod 的日志: ```bash kubectl logs -n kube-system calico-node-jbcl5 ``` - 使用 `kubectl describe pod` 查看事件信息: ```bash kubectl describe pod -n kube-system calico-node-jbcl5 ``` - 检查是否由于 IP 地址池耗尽导致无法分配 IP。 2. **节点无法加入集群** - 确保所有节点的主机名、IP 地址在网络中正确解析。 - 检查 `/etc/kubernetes/cni/net.d/` 目录下的 CNI 插件配置是否一致。 - 确保 `calico-node` DaemonSet 正确部署并运行在所有节点上。 3. **网络不通** - 检查 Pod IP 是否被正确分配。 - 使用 `tcpdump` 捕获流量,确认数据包是否到达目标节点。 - 检查 iptables 规则是否被其他程序修改。 - 检查是否启用了正确的封装模式(如 VXLAN)以支持跨子网通信。 4. **镜像拉取失败** - 确保私有镜像仓库地址配置正确。 - 检查 `imagePath` 和 `registry` 字段是否设置正确。 - 使用 `docker pull` 手动测试镜像是否可拉取。 ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值