Предоставление TCP-порта вне кластера в Kubernetes с помощью nginx-Ingress - PullRequest
0 голосов
/ 30 октября 2018

Итак, я настроил свое приложение в облаке Google, используя Kubernetes. У меня есть Pod, который я хочу выставить вне кластера, который ожидает TCP-запросы.

Я узнал, что это возможно через ingress-nginx и исследовал это. Как упомянуто в документах здесь , это можно сделать, настроив configMap, как показано ниже:

apiVersion: v1
kind: ConfigMap
metadata:
  name: tcp-configmap-example
data:
  9000: "default/my-service-name:7051

, но его полное использование четко не описано, и я не могу найти полный пример в документации правильно.

Я установил ingress-nginx, как упомянуто в Руководстве по установке , но я не уверен, каковы следующие шаги, чтобы выставить мой Pod.

Дополнительная информация

  • Порт в модуле Pod, который я хочу открыть вне кластера: 7051
  • У меня есть служба NodePort, которая нацелена на порт моего Pod, который можно использовать с Ingress для показа.

1 Ответ

0 голосов
/ 30 октября 2018

Внутри облачной платформы Google вы можете использовать type: LoadBalancer, чтобы выставить свой сервис за пределы кластер. Вы можете увидеть пример здесь Предоставление приложений с использованием Сервисов .

Вот краткий пример:

$ kubectl run hello --image=test/hello-world
deployment "hello" created

$ kubectl expose deployment hello --port=8080 --type=LoadBalancer
service "hello" exposed

$ kubectl get service 
NAME         TYPE           CLUSTER-IP     EXTERNAL-IP     PORT(S)          AGE
hello        LoadBalancer   10.11.251.34   35.192.25.112   8080:33107/TCP   2m

$ curl 35.192.25.112:8080
<html><head><title>hello world</title></head><body>hello world!</body></html>

Также вы можете следовать инструкциям в документации Kubernetes Предоставление внешнего IP-адреса для доступа к приложению в кластере

...