The connection to the server x.x.x.:6443 was refused - did you specify the right host or port? Kubernetes [closed]
Asked Answered
E

20

14

I've installed, Docker, Kubectl and kubeAdm. I want to create my device model and device CRDs (I'm following this guide. So, when I run the command :

kubectl create -f devices_v1alpha1_devicemodel.yaml

as a user I get the following out:

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

(I have added the permission for the user to access the .kube folder)

With netstat, I get :

> ubuntu@kubernetesmaster:~/src/github.com/kubeedge/kubeedge/build/crds/devices$
> sudo netstat -atunp    Active Internet connections (servers and
> established)                                                 Proto
> Recv-Q Send-Q Local Address           Foreign Address         State   
> PID/Program name      tcp        0      0 0.0.0.0:22             
> 0.0.0.0:*               LISTEN      1298/sshd             tcp        0    224 10.0.0.68:22            160.98.31.160:52503     ESTABLISHED
> 2061/sshd: ubuntu [   tcp6       0      0 :::22                   :::*
> LISTEN      1298/sshd             udp        0      0 0.0.0.0:68      
> 0.0.0.0:*                           910/dhclient          udp        0      0 10.0.0.68:123           0.0.0.0:*                          
> 1241/ntpd             udp        0      0 127.0.0.1:123          
> 0.0.0.0:*                           1241/ntpd             udp        0      0 0.0.0.0:123             0.0.0.0:*                          
> 1241/ntpd             udp6       0      0 fe80::f816:3eff:fe0:123 :::*
> 1241/ntpd             udp6       0      0 2001:620:5ca1:2f0:f:123 :::*
> 1241/ntpd             udp6       0      0 ::1:123                 :::*
> 1241/ntpd             udp6       0      0 :::123                  :::*
> 1241/ntpd

With lsof -i :

ubuntu@kubernetesmaster:~/src/github.com/kubeedge/kubeedge/build/crds/devices$ sudo lsof -i
COMMAND   PID   USER   FD   TYPE DEVICE SIZE/OFF NODE NAME
dhclient  910   root    6u  IPv4  12765      0t0  UDP *:bootpc
ntpd     1241    ntp   16u  IPv6  15340      0t0  UDP *:ntp
ntpd     1241    ntp   17u  IPv4  15343      0t0  UDP *:ntp
ntpd     1241    ntp   18u  IPv4  15347      0t0  UDP localhost:ntp
ntpd     1241    ntp   19u  IPv4  15349      0t0  UDP 10.0.0.68:ntp
ntpd     1241    ntp   20u  IPv6  15351      0t0  UDP ip6-localhost:ntp
ntpd     1241    ntp   21u  IPv6  15353      0t0  UDP [2001:620:5ca1:2f0:f816:3eff:fe0a:874a]:ntp
ntpd     1241    ntp   22u  IPv6  15355      0t0  UDP [fe80::f816:3eff:fe0a:874a]:ntp
sshd     1298   root    3u  IPv4  18821      0t0  TCP *:ssh (LISTEN)
sshd     1298   root    4u  IPv6  18830      0t0  TCP *:ssh (LISTEN)
sshd     2061   root    3u  IPv4  18936      0t0  TCP 10.0.0.68:ssh->160.98.31.160:52503 (ESTABLISHED)
sshd     2124 ubuntu    3u  IPv4  18936      0t0  TCP 10.0.0.68:ssh->160.98.31.160:52503 (ESTABLISHED)

I've already tried this and:sudo swapoff -a

Episcopal answered 24/6, 2019 at 13:40 Comment(1)
kubectl cluster-info prints the IP:port of the master and DNS. What does it print for your setup?Bensen
O
18

Please perform below steps on the master node. It works like charm.

1. sudo -i

2. swapoff -a

3. exit

4. strace -eopenat kubectl version

Oribella answered 6/4, 2020 at 14:15 Comment(6)
This is not working for me in the mac OS. getting below error "zsh: command not found: swapoff". Can you please help me for the same?Scenarist
Can you please explain the last part strace -eopenat kubectl version. Googling for some time, i came to know, strace is a tool for tracing system tools, which takes -e as expression, but could not understand the underlying fixing it does.Yasminyasmine
WARNING! Following these steps destroyed my RKE2 setup.Andalusia
Doesn't seem like workingFloriated
It works for me, I use swapoff -a on a VM (ubuntu)Agincourt
If anyone is facing this issue on their MacOS with minikube - then restarting minikube would resolve this issue.Rupee
S
17

I am facing similar problem with following error while deploying the pod network into a cluster using flannel:

$ kubectl apply -f https://raw.githubusercontent.com/coreos/flannel/master/Documentation/kube-flannel.yml
The connection to the server 192.168.1.101:6443 was refused - did you specify the right host or port?

I performed below steps to solved the issue:

$ sudo systemctl stop kubelet
$ sudo systemctl start kubelet
$ strace -eopenat kubectl version

then apply the yml file

$ kubectl apply -f https://raw.githubusercontent.com/coreos/flannel/master/Documentation/kube-flannel.yml
podsecuritypolicy.policy/psp.flannel.unprivileged created
clusterrole.rbac.authorization.k8s.io/flannel created
clusterrolebinding.rbac.authorization.k8s.io/flannel created
serviceaccount/flannel created
configmap/kube-flannel-cfg created
daemonset.apps/kube-flannel-ds created
Sylas answered 26/11, 2020 at 8:33 Comment(2)
error: error when creating "pod.yml": Post "192.168.1.5:6443/api/v1/namespaces/default/…": dial tcp 192.168.1.5:6443: connect: connection refusedProsecution
it worked but each time I login to my VM i have to run these commandsGilmagilman
C
6

This is because docker is down. Start docker on your machine.

Cycloparaffin answered 13/6, 2022 at 2:53 Comment(0)
E
4

I solved this exact problem by making sure that in the /etc/hosts file the IP address and host name was set correctly:

192.168.10.11 kube-01.testing

instead of:

127.0.1.1 kube-01.testing

(or 127.0.0.1). This happens on Ubuntu and Debian as far as I know-

Edris answered 24/11, 2022 at 20:36 Comment(0)
L
3

Another suggestion is to restart your container sudo systemctl restart containerd In my situation I'm working with containerd and not a typical docker container

After doing this I think it should fix the issue for you but if doesn't work then try sudo swapoff -a

Latinist answered 21/10, 2022 at 19:59 Comment(0)
A
2

kubelet must be down. you need to check kubelet logs on the master and ensure api server is running and online. then only you should be able to deploy

Aerator answered 24/6, 2019 at 13:52 Comment(0)
D
2

I'll add another reason for this error that was the issue in my case.

I exported the wrong Kubeconfig file to shell and the error message was very accurate in that case - The endpoint for the API server was wrong (and of course other fields like the cluster name and the certificates - but the server endpoint is the first step in the chain).

Durwood answered 30/9, 2020 at 21:32 Comment(0)
R
2

I have tried many ways but couldn't get it work, then accidentally found the solution to my own situation:

In ~/.kube/ I have

drwxr-x---   4  staff   128 25 Jul 22:31 cache
-rw-------   1  staff  8781 25 Jul 22:46 config
drwxr-xr-x   8  staff   256 25 Jul 22:46 configs
-rw-r--r--   1  staff    14 25 Jul 22:31 kubectx
drwxr-xr-x   4  staff   128 29 Jun 16:59 kubens

My assumption is that there is something messed up in the .kube configuration, however I couldn't figure out which files, so I removed most of the directories/files, including cache, config. (If you don't want to keep all the configs, maybe you should remove all of them)

