我在两台Ubuntu 16.04.2 LTS机器上安装了一个Kubernetes集群(1个主节点+ 1个节点)。
我可以通过主人轻松访问API,例如使用curl -v -k https://<IP>:6443/api
从任何其他主机我只是收到超时错误。扫描端口,端口6443看起来已关闭。
问题是,我需要使用Kubernetes集成配置GitLab CI。我给它:
https://<IP>:6443/api
尝试配置群集以上传容器时,我得到以下信息:
$ kubectl config set-cluster my-cluster --server="$KUBE_URL" --certificate-authority="$KUBE_CA_PEM_FILE"
Cluster "my-cluster" set.
$ kubectl config set-credentials admin --token="$KUBE_TOKEN"
User "admin" set.
$ kubectl config set-context default-context --cluster=my-cluster --user=admin
Context "default-context" set.
$ kubectl config use-context default-context
Switched to context "default-context".
$ kubectl get cs
Unable to connect to the server: dial tcp <IP>:6443: i/o timeout
我做错了什么?提示:我对Kubernetes完全不熟悉,但我仍想连接私有GitLab,私有Docker注册表和私有Kubernetes集群。无法找到任何涵盖此内容的在线资源......
补充信息:
我可以通过kubeadm join --token TOKEN <IP>:6443 --discovery-token-ca-cert-hash HASH
将节点连接到此主节点,没有任何问题。
netstat -nplt
给出:
tcp 0 0 127.0.0.1:10248 0.0.0.0:* LISTEN 1242/kubelet
tcp 0 0 127.0.0.1:10249 0.0.0.0:* LISTEN 2225/kube-proxy
tcp 0 0 127.0.0.1:10251 0.0.0.0:* LISTEN 1978/kube-scheduler
tcp 0 0 127.0.0.1:2379 0.0.0.0:* LISTEN 1887/etcd
tcp 0 0 127.0.0.1:10252 0.0.0.0:* LISTEN 1926/kube-controlle
tcp 0 0 127.0.0.1:2380 0.0.0.0:* LISTEN 1887/etcd
tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN 1289/sshd
tcp6 0 0 :::10250 :::* LISTEN 1242/kubelet
tcp6 0 0 :::6443 :::* LISTEN 1904/kube-apiserver
tcp6 0 0 :::10255 :::* LISTEN 1242/kubelet
tcp6 0 0 :::10256 :::* LISTEN 2225/kube-proxy
tcp6 0 0 :::22 :::* LISTEN 1289/sshd
答案 0 :(得分:0)
如果您收到超时错误,很可能是您的防火墙阻止了流量。我建议检查您的云提供商防火墙(例如,AWS安全组)并查看该端口是否可访问。
如果不是这个选项,我建议你在主人中执行以下命令:
sudo netstat -nplt
并检查kube-apiserver是否正在127.0.0.1:6443
或0.0.0.0:6443
收听。如果是前者,请检查kube-apiserver systemd服务以更改API侦听地址。