AKS (SSH/GIT) 中的 NGINX 入口控制器配置



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

您能否向我建议一个解决方案,因为这对我来说是阻塞情况。

我能够使用 http/https 进行克隆/推送,但似乎入口控制器未涵盖 SSH 协议。

nginx-ingress-controller支持此用例。

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

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

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

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

检查入口 nginx 控制器的服务和端点是否正确配置为端口 22。

在需要公开的 tcp 服务方面:

确保在 ssh 服务 Pod 及其服务中正确配置了 containerPort。

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

没有尝试过ClusterIP,但是只有在尝试后才能确认

它还可用于公开或访问在k8s集群内运行的其他TCP/udp服务,如数据库等

最新更新