从Pod到本地主机,ssh
运作良好。并且ping
也可以很好地相互配合。
Pod中有centos7。另外,openssh-server
已安装在Pod中。但是总会有错误。
kubectl get pods -o wide
NAME READY STATUS RESTARTS AGE IP NODE NOMINATED NODE
hadoop-master-pod 1/1 Running 0 39m 10.244.9.25 slave10 <none>
hadoop-secondary-pod 1/1 Running 0 48m 10.244.11.11 slave12 <none>
ssh 10.244.9.25
ssh: connect to host 10.244.9.25 port 22: Connection refused
答案 0 :(得分:0)
您应该可以使用kubectl exec -it hadoop-master-pod -- /bin/bash
然后,您可以检查您的Pod是否在端口22上监听0.0.0.0
检查iptables是否没有阻塞。
确保openssh正在运行以及在哪个端口上运行。
答案 1 :(得分:0)
10.244.9.25 IP是Kubernetes分配给pod的内部IP地址(您可以阅读有关Kubernetes网络模型here的更多信息),以便在Kubernets集群中使用,因此您将无法进行SSH甚至无法ping通从群集外部访问这些IP。换句话说,包含10.244.9.25的网络就像是K8群集中的专用网络,而您的主机(本地主机)位于不同的网络上。
例如,如果您想进入此处的容器,则可以根据容器中安装的外壳使用kubectl exec -it hadoop-master-pod -- /bin/bash
或/bin/sh
,并且可以执行通过SSH尝试执行的任何操作吊舱。
如果您真的想从本地主机(集群外部)SSH到Pod中,则可以编写一个Kubernetes服务,该服务可能在NodePort上公开,它将通过NodePort将22(SSH的默认端口)暴露给外部。