Руководство по раскрытию TCP-сервисов с помощью ingress-nginx.
Установим службу TCP
Установите службу, которая связывает TCP-порт, который вам нужно выставить.
Для этого примера мы установим развертывание dind (Docker in Docker) и выставим TCP-порт 2376.
Примечание: Установите extraHosts в DNS-имя, которое будет резолвить службу.
Установим ingress-nginx
Установите контроллер ingress-nginx для вашего кластера.
Создайте configmap
Настроим ingress-controller
Внесите Patch в spec.template.spec.containers[0].args развертывания ingress-nginx с аргументом –tcp-services, используя формат –tcp-services=<имя пространства имен/имя configmap>:
INGRESS_NGINX_ARGS=$(\ kubectl get deployments.apps \ -n ingress-nginx \ nginx-ingress-controller \ -o json | jq '.spec.template.spec.containers[]|select(.name=="nginx-ingress-controller")|.args+=["--tcp-services=ingress-nginx/tcp-services"]|.args|unique' ) PATCH='{"spec":{"template":{"spec":{"containers":[{"name":"nginx-ingress-controller","args":[{}]}]}}}}' kubectl patch deployments.apps -n ingress-nginx nginx-ingress-controller -p "$(echo "$PATCH" |jq ".spec.template.spec.containers[0].args=$INGRESS_NGINX_ARGS")"
Настроим службу ingress-nginx
Исправьте службу ingress-nginx:
Совет: Google Kubernetes Engine и DigitalOcean автоматически обновят существующие правила брандмауэра для разрешения трафика на указанном порту.
Проверьте соединение
Скопируйте клиентские TLS-сертификаты для подключения к демону docker:
Установите пользовательское окружение и подключитесь к удаленному демону docker:
см. также:
- ☸️ Как перехватывать http-трафик, передаваемый от пода к поду, с помощью контейнера sidecar
- ☸️ Как поддерживать контейнер в рабочем состоянии на Kubernetes
- ☸️ Как обновить секрет Kubernetes
- ☸️ Как расшифровать секрет Kubernetes
- ☸️ Реализация неизменяемых ConfigMaps в Kubernetes: Практическое руководство