Устранение неполадок kubectl Ошибка: The connection to the server x.x.x.x:6443 was refused – did you specify the right host or port?
Куда копать и что делать для устранения ошибки kubectl:
The connection to the server x.x.x.x:6443 was refused - did you specify the right host or port?
1. kubectl должен выполятся на мастер-ноде.
2. У текущего пользователя должна быть переменная среды конфигурации кластера Kubernetes (подробности о том, как это сделать, перечислены в разделе Подготовка к использованию Kubernetes в качестве обычного пользователя), например:
$ env | grep -i kube KUBECONFIG=/root/.kube/config
3. Служба docker должна быть запущена:
$ systemctl status docker ● docker.service - Docker Application Container Engine Loaded: loaded (/usr/lib/systemd/system/docker.service; enabled; vendor preset: disabled) Drop-In: /etc/systemd/system/docker.service.d └─docker-sysconfig.conf, http-proxy.conf, nfs.conf Active: active (running) since Wed 2019-01-30 13:14:36 NZDT; 21h ago Docs: https://docs.docker.com Main PID: 5834 (dockerd) Tasks: 89 Memory: 189.2M ...
4. Сервис kubelet должен быть запущен:
$ systemctl status kubelet ● kubelet.service - kubelet: The Kubernetes Node Agent Loaded: loaded (/etc/systemd/system/kubelet.service; enabled; vendor preset: disabled) Drop-In: /etc/systemd/system/kubelet.service.d └─10-kubeadm.conf Active: active (running) since Thu 2019-01-31 10:36:55 NZDT; 8min ago Docs: http://kubernetes.io/docs/ Main PID: 16249 (kubelet) Tasks: 18 Memory: 48.4M ...
Если вы получаете ошибку:
Unit kubelet.service entered failed state. systemd[1]: kubelet.service failed.
Попробуйте:
swapoff -a
5. TCP-порт 6443 должен быть указан как порт прослушивания:
# netstat -pnlt | grep 6443 tcp6 0 0 :::6443 :::* LISTEN 4546/kube-apiserver
Если TCP-порт 6443 недоступен, проверьте соответствие правил брандмауэра / iptables:
$ firewall-cmd --list-all public (active) target: default icmp-block-inversion: no interfaces: eno1 sources: services: ssh dhcpv6-client ports: 10250/tcp 8472/udp 6443/tcp protocols: masquerade: yes forward-ports: source-ports: icmp-blocks: rich rules:
Также проверьте логи kubelet:
# journalctl -xeu kubelet
6. Попробуйте перезапустить кластер Kubernetes, который также выполнит некоторые основные проверки:
$ kubeadm-setup.sh restart Restarting containers now ... Detected node is master ... Checking if env is ready ... Checking whether docker can pull busybox image ... Checking access to ca-docker-registry.us.oracle.com/kubernetes_developer ... Trying to pull repository ca-docker-registry.us.oracle.com/kubernetes_developer/pause-amd64 ... 3.0: Pulling from ca-docker-registry.us.oracle.com/kubernetes_developer/pause-amd64 Digest: sha256:f037e4f1990d76b0711e00035d0aeb0869ff9c4ece517e0a90af4ea3f601760e Status: Image is up to date for ca-docker-registry.us.oracle.com/kubernetes_developer/pause-amd64:3.0 Checking firewalld settings ... Checking iptables default rule ... Checking br_netfilter module ... Checking sysctl variables ... Restarting kubelet ... Waiting for node to restart ... .... Restarting pod kube-flannel-ds-6htqw pod "kube-flannel-ds-6htqw" deleted Restarting pod kube-flannel-ds-fmjjw pod "kube-flannel-ds-fmjjw" deleted Restarting pod kube-flannel-ds-j982j pod "kube-flannel-ds-j982j" deleted Master node restarted. Complete synchronization between nodes may take a few minutes.