After restarting the device:
kubectl get node The connection to the server x.x.x.x:6443 was refused - did you specify the right host or port? systemctl status kube-apiserver prompts: Unit kube-apiserver.service could not be found There is no such service, so it is judged that the configuration file is wrong
Decided to reconstruct the K8S cluster
Solution:
# 1. Check if kubectl command is working kubectl get node # 2. Go to the home directory cd ~ # 3. Check if the .kube directory exists ll -a # List all files to check if .kube directory exists # 4. Remove the .kube directory sudo rm -rf .kube/ # 5. Restart Docker service sudo systemctl restart docker # Restart Docker # 6. Restart kubelet service sudo systemctl restart kubelet # Restart kubelet # 7. Reset the Kubernetes setup sudo kubeadm reset # Reset Kubernetes cluster # 8. Remove CNI configurations sudo rm -rf /etc/cni/ # Delete CNI configurations # 9. Reinitialize Kubernetes with specific settings kubeadm init --kubernetes-version=1.23.5 --apiserver-advertise-address=192.168.1.21 --image-repository registry.aliyuncs.com/google_containers --service-cidr=192.1.0.0/16 --pod-network-cidr=192.244.0.0/16 # 10. After successful initialization, configure Kubernetes for the user mkdir -p $HOME/.kube # Create the .kube directory sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config # Copy admin config sudo chown $(id -u):$(id -u) $HOME/.kube/config # Change ownership of the config file # 11. Download the Flannel network configuration file wget https://raw.githubusercontent.com/coreos/flannel/master/Documentation/kube-flannel.yml # Download Flannel YAML file # 12. Copy the kube-flannel.yml file to /opt and apply it sudo cp kube-flannel.yml /opt/ # Copy the Flannel YAML file to /opt directory kubectl apply -f /opt/kube-flannel.yml # Apply the Flannel configuration # After these steps, check the node status kubectl get nodes # Check if the node is ready
- Issue with Flannel and CoreDNS Pods Not Starting: When checking the pods, Flannel and CoreDNS are not starting.
Error: Flannel is having an issue where it cannot obtain the necessary subnet lease. Specifically, the PodCIDR (assigned IP range for pods) 192.244.0.0/24 is not included within Flannel’s network configuration subnet 10.244.0.0/16.
- Fixing the Subnet Configuration: Edit the Flannel ConfigMap: To resolve the subnet issue, the Flannel ConfigMap needs to be updated.
First, inspect the Flannel Pod:
kubectl describe pod kube-flannel-ds-99grr -n kube-flannel # Describe the Flannel pod for detailed information
Check the logs:
kubectl logs kube-flannel-ds-fqvvv -n kube-flannel # Check the Flannel pod logs for errors Error Explanation: The Flannel network plugin is unable to get a subnet lease because the PodCIDR 192.244.0.0/24 is not within the subnet 10.244.0.0/16 specified in Flannel’s configuration.
Solution: You can resolve this by modifying the Flannel network configuration:
Edit the Flannel ConfigMap:
kubectl edit configmap kube-flannel-cfg -n kube-flannel # Edit the Flannel ConfigMap in the kube-flannel namespace
Change the subnet in the ConfigMap to match the required PodCIDR.
After modifying the subnet in the kube-flannel-cfg ConfigMap, Flannel should be able to allocate the necessary subnets and the pods should start successfully.
Top comments (0)