1. #如有必要,删除历史cilium组件
  2. kubectl delete ds/cilium -n kube-system ; kubectl delete deploy/hubble-relay -n kube-system ; kubectl delete deploy/hubble-ui -n kube-system ; kubectl delete deploy/cilium-operator -n kube-system ;kubectl delete cm cilium-config ; kubectl delete secret cilium-operator-token* ; kubectl delete secret cilium-token ; kubectl delete crds ciliumclusterwidenetworkpolicies.cilium.io ciliumendpoints.cilium.io ciliumexternalworkloads.cilium.io ciliumidentities.cilium.io ciliumnetworkpolicies.cilium.io ciliumnodes.cilium.io ;kubectl delete clusterrolebinding cilium cilium-operator ; kubectl delete clusterrole cilium cilium-operator; kubectl delete cm cilium cilium-operator;kubectl delete sa cilium cilium-operator -n kube-system;kubectl delete cm/cilium-config -n kube-system
  3. #如有必要,更新cilium证书
  4. kubectl delete secret generic -n kube-system cilium-etcd-secrets
  5. kubectl create secret generic -n kube-system cilium-etcd-secrets \
  6. --from-file=etcd-client-ca.crt=/etc/kubernetes/pki/etcd/ca.crt \
  7. --from-file=etcd-client.key=/etc/kubernetes/pki/etcd/healthcheck-client.key \
  8. --from-file=etcd-client.crt=/etc/kubernetes/pki/etcd/healthcheck-client.crt
  9. #更新cilium
  10. helm upgrade cilium ./cilium --namespace kube-system \
  11. --set identityAllocationMode=kvstore \
  12. --set etcd.enabled=true \
  13. --set etcd.ssl=true \
  14. --set "etcd.endpoints[0]=https://10.8.119.11:2379" \
  15. --set "etcd.endpoints[1]=https://10.8.119.12:2379" \
  16. --set "etcd.endpoints[2]=https://10.8.119.13:2379" \
  17. --set operator.prometheus.enabled=false \
  18. --set kubeProxyReplacement=strict \
  19. --set hubble.enabled=false \
  20. --set hubble.relay.enabled=false \
  21. --set hubble.ui.enabled=false \
  22. --set operator.replicas=3 \
  23. --set ipam.operator.clusterPoolIPv4PodCIDR=10.126.0.0/16 \
  24. --set ipam.mode=kubernetes \
  25. --set k8sServiceHost=10.8.119.168 \
  26. --set k8sServicePort=6443 \
  27. --set hostFirewall.enabled=true \
  28. --set nodePort.enabled=true \
  29. --set hostServices.enable=true \
  30. --set bpf.clockProbe=true \
  31. --set bpf.waitForMount=true \
  32. --set bpf.preallocateMaps=true \
  33. --set bpf.lbMapMax=262144 \
  34. --set cni.chainingMode=portmap \
  35. --set hostServices.enabled=true \
  36. --set hostPort.enabled=false \
  37. --set cluster.name="zl-pro-cluster" \
  38. --set tunnel="vxlan" \
  39. --set cluster.id="2" \
  40. --set l7Proxy=false \
  41. --set installIptablesRules=false \
  42. --set bpf.masquerade=true
  43. ssh-agent /bin/bash
  44. ssh-add
  45. #备份kube-proxy
  46. kubectl get ds/kube-proxy -n kube-system -o yaml >kube-proxy.yaml
  47. kubectl get cm/kube-proxy -n kube-system -o yaml >kube-proxy-cm.yaml
  48. #删除kube-proxy
  49. kubectl delete ds/kube-proxy -n kube-system
  50. kubectl delete cm/kube-proxy -n kube-system
  51. #删除ipvs规则
  52. ansible 'k8snode' -e 'ansible_python_interpreter=/usr/bin/python3' -m shell -a "apt -o Acquire::http::proxy="http://10.5.15.22:3128/" update'
  53. ansible 'k8snode' -e 'ansible_python_interpreter=/usr/bin/python3' -m shell -a "apt-get -o Acquire::http::proxy="http://10.5.15.22:3128/" install ipvsadm -y "
  54. ansible 'k8snode' -e 'ansible_python_interpreter=/usr/bin/python3' -m shell -a "ipvsadm --clear"
  55. ansible 'k8snode' -e 'ansible_python_interpreter=/usr/bin/python3' -m shell -a "ip link delete kube-ipvs0"
  56. #终止iptables规则
  57. ansible 'k8snode' -e 'ansible_python_interpreter=/usr/bin/python3' -m shell -a "iptables -F && systemctl restart kubelet"
  58. 更新失败回滚方案:
  59. kubectl apply -f kube-proxy-cm.yaml
  60. kubectl apply -f kube-proxy.yaml
  61. helm rollout cilium 1
文档更新时间: 2023-12-25 13:42   作者:张尚