Then from docker dashboard to re-enable kubernetes, to get all the files installed back.

Re-config the docker-desktop by kubectl config use-context docker-desktop.

Finally, my 6443 responded.

Rattletrap answered 26/7, 2022 at 2:59 Comment(0)
T
1

I've encountered this problem and swapoff -a works for me though.

sudo -i
swapoff -a
exit
strace -eopenat kubectl version
Tenace answered 4/2, 2020 at 16:36 Comment(0)
B
1

If you did all the above steps (sudo swapoff -a, kubeconfig file permissions, kubelet and containerd status, etc) and nothing works for you, It is a good idea to take a look at the kubelet logs:

journalctl -xeu kubelet

In my case, I realize that the kubelet wants to download the images, but it fails.

So I turned on the VPN on the node, and after a couple of seconds, everything worked!

Broke answered 22/1, 2023 at 8:14 Comment(0)
Y
0

Assuming that's all the output from your netstat command and that you ran it on the master node (the one you installed Kubernetes via kubadm on), it looks to me like the installation did not complete correctly as none of the usual ports you would expect to see on a Kubernetes master node are present.

Usually on a kubernetes master node you'd expect to see kube-apiserver, kube-scheduler, kube-controller, kubelet and possibly etcd all listening on the network.

What was the output of your kubeadm init command?

Yellowhammer answered 4/2, 2020 at 17:17 Comment(0)
M
0

I ran into this issue as well, I tried the solutions noted above and it did not work for me. Here is what worked for me:

FIX: kubeadm init --apiserver-advertise-address=10.139.0.42 --ignore-preflight-errors all --pod-network-cidr=172.17.0.1/16 --token-ttl 0

source: https://www.c-sharpcorner.com/article/kubernetes-installation-in-redhat-and-centos/

Micropyle answered 20/4, 2021 at 19:21 Comment(0)
I
0

I faced this issue recently due to expired certificates for my K8S cluster. I followed this blog link to renew the certificates and also replace the kube config file that I was using. Note, it is important to replace the kube config post renewal of the certificates or else you would end up getting following error message for kubectl CLIs:

