Настроить доступ к сервису по протоколу TCP
Настроить доступ к сервису по протоколу TCP
Объект Ingress в Kubernetes по умолчанию поддерживает маршрутизацию внешнего трафика до сервисов только по протоколу HTTP(s). Чтобы получить доступ к сервису в кластере Managed Kubernetes по протоколу TCP, нужно настроить доступ через Ingress Controller.
Доступ по протоколу TCP может понадобиться, например при развертывании базы данных, кэш-сервера или других сервисов, которые работают по протоколу TCP.
Мы рассмотрим настройку доступа через Ingress Controller Nginx.
Создать ConfigMap
-
Создайте yaml-фа йл с манифестом для объекта ConfigMap:
Пример манифеста:
apiVersion: v1
kind: ConfigMap
metadata:
name: tcp-services
namespace: ingress-nginx
data:
<external_port>: "<namespace>/<service_name>:<service_port>"Укажите:
<external_port>
— внешний порт для доступа к сервису;<namespace>
— пространство имен, в котором находится сервис;<service_name>
— имя сервиса, для которого вы настраиваете доступ по протоколу TCP;<service_port>
— порт сервиса.
-
Создайте ConfigMap:
kubectl apply -f <configmap.yaml>
Укажите
<configmap.yaml>
— имя yaml-файла с манифестом для ConfigMap, который вы создали в шаге 1.
Настроить Ingress Controller
В аргументы Ingress Controller добавьте флаг --tcp-services-configmap
:
args:
- /nginx-ingress-controller
- --tcp-services-configmap=ingress-nginx/tcp-services