大家好。我在专用服务器上安装了 k8s 集群和 gitlab(作为真实操作系统上的典型应用程序),我在 k8s 上有一个入口,它通过 externalName 服务将主机地址的流量路由到 gitlab
不,我需要授予 ssh 访问权限,因此我创建了没有选择器和相应端点的服务:
apiVersion: v1
kind: Service
metadata:
name: gitlab-service-ssh
namespace: host
spec:
type: NodePort
ports:
- protocol: TCP
port: 22
nodePort: 30222
---
apiVersion: v1
kind: Endpoints
metadata:
name: gitlab-service-ssh
namespace: host
subsets:
- addresses:
- ip: 192.168.0.24
ports:
- port: 22
我可以通过 k8s 集群节点访问 ssh, 并且它可以正常工作git clone ssh://[email protected]:30222/XXXXX
如果我尝试从任何局域网计算机访问,我都会收到
ssh: connect to host git.xxxxx port 30222: Resource temporarily unavailable
此端口上没有任何活动的防火墙或其他服务(我尝试使用不同的端口 - 结果相同)
所以我不明白这是我的错。
我在裸机上使用 1.16 版本的 k8s,使用 metallb 作为负载均衡,主机在 Ubuntu 18.04 下
答案1
检查服务器中是否未安装 Nginx,并且它默认阻止 SSH。你必须sudo ufw allow ssh
。
还可以执行 : netstat -an | select-string 30222
检查状态。尝试通过 IP 而不是主机名进行连接。查看:ssh 主机。