
실행 중인 Kubernetes 클러스터에서 CIDR 네트워크 플란넬을 변경할 수 있습니까? 그렇다면 출시된 포드는 어떻게 되나요?
감사해요
답변1
나는 변화에 성공했다플란넬CIDR 네트워크 풀은 다음과 같은 방법으로 수행됩니다.
다음을 통해 새로운 k8s 클러스터를 설치했다고 가정합니다.kubeadm--pod-network-cidr
명령 에 적절한 플래그를 채택하는 빌더 도구 kubeadm init
:
podCIDR
특정 k8s의 매개변수 재정의마디새로운 IP 소스 범위의 리소스, 파이핑 출력에 바람직한 방식:
$ kubectl get no $hostname -o yaml >> file.yaml | sed -i "s~$old_ip~$new_ip~" file.yaml| kubectl delete no $hostname && kubectl create -f file.yaml
net-conf.json
관련 플란넬의 헤더 아래에 있는 "네트워크" 필드를 교체하세요.컨피그맵새로운 네트워크 IP 범위:
$ kubectl edit cm kube-flannel-cfg -n kube-system
net-conf.json: | { "네트워크": "10.244.0.0/16", "백엔드": { "유형": "vxlan" } }
기존 네트워크 풀에 남아 있는 현재 CNI 네트워크 인터페이스를 삭제합니다.
$ sudo ip link del cni0; sudo ip link del flannel.1
Flannel 및 CoreDNS 포드를 각각 다시 생성합니다.
$ kubectl delete pod --selector=app=flannel -n kube-system
$ kubectl delete pod --selector=k8s-app=kube-dns -n kube-system
CoreDNS 포드가 새 네트워크 풀에서 IP 주소를 얻을 때까지 기다립니다. 커스텀 포드는 수동으로 다시 생성하지 않는 한 컨테이너 내부의 이전 IP 주소를 계속 유지한다는 점을 명심하세요.
답변2
Calico의 경우 새 IPpool을 생성하고 이전 IPpool을 비활성화합니다....https://projectcalico.docs.tigera.io/networking/ migration-pools