error: You must be logged in to the server (Unauthorized)
Identic answered 11/11, 2021 at 12:49 Comment(0)
I
0

I faced same issue with the same error, You need to check that your container run time (docker/containerd) is active and running:

systemctl status containerd
systemctl restart containerd

systemctl restart kubelet

then if you check its status, it supposed to be up and running and you are able to create k8s objects right now.

Interchangeable answered 5/9, 2022 at 8:58 Comment(0)
J
0

In my case KUBECONFIG was the problem causing the same error.

This solved it:

export KUBECONFIG=/home/$(whoami)/.kube/config
Jordanna answered 15/9, 2022 at 16:33 Comment(2)
I ran this command but this didn't help and I'm getting this error on console W1026 20:28:32.281856 5259 loader.go:223] Config not found: /home/ec2-user/.kube/config Please how can I undo this!Latinist
@EmmanuelSpencerEgbuniwe Then find out where your config is and replace the path.Jordanna
E
0

I solved this exact problem by making sure that in the /etc/hosts file the IP address and host name was set correctly:

192.168.10.11 kube-01.testing kube-01

instead of:

127.0.1.1 kube-01.testing kube-01

(or 127.0.0.1). This happens on Ubuntu and Debian as far as I know-

Edris answered 24/11, 2022 at 20:38 Comment(0)
M
0

I have faced the same issue "The connection to the server {IP}:6443 was refused - did you specify the right host or port?"

The reason was that since Kubernetes 1.24+, kubenet has been removed.

So, when installing the Kubernetes cluster with kubeadm and using Docker as a Container Runtime, the cri-dockerd must be installed as well (otherwise I got the above error).

As it is mention in the kubernetes documentation:

  1. On each of your nodes, install Docker for your Linux distribution as per Install Docker Engine.
  2. Install cri-dockerd, following the instructions in that source code repository.
Manageable answered 30/1, 2023 at 8:3 Comment(0)
A
0

For my Ubuntu 22.04 setup, this worked:

sudo mkdir -p /etc/containerd/
containerd config default | sudo tee /etc/containerd/config.toml
sudo systemctl restart containerd

Credits: https://www.itzgeek.com/how-tos/linux/ubuntu-how-tos/install-containerd-on-ubuntu-22-04.html

Alejoa answered 27/3, 2023 at 4:1 Comment(0)
L
-1

As per the error message, it is clearly says port number 6443 connection is refused.

Means

  1. port number is blocked by firewall
  2. if there is no firewall, then

Blockquote

the port number is not running on the specified host 6443. you can cross verify using the below command #netstat -tulpn | grep -i 6443.

Solution: 6443 it is kube-apiserver port number in k8s. if it is not running make sure kube-apiserver is running properly. I have faced the same problem. After that I have fix properly set the correct argument in that specific port.

/usr/local/bin/kube-apiserver \\
  --advertise-address=${INTERNAL_IP} \\
  --allow-privileged=true \\
  --apiserver-count=3 \\
  --audit-log-maxage=30 \\
  --audit-log-maxbackup=3 \\
  --audit-log-maxsize=100 \\
  --audit-log-path=/var/log/audit.log \\
  --authorization-mode=Node,RBAC \\
  --bind-address=0.0.0.0 \\
  --client-ca-file=/var/lib/kubernetes/ca.crt \\
  --enable-admission-plugins=NodeRestriction,ServiceAccount \\
  --enable-swagger-ui=true \\
  --enable-bootstrap-token-auth=true \\
  --etcd-cafile=/var/lib/kubernetes/ca.crt \\
  --etcd-certfile=/var/lib/kubernetes/etcd-server.crt \\
  --etcd-keyfile=/var/lib/kubernetes/etcd-server.key \\
  --etcd-servers=https://192.168.5.11:2379,https://192.168.5.12:2379 \\
  --event-ttl=1h \\
  --encryption-provider-config=/var/lib/kubernetes/encryption-config.yaml \\
  --kubelet-certificate-authority=/var/lib/kubernetes/ca.crt \\
  --kubelet-client-certificate=/var/lib/kubernetes/kube-apiserver.crt \\
  --kubelet-client-key=/var/lib/kubernetes/kube-apiserver.key \\
  --kubelet-https=true \\
  --runtime-config=api/all \\
  --service-account-key-file=/var/lib/kubernetes/service-account.crt \\
  --service-cluster-ip-range=10.96.0.0/24 \\
  --service-node-port-range=30000-32767 \\
  --tls-cert-file=/var/lib/kubernetes/kube-apiserver.crt \\
  --tls-private-key-file=/var/lib/kubernetes/kube-apiserver.key \\
  --v=2
Lawn answered 22/12, 2020 at 13:8 Comment(0)
S
-1
sudo -i
swapoff -a
exit
strace -eopenat kubectl version
Sarcous answered 7/11, 2021 at 23:14 Comment(0)

© 2022 - 2024 — McMap. All rights reserved.