【问题标题】:The connection to the server x.x.x.:6443 was refused - did you specify the right host or port? Kubernetes与服务器 x.x.x.:6443 的连接被拒绝 - 您是否指定了正确的主机或端口? Kubernetes
【发布时间】:2019-11-06 08:05:30
【问题描述】:

我已经安装了 Docker、Kubectl 和 kubeAdm。 我想创建我的设备模型和设备 CRD(我正在关注这个 guide. 所以,当我运行命令时:

kubectl create -f devices_v1alpha1_devicemodel.yaml

作为用户,我得到以下信息:

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

(我已经添加了用户访问.kube文件夹的权限)

使用 netstat,我得到:

> 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

使用 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)

我已经尝试过this 和:sudo swapoff -a

【问题讨论】:

  • kubectl cluster-info 打印主服务器和 DNS 的 IP:port。它为您的设置打印什么?

标签: kubernetes kubectl kubeadm


【解决方案1】:

请在主节点上执行以下步骤。它就像魅力一样。

1. sudo -i

2. swapoff -a

3. exit

4. strace -eopenat kubectl version

【讨论】:

    【解决方案2】:

    kubelet 必须关闭。您需要检查 master 上的 kubelet 日志并确保 api 服务器正在运行且在线。那么只有你应该能够部署

    【讨论】:

      【解决方案3】:

      我遇到了这个问题,但 swapoff -a 对我有用。

      sudo -i
      swapoff -a
      exit
      strace -eopenat kubectl version
      

      【讨论】:

        【解决方案4】:

        在使用 flannel 将 pod 网络部署到集群时,我遇到了类似的问题:

        $ 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?
        

        我执行了以下步骤来解决问题:

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

        然后应用 yml 文件

        $ 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
        

        【讨论】:

          【解决方案5】:

          假设这是您的 netstat 命令的所有输出,并且您在主节点(您通过 kubadm 安装 Kubernetes 的那个节点)上运行了它,在我看来安装没有正确完成,因为没有正常完成存在您希望在 Kubernetes 主节点上看到的端口。

          通常在 kubernetes 主节点上,您希望看到 kube-apiserver、kube-scheduler、kube-controller、kubelet 和可能的 etcd 都在网络上侦听。

          kubeadm init 命令的输出是什么?

          【讨论】:

            【解决方案6】:

            我将添加这个错误的另一个原因,这就是我的问题。

            我将错误的 Kubeconfig 文件导出到 shell,在这种情况下错误消息非常准确 - API 服务器的端点错误(当然还有其他字段,如集群名称和证书 - 但服务器端点是链中的第一步)。

            【讨论】:

              【解决方案7】:

              根据错误消息,很明显端口号 6443 连接被拒绝。

              意思

              1. 端口号被防火墙阻止
              2. 如果没有防火墙,那么

              块引用

              端口号未在指定主机 6443 上运行。您可以 使用以下命令进行交叉验证 #netstat -tulpn | grep -i 6443.

              解决方案: 6443 是 k8s 中的 kube-apiserver 端口号。如果它没有运行,请确保 kube-apiserver 正常运行。我遇到了同样的问题。之后,我已修复在该特定端口中正确设置正确的参数。

              /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
              

              【讨论】:

                【解决方案8】:

                我也遇到了这个问题,我尝试了上面提到的解决方案,但它对我不起作用。这对我有用:

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

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

                【讨论】:

                  【解决方案9】:
                  sudo -i
                  swapoff -a
                  exit
                  strace -eopenat kubectl version
                  

                  【讨论】:

                    【解决方案10】:

                    由于我的 K8S 集群的证书过期,我最近遇到了这个问题。 我跟着 this blog link 更新证书并替换了我正在使用的 kube 配置文件。 请注意,更新证书后替换 kube 配置很重要,否则您最终会收到以下 kubectl CLI 错误消息:

                    error: You must be logged in to the server (Unauthorized)
                    

                    【讨论】:

                      猜你喜欢
                      • 1970-01-01
                      • 2020-02-25
                      • 2022-10-13
                      • 2022-11-17
                      • 2019-07-17
                      • 2019-06-01
                      • 2018-12-03
                      • 2019-09-25
                      • 2021-03-16
                      相关资源
                      最近更新 更多