как сделать переадресацию портов в kubernetes как docker-compose - PullRequest
0 голосов
/ 04 декабря 2018

У меня есть docker-compose.yml

version: '3.5'
services:
  container-name:
    image: container-image
    ports:
      - 80:80
      - 443:443

И он создает контейнер с переадресацией портов на хост-машину.Докер проверяет имя контейнера

[...]
NetworkSettings: {
  [...]
  Ports: {
    443/tcp: [{ HostIp: 0.0.0.0, HostPort: 443 }]
    80/tcp: [{ HostIp: 0.0.0.0, HostPort: 80 }]
  }
  [...]
}
[...]

Но в следующем pod.yml kubernetes создайте контейнер без портов.

kind: Pod
matadata:
  name: pod-name
spec:
  containers:
  - image: container-image
    name: container-name
    ports:
    - containerPort: 80
      protocol: TCP
    - containerPort: 443
      protocol: TCP
    [...]

Короче говоря, мне нужен порт прямого контейнера (pod) для хостамашина (узел).

Я выяснил, что лучше выставить.Но это не работает для меня.

Ответы [ 2 ]

0 голосов
/ 04 декабря 2018

Предпочтительный способ kubernetes - это выставить ваш модуль через сервис и управлять им с помощью развертывания .

Если вы хотите по какой-то причине использоватьпереадресация портов выполняется следующим образом:

kubectl port-forward pod/pod-name 8080:80 8443:443 -n default

Это будет привязывать порты вашего хоста 8080 и 8443, перенаправляя трафик на порты 80 и 443 соответственнодля модуля с именем pod-name. Я не опустил пространство имен (default), по умолчанию kubectl будет использовать current-context

0 голосов
/ 04 декабря 2018

если вы знаете, порт, который использует ваше приложение, возможно, вы можете использовать:

kubectl port-forward LOCAL_PORT: REMOTE_PORT

Что-то вроде: kubectl port-forward 8080: 80

Предполагается, что ваш модуль находится в пространстве имен по умолчанию.Если вы развернули в другом пространстве имен, вы можете передать, используя параметр -n в команде kubectl.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...