通过 k8s 集群进行端口转发

通过 k8s 集群进行端口转发

大家好。我在专用服务器上安装了 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 主机

相关内容