У меня есть небольшой кластер kubernetes (1.3) (в основном один узел), и я хотел бы установить туда gogs. Gogs «устанавливается» с помощью Helm. У меня есть следующие шаблоны в моей диаграмме руля:
- Развертывание (используя изображение gogs:0.9.97, используя containerPort 3000 (http) и 2222 (ssh)
- Ingress (это только для порта 80)
- Служба (порт 80 (http), а также 2222 (ssh))
http-материал настроен правильно, и я могу без проблем получить доступ к контейнеру, а также к содержащимся в нем git-репозиториям через http. Теперь я хотел бы использовать ssh и для git-соединений. Я попробовал конфигурацию --tcp-services-configmap для nginx-ingress, но безрезультатно. В журнале Ingress Controller указано, что настроенная служба не имеет активных конечных точек, что я нахожу довольно странным, поскольку работает http.
ОБНОВЛЕНИЕ
Я только что сделал nmap на DNS, и порт 2222 не открыт. Это похоже на проблему конфигурации. Порт на контейнере открыт (проверено подключением к ip кластера из ndoe).
Угадайте, что проблема в том, что в журнале Ingress Controller указано, что настроенная служба не имеет активных конечных точек.
Моя конфигурация службы:
apiVersion: v1
kind: Service
metadata:
name: {{ template "fullname" . }}
labels:
app: {{ template "fullname" . }}
spec:
ports:
- name: http
port: 80
targetPort: http
protocol: TCP
- name: ssh
port: 2222
targetPort: ssh
protocol: TCP
selector:
app: {{ template "fullname" . }}
Карта конфигурации:
apiVersion: v1
kind: ConfigMap
metadata:
name: tcp-configmap-ssh
data:
2222: "default/{{ template "fullname" . }}:2222"