diff --git a/docs/setup/independent/troubleshooting-kubeadm.md b/docs/setup/independent/troubleshooting-kubeadm.md index 884514b320..0a939b5a5f 100644 --- a/docs/setup/independent/troubleshooting-kubeadm.md +++ b/docs/setup/independent/troubleshooting-kubeadm.md @@ -34,13 +34,42 @@ If you see the following warnings while running `kubeadm init` Then you may be missing ebtables and ethtool on your Linux machine. You can install them with the following commands: -``` -# For ubuntu/debian users, try -apt install ebtables ethtool +- For ubuntu/debian users, try `apt install ebtables ethtool`. +- For CentOS/Fedora users, try `yum install ebtables ethtool`. + +#### kubeadm blocks waiting for `control plane` during installation + +If you see the following blocks while running `kubeadm init` -# For CentOS/Fedora users, try -yum install ebtables ethtool ``` +[kubeadm] WARNING: kubeadm is in beta, please do not use it for production clusters. +[init] Using Kubernetes version: v1.8.0 +[init] Using Authorization modes: [Node RBAC] +[preflight] Skipping pre-flight checks +[kubeadm] WARNING: starting in 1.8, tokens expire after 24 hours by default (if you require a non-expiring token use --token-ttl 0) +[certificates] Using the existing CA certificate and key. +[certificates] Using the existing API Server certificate and key. +[certificates] Using the existing API Server kubelet client certificate and key. +[certificates] Using the existing service account token signing key. +[certificates] Using the existing front-proxy CA certificate and key. +[certificates] Using the existing front-proxy client certificate and key. +[certificates] Valid certificates and keys now exist in "/etc/kubernetes/pki" +[kubeconfig] Using existing up-to-date KubeConfig file: "/etc/kubernetes/controller-manager.conf" +[kubeconfig] Using existing up-to-date KubeConfig file: "/etc/kubernetes/scheduler.conf" +[kubeconfig] Using existing up-to-date KubeConfig file: "/etc/kubernetes/admin.conf" +[kubeconfig] Using existing up-to-date KubeConfig file: "/etc/kubernetes/kubelet.conf" +[apiclient] Created API client, waiting for the control plane to become ready +``` + +Then there may can not connect to net or parameter `Cgroup Driver` diff bettween docker and kubelet in your linux machine. + +- Ensure your machine can connect to net. +- If you find some log in `var/log/message`, look like: +``` +error: failed to run Kubelet: failed to create kubelet: +misconfiguration: kubelet cgroup driver: "systemd" is different from docker cgroup driver: "cgroupfs" +``` +then modify startup parameter `KUBELET_CGROUP_ARGS=--cgroup-driver=` in `/etc/systemd/system/kubelet.service.d/10-kubeadm.conf`(Ubuntu). #### Pods in `RunContainerError`, `CrashLoopBackOff` or `Error` state @@ -141,4 +170,4 @@ The `kubectl describe pod` or `kubectl logs` commands can help you diagnose erro kubectl -n ${NAMESPACE} describe pod ${POD_NAME} kubectl -n ${NAMESPACE} logs ${POD_NAME} -c ${CONTAINER_NAME} -``` \ No newline at end of file +```