Определение 2 портов в deploy.yaml в Kubernetes

У меня есть изображение докера от я делаю

docker run --name test -h test -p 9043:9043 -p 9443:9443 -d ibmcom/websphere-traditional:install

Я пытаюсь поместить в файл развертывания kubernetes, и у меня есть это:

apiVersion: extensions/v1beta1
kind: Deployment
metadata:
  name: websphere
spec:
  replicas: 1
  template:
    metadata:
      labels:
        app: websphere
    spec:
      containers:
      - name: websphere
        image: ibmcom/websphere-traditional:install
        ports:
        - containerPort: 9443
        resources:
          requests: 
            memory: 500Mi
            cpu: 0.5
          limits:
            memory: 500Mi
            cpu: 0.5
        imagePullPolicy: Always

мой сервис

apiVersion: v1
kind: Service
metadata:
  name: websphere
  labels:
    app: websphere
spec:
  type: NodePort #Exposes the service as a node ports
  ports:
  - port: 9443
    protocol: TCP
    targetPort: 9443
  selector:
    app: websphere

Могу ли я получить руководство о том, как сопоставить 2 порта в моем файле развертывания?

1 ответ

Вы можете добавить столько портов, сколько вам нужно.

Здесь твой deployment.yml:

apiVersion: extensions/v1beta1
kind: Deployment
metadata:
  name: websphere
spec:
  replicas: 1
  template:
    metadata:
      labels:
        app: websphere
    spec:
      containers:
      - name: websphere
        image: ibmcom/websphere-traditional:install
        ports:
        - containerPort: 9043
        - containerPort: 9443
        resources:
          requests: 
            memory: 500Mi
            cpu: 0.5
          limits:
            memory: 500Mi
            cpu: 0.5
        imagePullPolicy: IfNotPresent

Здесь твой service.yml:

apiVersion: v1
kind: Service
metadata:
  name: websphere
  labels:
    app: websphere
spec:
  type: NodePort #Exposes the service as a node ports
  ports:
  - port: 9043
    name: hello
    protocol: TCP
    targetPort: 9043
    nodePort: 30043
  - port: 9443
    name: privet
    protocol: TCP
    targetPort: 9443
    nodePort: 30443
  selector:
    app: websphere

Проверь свои куберне api-server Конфигурация, каков диапазон для nodePorts (обычно 30000-32767, но это настраивается).

РЕДАКТИРОВАТЬ

Если я удаляю из deploy.yml resources раздел начинается правильно (примерно через 5 минут). Вот фрагмент из журналов:

[10.09.18:08:06:004 UTC] 00000051 webcontainer I com.ibm.ws.webcontainer.VirtualHostImpl addWebApplication SRVE0250I: веб-приложение по умолчанию для веб-модуля привязано к default_host [ : 9080,: 80,: 9443,: 506 0 ,: 5061,: 443].

При подключении возникают проблемы (я использую вход с traefik) из-за сертификатов (я полагаю):

[9/10/18 10: 15: 08: 413 UTC] 000000a4 SSLHandshakeE E SSLC0008E: Невозможно инициализировать соединение SSL. Отказано в несанкционированном доступе или истек срок действия настроек безопасности. Исключение составляет javax.net.ssl.SSLException: нераспознанное сообщение SSL, соединение в виде открытого текста?

Чтобы решить это (я не пошел дальше), это может помочь: SSLHandshakeE E SSLC0008E: Невозможно инициализировать соединение SSL. Отказано в несанкционированном доступе или истек срок действия настроек безопасности

Попытка связаться с port-forward:

и используя браузер для подключения, я попадаю на эту страницу:

В kubernetes вы можете определить свои порты с помощью метки #port. Эта метка входит в конфигурацию портов в вашем развертывании. В зависимости от конфигурации вы можете просто определить любое количество портов, которое хотите. В следующем примере показано, как определить два порта.

apiVersion: v1
kind: Service
metadata:
  name: my-service
spec:
  selector:
    app: MyApp
  ports:
    - name: http
      protocol: TCP
      port: 80
      targetPort: 9376
    - name: https
      protocol: TCP
      port: 443
      targetPort: 9377
Другие вопросы по тегам