我已经安装了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
答案 0 :(得分:3)
请在主节点上执行以下步骤。就像魅力一样。
1. sudo -i
2. swapoff -a
3. exit
4. strace -eopenat kubectl version
答案 1 :(得分:1)
小控件必须关闭。您需要检查主服务器上的kubelet日志,并确保api服务器正在运行并且在线。那么只有您应该能够部署
答案 2 :(得分:0)
我遇到了这个问题,但是swapoff -a对我有用。
sudo -i
swapoff -a
exit
strace -eopenat kubectl version
答案 3 :(得分:0)
假设这是您netstat
命令的所有输出,并且在主节点(通过kubadm安装了Kubernetes的主节点)上运行了该输出,那么在我看来,安装没有正确完成,因为没有存在您希望在Kubernetes主节点上看到的常用端口。
通常,在kubernetes主节点上,您希望看到kube-apiserver,kube-scheduler,kube-controller,kubelet以及可能的etcd都在网络上监听。
您的kubeadm init
命令的输出是什么?
答案 4 :(得分:0)
我将添加另一个导致此错误的原因,这就是我的情况。
我将错误的Kubeconfig
文件导出到Shell ,并且在这种情况下错误消息非常准确-API服务器的端点错误(当然还有群集等其他字段)名称和证书-但服务器端点是链中的第一步。
答案 5 :(得分:0)
在使用法兰绒将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
答案 6 :(得分:0)
根据错误信息,明确表示端口号 6443 连接被拒绝。
意思
块引用
端口号未在指定主机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
答案 7 :(得分:0)
我也遇到了这个问题,我尝试了上面提到的解决方案,但对我不起作用。以下是对我有用的方法:
修正: 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/