You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Kubernetes集群中Traefik配置GitLab SSH访问失败求助

排查Kubernetes中GitLab SSH访问故障(Traefik 2.8.x)

环境信息

  • Kubernetes版本:1.23.13
  • Traefik版本:2.8.7
  • GitLab Service已暴露80/443/22端口
  • 已配置Traefik gitlab-ssh入口点(容器端口2222)及对应IngressRouteTCP

排查步骤

1. 确认Traefik入口点加载状态

检查Traefik Pod日志,确认gitlab-ssh入口点是否成功初始化:

kubectl logs -n traefik <traefik-pod-name> | grep "entrypoint gitlab-ssh"

若日志未出现入口点初始化成功的信息,说明Traefik Deployment补丁未生效,执行以下命令重启Pod:

kubectl rollout restart deployment traefik -n traefik

2. 验证Traefik Service端口可达性

先查看Traefik Service的端口映射关系:

kubectl get svc traefik -n traefik
  • 若为NodePort类型:测试节点IP对应的NodePort(如输出2222:30022/TCP,则执行ssh <节点IP> -p 30022)
  • 若为LoadBalancer类型:用nc命令验证公网IP的2222端口连通性:
nc -zv <负载均衡IP> 2222

若无法连通,检查云安全组/节点本地防火墙是否放行对应端口的入站流量。

3. 检查IngressRouteTCP配置有效性

查看IngressRouteTCP的状态及事件,确认Traefik已识别该配置:

kubectl describe ingressroutetcp gitlab-ssh -n gitlab

重点关注Events字段,若存在配置无效类错误需修正(当前match: HostSNI(*)适配SSH无SNI的特性,配置逻辑合理)。

4. 验证Traefik到GitLab Service的连通性

进入Traefik Pod内部,直接测试连接GitLab Service的22端口:

kubectl exec -n traefik <traefik-pod-name> -- ssh git@gitlab-ce.gitlab.svc.cluster.local -p 22
  • 若连接失败,先检查GitLab Pod内sshd服务是否运行:
kubectl exec -n gitlab <gitlab-pod-name> -- ps aux | grep sshd

再查看GitLab Shell或sshd日志排查服务启动故障:

kubectl logs -n gitlab <gitlab-pod-name> gitlab-shell

5. 排查网络策略限制

检查GitLab所在namespace是否有网络策略阻断Traefik访问:

kubectl get networkpolicy -n gitlab

若存在网络策略,需添加Ingress规则允许Traefik namespace访问GitLab的22端口:

apiVersion: networking.k8s.io/v1
kind: NetworkPolicy
metadata:
  name: allow-traefik-to-gitlab-ssh
  namespace: gitlab
spec:
  podSelector:
    matchLabels:
      app: gitlab-ce
  ingress:
  - from:
    - namespaceSelector:
        matchLabels:
          kubernetes.io/metadata.name: traefik
    ports:
    - protocol: TCP
      port: 22

内容的提问来源于stack exchange,提问作者johnny bravo

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.26 15:38:22