Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/regex/17.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Amazon ec2 kubeadm join无法连接_Amazon Ec2_Kubernetes_Kubeadm - Fatal编程技术网

Amazon ec2 kubeadm join无法连接

Amazon ec2 kubeadm join无法连接,amazon-ec2,kubernetes,kubeadm,Amazon Ec2,Kubernetes,Kubeadm,我使用kubeadm init在EC2上的Ubuntu18.04节点上创建了一个单节点集群。但是,我无法加入无法从其他节点连接到API 注意:这是一个EC2实例 Kubectl在大师身上做得很好 我使用了以下命令,其中MASTER_PRIVATE_IP为172.31.25.111 kubeadm init-pod网络cidr=10.244.0.0/16-apiserver播发地址=${MASTER_PRIVATE_IP}-apiserver证书额外SAN=${MASTER_PUBLIC_IP}

我使用kubeadm init在EC2上的Ubuntu18.04节点上创建了一个单节点集群。但是,我无法加入无法从其他节点连接到API

注意:这是一个EC2实例

Kubectl在大师身上做得很好

我使用了以下命令,其中MASTER_PRIVATE_IP为172.31.25.111

kubeadm init-pod网络cidr=10.244.0.0/16-apiserver播发地址=${MASTER_PRIVATE_IP}-apiserver证书额外SAN=${MASTER_PUBLIC_IP}

当我尝试使用kubeadm join将同一专用网络上的第二个节点加入到集群时,它只是超时。我可以用ssh连接到主机没有问题,在主机上执行netstat时,我看到它似乎只监听ipv6地址上的端口6443—为什么? 我提供了专用IPv4地址作为播发地址。 kubeconfig当然拥有htat专用ipv4地址

kube-apiserver --authorization-mode=Node,RBAC --advertise-address=172.31.25.111 --allow-privileged=true --client-ca-file=/etc/kubernetes/pki/ca.crt --enable-admission-plugins=NodeRestriction --enable-bootstrap-token-auth=true --etcd-cafile=/etc/kubernetes/pki/etcd/ca.crt --etcd-certfile=/etc/kubernetes/pki/apiserver-etcd-client.crt --etcd-keyfile=/etc/kubernetes/pki/apiserver-etcd-client.key --etcd-servers=https://127.0.0.1:2379 --insecure-port=0 --kubelet-client-certificate=/etc/kubernetes/pki/apiserver-kubelet-client.crt --kubelet-client-key=/etc/kubernetes/pki/apiserver-kubelet-client.key --kubelet-preferred-address-types=InternalIP,ExternalIP,Hostname --proxy-client-cert-file=/etc/kubernetes/pki/front-proxy-client.crt --proxy-client-key-file=/etc/kubernetes/pki/front-proxy-client.key --requestheader-allowed-names=front-proxy-client --requestheader-client-ca-file=/etc/kubernetes/pki/front-proxy-ca.crt --requestheader-extra-headers-prefix=X-Remote-Extra- --requestheader-group-headers=X-Remote-Group --requestheader-username-headers=X-Remote-User --secure-port=6443 --service-account-key-file=/etc/kubernetes/pki/sa.pub --service-cluster-ip-range=10.96.0.0/12 --tls-cert-file=/etc/kubernetes/pki/apiserver.crt --tls-private-key-file=/etc/kubernetes/pki/apiserver.key
kubeadm init-pod网络cidr=10.244.0.0/16-apiserver播发地址=${MASTER_PRIVATE_IP}-apiserver证书额外SAN=${MASTER_PUBLIC_IP}


有什么想法吗?

将安全组添加到Master ec2,例如这样做

端口范围: 0-6555或仅6443

源ip
172.31.0.0/16

要添加到@Markownikow的答案中,在本例中,您的问题似乎仅限于缺少的安全组。我能够在我的终端上复制这一点,并添加上面的规则,从而允许工人在端口6443上访问主机。为了完成,以下是您可以执行的一些附加检查:

确保主节点和辅助节点位于同一VPC和子网中。 如果master和worker位于不同的子网中,请确保有适当的规则允许两个实例相互通信。
这可能是因为在主实例上丢失/错误的安全组很多,事实确实如此,我在将6443端口添加到配置中时忘记添加这一点-稍后应用一个terraform,kubectl在工作节点上工作正常。我仍然有点惊讶没有看到任何东西,即kubeapi服务器,在上面的netstat输出中列出为侦听ipv4的端口6443,仅为ipv6。不管怎样,它现在起作用了。。。谢谢
netstat -tulpn | grep -E ":(22|6443)" | grep LISTEN
(Not all processes could be identified, non-owned process info
 will not be shown, you would have to be root to see it all.)
tcp        0      0 0.0.0.0:22              0.0.0.0:*               LISTEN      -
tcp6       0      0 :::22                   :::*                    LISTEN      -
tcp6       0      0 :::6443                 :::*                    LISTEN      -