简体   繁体   中英

The connection to the server xxxx:6443 was refused - did you specify the right host or port?

I follow this to install kubernetes on my cloud. When I run command kubectl get nodes I get this error:

The connection to the server localhost:6443 was refused - did you specify the right host or port? 

How can I fix this?

If you followed only mentioned docs it means that you have only installed kubeadm , kubectl and kubelet .

If you want to run kubeadm properly you need to do 3 steps more.

1. Install docker

Install Docker ubuntu version . If you are using another system chose it from left menu side.

Why:

If you will not install docker you will receive errror like below:

preflight] WARNING: Couldn't create the interface used for talking to the container runtime: docker is required for container runtime: exec: "docker": e
xecutable file not found in $PATH
error execution phase preflight: [preflight] Some fatal errors occurred:
        [ERROR FileContent--proc-sys-net-bridge-bridge-nf-call-iptables]: /proc/sys/net/bridge/bridge-nf-call-iptables does not exist
        [ERROR FileContent--proc-sys-net-ipv4-ip_forward]: /proc/sys/net/ipv4/ip_forward contents are not set to 1
[preflight] If you know what you are doing, you can make a check non-fatal with `--ignore-preflight-errors=...`
To see the stack trace of this error execute with --v=5 or higher

2. Initialization of kubeadm

You have installed properly kubeadm and docker but now you need to initialize kubeadm . Docs can be found here

In short version you have to run command

$ sudo kubeadm init

After initialization you will receive information to run commands like:

mkdir -p $HOME/.kube
sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config
sudo chown $(id -u):$(id -g) $HOME/.kube/config

and token to join another VM to cluster. It looks like

kubeadm join 10.166.XX.XXX:6443 --token XXXX.XXXXXXXXXXXX \
    --discovery-token-ca-cert-hash sha256:aXXXXXXXXXXXXXXXXXXXXXXXX166b0b446986dd05c1334626aa82355e7 

If you want to run some special action in init phase please check this docs .

3. Change node status to Ready

After previous step you will be able to execute

$ kubectl get nodes
NAME           STATUS     ROLES    AGE     VERSION
ubuntu-kubeadm   NotReady   master   4m29s   v1.16.2

But your node will be in NotReady status. If you will describe it $ kubectl describe node you will see error:

Ready            False   Wed, 30 Oct 2019 09:55:09 +0000   Wed, 30 Oct 2019 09:50:03 +0000   KubeletNotReady              runtime network not ready: Ne
tworkReady=false reason:NetworkPluginNotReady message:docker: network plugin is not ready: cni config uninitialized

It means that you have to install one of CNIs. List of them can be found here .

EDIT

Also one thing comes to my mind.

Sometimes when you turned off and on VM you need to restart kubelet and docker service. You can do it by using

$ service docker restart
$ systemctl restart kubelet

Hope it helps.

Looks like kubeconfig file is missing.. Did you copy admin.conf file to ~/.kube/config?

Verify if there are any proxies set like "http_proxy" or "https_proxy", mostly we set it as environment variables. If yes, then remove the proxies and it should work for you.

I did the following 2 steps. The kubectl works now.

$ service docker restart
$ systemctl restart kubelet

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM