K8s 安装Calico网络插件

Flannel网络插件公认为是最简单的一个插件了,它是一个overlay网络,相对性能和灵活性方面,比Calico要差一些。此外,Calico还可以与服务网格Istio集成,以便在服务网格层和网络基础架构层中解释和实施集群内工作负载的策略。今天我们就装一个Calico网络插件。

在《Centos7.9 yum形式安装kubernetes1.19.9(K8s)系统》的基础上,我们先删除Flannel插件,然后重新初始化主节点

1.主节点安装

kubectl delete -f kube-flannel.yml
kubeadm reset
kubeadm init --kubernetes-version=1.19.9 --apiserver-advertise-address=10.10.52.138 --image-repository registry.aliyuncs.com/google_containers --service-cidr=10.1.0.0/16 --pod-network-cidr=192.168.0.0/16

然后下载Calicov3.13.3版本,去这里下载https://github.com/projectcalico/calico/releases?page=9
在这里插入图片描述

解压下载包,然后用kubectl安装Calico

tar -xzvf release-v3.13.3.tgz
kubectl apply -f release-v3.13.3/k8s-manifests/calico.yaml

安装完毕后,可以看到主节点calico的插件全部是running状态,这样主节点就安装完毕了
在这里插入图片描述

2.从节点node安装

重新初始化从节点

kubeadm reset
systemctl stop kubelet
systemctl stop docker
rm -rf /var/lib/cni/
rm -rf /var/lib/kubelet/*
rm -rf /etc/cni/
ifconfig cni0 down
ifconfig flannel.1 down 
ifconfig docker0 down
ip link delete cni0
ip link delete flannel.1
systemctl restart docker
systemctl restart kubelet

然后加入主节点即可

kubeadm join 10.10.52.138:6443 --token arsai5.9vrwgp8fwyeuxzoh     --discovery-token-ca-cert-hash sha256:790f320e58048aba70662cea76d2c0720171429

成功后就会出现这样的状态
在这里插入图片描述

有时候,calico默认采用first-found方法,选择第一个接口的第一个有效IP地址,如果你有多个有效网卡的时候,要选择一个有效的的网卡。比如

kubectl set env daemonset.apps/calico-node  -n kube-system IP_AUTODETECTION_METHOD=interface=ens1
或者
kubectl set env daemonset.apps/calico-node  -n kube-system IP_AUTODETECTION_METHOD=interface=ens.*
### Kubernetes 1.23 安装 Calico 网络插件教程 以下是关于在 Kubernetes 1.23 版本中安装 Calico 网络插件的具体方法: #### 准备工作 确保 Kubernetes 集群已经正确初始化并运行。可以通过以下命令验证集群的状态: ```bash kubectl get nodes ``` 确认所有节点处于 `Ready` 状态[^2]。 #### 步骤一:下载 Calico 的配置文件 执行以下命令来创建 Calico 插件所需的资源对象: ```bash kubectl create -f https://raw.githubusercontent.com/projectcalico/calico/v3.25.1/manifests/tigera-operator.yaml ``` 此操作会部署 Tigera Operator,它是管理 Calico 资源的核心组件[^1]。 #### 步骤二:应用默认的 Calico 配置 继续通过以下命令完成 Calico 的实际部署: ```bash kubectl create -f https://raw.githubusercontent.com/projectcalico/calico/v3.25.1/manifests/custom-resources.yaml ``` 这一步将定义具体的网络策略和其他必要的参数设置。 #### 检查安装状态 等待一段时间后,可以检查 Pod 和 Node 的状态以确认 Calico 是否已成功启动: ```bash kubectl get pods -n kube-system kubectl get nodes ``` 理想情况下,所有的 Calico Pods 应该进入 `Running` 或者其他稳定状态而不是 `CrashLoopBackOff` 等错误状态[^3]。 如果发现某些 Pod 存在于异常状态,则可进一步排查其日志信息: ```bash kubectl logs <pod-name> -n kube-system ``` #### 常见问题处理 - 如果部分 Pod 处于 Pending 状态,请检查是否有足够的资源分配给这些容器实例。 - 若遇到网络连通性问题,需重新审视 CNI (Container Network Interface) 的配置细节以及防火墙规则是否允许所需端口通信。 --- ### 注意事项 在整个过程中保持耐心很重要,因为有时由于镜像拉取延迟等原因可能导致一些初始阶段看起来像是失败的情况实际上只是时间上的差异而已。 ```python # 示例 Python 脚本用于自动化检测 calico pod 状态 import time from subprocess import run, PIPE def check_calico_status(): while True: result = run(['kubectl', 'get', 'pods', '-n', 'kube-system'], stdout=PIPE) output = result.stdout.decode('utf-8') if "calico-node" in output and "Running" in output: print("Calico is running successfully.") break print("Waiting for Calico to start...") time.sleep(10) check_calico_status() ```
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

机核动力

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值