Назад | Перейти на главную страницу

Отображение портов 80 и 443 в службе балансировки нагрузки Google kubernetes

Я последовал за учебник по гостевой книге от Google и создал из него свои собственные файлы конфигурации. Так что фарм все нормально работает. Теперь я хотел бы открыть порт 80 и 443 из модулей веб-сервера. Я знаю, как это сделать в файле конфигурации контроллера (см. Ниже), но не в файле конфигурации службы. Есть какие-нибудь подсказки, как это сделать?

Это мой файл конфигурации контроллера:

{
  "id": "webservers-controller",
  "kind": "ReplicationController",
  "apiVersion": "v1beta1",
  "desiredState": {
    "replicas": 3,
    "replicaSelector": {"name": "webservers"},
    "podTemplate": {
      "desiredState": {
        "manifest": {
          "version": "v1beta1",
          "id": "webservers-controller",
          "containers": [{
            "name": "webservers",
            "image":"gcr.io/myapp/webservers:latest",
            "ports": [
              {"name": "http-server", "containerPort": 80},
              {"name": "https-server", "containerPort": 443}
            ]
          }]
        }
      },
      "labels": { "name": "webservers" }
    }
  },
  "labels": {"name": "webservers"}
}

Это мой файл конфигурации службы:

{
  "id": "webservers",
  "kind": "Service",
  "apiVersion": "v1beta1",
  "port": 80,
  "containerPort": "http-server",
  "selector": { "name": "webservers" },
  "labels": { "name": "webservers" },
  "createExternalLoadBalancer": true
}

Это команды, которые я делаю для настройки моего балансировщика нагрузки:

создать кластер

gcloud alpha container clusters create webservers --machine-type n1-standard-2

создать контроллер

gcloud alpha container kubectl create -f webservers-controller.json

создать сервис (балансировщик нагрузки)

gcloud alpha container kubectl create -f webservers-service.json

открыть порт 80

gcloud compute firewall-rules create webservers-node-80 --allow=tcp:80 --target-tags k8s-webservers-node

открыть порт 443

gcloud compute firewall-rules create webservers-node-443 --allow=tcp:443 --target-tags k8s-webservers-node

показать фунт IP

gcloud compute forwarding-rules list

создавать проверки работоспособности

gcloud compute http-health-checks create webservers-80
gcloud compute target-pools add-health-checks k8s-webservers-default-webservers --http-health-check webservers-80 --region europe-west1

У вас есть какие-нибудь идеи, как выставить порт 443 на балансировщике нагрузки? Спасибо

Это невозможно в v1beta1. Чтобы открыть несколько портов, вы должны использовать v1beta3:

https://github.com/GoogleCloudPlatform/kubernetes/blob/master/pkg/api/v1beta3/types.go#L879

AFAIU он будет выпущен в v0.15

PR: https://github.com/GoogleCloudPlatform/kubernetes/pull/6182