it-wiki:kubernetes:change_cluster_network
Change serviceSubnet in Kubernetes
Changing the default ip range
kubeadm config upload from-flags --service-cidr 172.26.0.0/16
in:
kubectl -n kube-system edit cm kubeadm-config
Also this file:
/etc/kubernetes/manifests/kube-apiserver.yaml
and this file:
/etc/kubernetes/manifests/kube-controller-manager.yaml
Backup the apiserver cert files:
mv /etc/kubernetes/pki/apiserver.{crt,key} /bak
Save all svcs and recreate svcs:
kubectl get svc --all-namespaces | grep -v -w kubernetes| awk '$4 !~ /None|CLUSTER/{print "kubectl get svc -n "$1" " $2 " -o yaml && echo ---"}' | bash | sed '/clusterIP: 10/d' > all_svc.yaml kubectl get svc --all-namespaces | awk '$4 !~ /None|CLUSTER/{print "kubectl delete svc -n "$1" " $2}' | bash kubectl apply -f all_svc.yaml
update the cluster DNS:
kubectl get svc -A |grep dns
change entry in /etc/cni/net.d/calico-kubeconfig for the intern connecting to kube-api server
server: https://172.30.0.1:443
and change init.yml file
networking: serviceSubnet: 172.30.0.0/16 podSubnet: 172.20.0.0/16
# change kubelet config
kubectl -n kube-system edit cm kubelet-config
update the apiserver certs:
kubeadm init phase certs apiserver --config=kubeadm.yaml
kubeadm upgrade node phase kubelet-config
systemctl restart kubelet
After doing this in all master nodes and rebooting I can see that the services are using 172.26.0.0/16 range.
it-wiki/kubernetes/change_cluster_network.txt · Zuletzt geändert: 2023/10/05 12:03 von marko