Kubernetes集群(z-k8s)配置Cilium完全取代kube-proxy¶
Cilium完全取代kube-proxy运行Kubernetes 提供优化的网络架构
备注
在 kubeadm
初始化集群时候就可以跳过安装 kube-proxy
:
kubeadm初始化集群时跳过安装kube-proxy¶
kubeadm init --skip-phases=addon/kube-proxy
但是对于已经部署 kube-proxy
的集群需要谨慎操作(会断网)
已经安装 kube-proxy
的替换¶
对于已经安装了
kube-proxy
作为 DaemonSet 的Kubernetes集群,则通过以下命令移除kube-proxy
警告
删除kube-proxy会导致现有服务中断链接,并且停止流量,直到Cilium替换完全安装好才能恢复
移除Kubernetes集群Kube-proxy DaemonSet¶
kubectl -n kube-system delete ds kube-proxy
# Delete the configmap as well to avoid kube-proxy being reinstalled during a Kubeadm upgrade (works only for K8s 1.19 and newer)
kubectl -n kube-system delete cm kube-proxy
# Run on each node with root permissions:
iptables-save | grep -v KUBE | iptables-restore
设置Helm仓库:
设置cilium Helm仓库¶
helm repo add cilium https://helm.cilium.io/
执行以下命令启用 cilium kube-proxy free 支持:
Cilium替换kube-proxy¶
#API_SERVER_IP=192.168.6.101
API_SERVER_IP=z-k8s-api.staging.huatai.me
# Kubeadm default is 6443
API_SERVER_PORT=6443
helm upgrade cilium cilium/cilium --version 1.11.7 \
--namespace kube-system \
--set kubeProxyReplacement=strict \
--set k8sServiceHost=${API_SERVER_IP} \
--set k8sServicePort=${API_SERVER_PORT}
备注
这里执行 helm upgrade
是因为我采用的是安装 Kubernetes集群(z-k8s) 时已经部署 Cilium网络 ,现在是更新配置。如果在安装时就启用 kube-proxy-free
则使用 helm install
现在我们可以检查cilium是否在每个节点正常工作:
kubectl检查cilium的pods是否在各个节点正常运行¶
kubectl -n kube-system get pods -l k8s-app=cilium -o wide
完成上述步骤即完成了 Kube-proxy 完全替换成 Cilium ,验证是否工作正常可通过 Kubernetes集群(z-k8s)部署Cilium Ingress