gpt4 book ai didi

git - K8S : How to reach pod with SSH service (Gitea) over the same host ingress-nginx exposes as HTTP?

转载 作者:行者123 更新时间:2023-12-02 11:36:54 24 4
gpt4 key购买 nike

目前正在使用 Kubernetes(托管,DO)练习,我遇到了两天无法解决的问题。我有 nginx-ingress 设置以及 cert-manager,以及 git.domain.com 指向负载均衡器 IP 的域。我可以通过网络访问我的 Gitea 部署,一切似乎都正常。

我现在想要实现的是,我也可以像这样使用 SSH

git clone git@git.domain.com:org/repo.git

所以我需要通过服务公开容器端口 22,然后通过入口。我尝试了几件事,但似乎都不起作用,可能是因为我是 K8S 的初学者。这是我使用的工作设置。

服务定义:
apiVersion: v1
kind: Service
metadata:
name: gitea-service
spec:
selector:
app: gitea
ports:
- name: gitea-http
port: 3000
targetPort: gitea-http
- name: gitea-ssh
port: 22
targetPort: gitea-ssh

入口定义
apiVersion: extensions/v1beta1
kind: Ingress
metadata:
name: echo-ingress
annotations:
kubernetes.io/ingress.class: nginx
certmanager.k8s.io/cluster-issuer: letsencrypt-prod
spec:
tls:
- hosts:
- git.domain.com
secretName: letsencrypt-prod
rules:
- host: git.domain.com
http:
paths:
- backend:
serviceName: gitea-service
servicePort: gitea-http

我的部署的一部分,只是为了确保:
...
ports:
- containerPort: 3000
name: gitea-http
- containerPort: 22
name: gitea-ssh
...

抱歉,如果这是一个愚蠢的问题,我认为我在这里混淆了一些基础知识。谢谢!

最佳答案

So I somehow need to expose the container port 22 via the service, then via the ingress



所以是也不是:Ingress 专门用于使用 host: 的虚拟主机。传入请求的 header (或 SNI)以了解要使用的后端。 SSH 中没有这样的机制,或者至少没有我知道的 Ingress Controller 支持除 http 之外的协议(protocol)来执行此操作。

但是, nginx Ingress controller支持 TCP and UDP services只要您可以为他们分配一个专用端口(在您的情况下,您可以)。您将创建一个 ConfigMap条目说明 上的哪个端口入口 Controller 的 Service映射到 上的端口gitea的 Service ,然后您需要在 Digital Ocean 中任何面向 Internet 的端口上公开端口 22,该端口将流量路由到入口 Controller 的 Service .
[Internet] -> :22[load balancer] --> :12345[controller Service] --> :22[gitea-service]

Digital Ocean annotations您可以使用它来将某些端口切换到 TCP,但除了快速搜索之外,我没有进一步研究

我只是使用 nginx 入口 Controller 作为具体示例,但是基于 haproxy 的入口 Controller 几乎肯定会这样做,并且其他 Controller 可能有类似的选项,因为您的问题是合理的

关于git - K8S : How to reach pod with SSH service (Gitea) over the same host ingress-nginx exposes as HTTP?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58339655/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com