Kubernetes — Как доступны tcp-сервисы ingress-nginx?

#kubernetes #kubernetes-ingress #nginx-ingress

#kubernetes #kubernetes-вход #nginx-ingress

Вопрос:

Я пытаюсь выяснить, как порт 1234 и 1235 отображается, когда я добавляю его в ConfigMap. Это работает, но я не вижу конфигурации для чтения этих конфигурационных карт и предоставления доступа к службе.

 apiVersion: v1
kind: ConfigMap
metadata:
  name: tcp-services
  namespace: ingress-nginx
data:
  1234: "test-web-dev/httpd:1234"
  1235: "test-web-dev/tomcat7:1235"
---
kind: Service
apiVersion: v1
metadata:
  name: ingress-nginx
  namespace: ingress-nginx
  labels:
    app.kubernetes.io/name: ingress-nginx
    app.kubernetes.io/part-of: ingress-nginx
spec:
  externalTrafficPolicy: Local
  type: LoadBalancer
  selector:
    app.kubernetes.io/name: ingress-nginx
    app.kubernetes.io/part-of: ingress-nginx
  ports:
    - name: http
      port: 80
      protocol: TCP
      targetPort: http
    - name: https
      port: 443
      protocol: TCP
      targetPort: https

---
 

Ответ №1:

Конфигурационная карта используется входом Nginx, как можно найти здесь: https://kubernetes.github.io/ingress-nginx/user-guide/exposing-tcp-udp-services /

Обычно вам нужно было бы самостоятельно определить, как используются данные ConfigMap, но разработчики Nginx Ingress уже сделали это за вас, поэтому вам просто нужно предоставить ConfigMap.

Комментарии:

1. Должно ли имя метаданных быть tcp-services или может быть любым?

2. Никогда не проверял это, но, поскольку в документах они используют tcp-сервисы и udp-сервисы для различия между портами TCP и UDP, я предполагаю, что имя метаданных должно быть tcp-services.