【问题标题】:NGINX Ingress Controller Configuration In AKS (SSH/GIT)AKS 中的 NGINX 入口控制器配置 (SSH/GIT)
【发布时间】:2020-01-08 10:46:08
【问题描述】:

我想允许从 Kubernetes 集群外部对我的 Kubernetes 服务进行 SSH 访问(端口 22)。因为我部署的应用程序包含 git 服务器。

您能否建议我一个解决方案,因为它对我来说是一种阻碍。

我可以使用 http/https 进行克隆/推送,但似乎 SSH 协议没有被 Ingress Controller 覆盖。

【问题讨论】:

标签: git ssh kubernetes kubernetes-ingress azure-aks


【解决方案1】:

nginx-ingress-controller 支持这个用例。

如公开 tcp 服务的文档中所述(https://kubernetes.github.io/ingress-nginx/user-guide/exposing-tcp-udp-services/)。为此需要创建一个 configmap。 例如。

apiVersion: v1
kind: ConfigMap
metadata:
  name: tcp-services
  namespace: ingress-basic
data:
  22: "ssh-app-namespace/ssh-service:22"

然后在部署清单中的 nginx-ingress-controller 容器命令中添加 --tcp-services-configmap=ingress-basic/tcp-services

在 nginx-ingress-controller 的部署清单(pod spec)中配置 containerPort 22。

检查 ingress-nginx-controller 的服务和端点是否为端口 22 正确配置。

在需要暴露的 tcp-service 方面:

确保在 ssh-service pod 及其服务中正确配置了 containerPort。

我使用服务类型的负载均衡器来部署 ssh-service 来实现这一点。

ClusterIP没试过,试过后才能确认

它还可以用于暴露或访问其他 tcp/udp 服务,例如在 k8s 集群中运行的数据库等

【讨论】:

    猜你喜欢
    • 2022-06-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-06-12
    • 2020-03-01
    • 1970-01-01
    • 2023-02-15
    • 2020-12-20
    相关资源
    最近更新 更多