В настоящее время я тренируюсь с Kubernetes (под управлением DO). Я столкнулся с проблемой, которую не мог решить в течение двух дней. У меня есть nginx-ingress setup вместе с 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
...
Извините, если это глупый вопрос, я думаю, что здесь есть некоторые основы, которые я путаю. Спасибо!