Перейти к основному содержимому
Настроить доступ к сервису по протоколу TCP
Последнее изменение:

Настроить доступ к сервису по протоколу TCP

Объект Ingress в Kubernetes по умолчанию поддерживает маршрутизацию внешнего трафика до сервисов только по протоколу HTTP(s). Чтобы получить доступ к сервису в кластере Managed Kubernetes по протоколу TCP, нужно настроить доступ через Ingress Controller.

Доступ по протоколу TCP может понадобиться, например при развертывании базы данных, кэш-сервера или других сервисов, которые работают по протоколу TCP.

Мы рассмотрим настройку доступа через Ingress Controller Nginx.

  1. Создайте ConfigMap.
  2. Настройте Ingress Controller.

Создать ConfigMap

  1. Создайте 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> — порт сервиса.
  2. Создайте 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