Что мешает установить аннотацию «группы экземпляров» при создании многокластерного входа в Google Kubernetes Engine? - PullRequest
0 голосов
/ 25 января 2020

Я пытаюсь создать многокластерный вход в Google Kubernetes Engine, используя kubemci , однако при выполнении следующей команды программа ожидает в течение неограниченного времени, пока входной сервис получит аннотацию ingress.gcp.kubernetes.io/instance-groups (как показано на выходе ниже).

Что мешает установить эту аннотацию?

Вход

./kubemci create app-mci \
    --ingress=ingress.yaml \
    --gcp-project=app-prod \
    --kubeconfig=mcikubeconfig

Выход

% ./kubemci create app-mci --ingress=ingress.yaml --gcp-project=app-prod --kubeconfig=clusters.yaml        
Created Ingress in cluster: gke_app-prod_europe-west4-a_app-europe-west4
Created Ingress in cluster: gke_app-prod_us-east4-a_app-us-east4
Ensuring health checks
Pod app-deployment-c99578769-xdmql matching service selectors app=app (targetport ): lacks a matching HTTP probe for use in health checks.
Pod app-deployment-c99578769-xgq2m matching service selectors app=app (targetport ): lacks a matching HTTP probe for use in health checks.
Pod app-deployment-c99578769-qms7r matching service selectors app=app (targetport ): lacks a matching HTTP probe for use in health checks.
Pod app-deployment-c99578769-tsrsw matching service selectors app=app (targetport ): lacks a matching HTTP probe for use in health checks.
Path for healthcheck is /
Ensuring health check for port: {SvcName:default/app-service SvcPort:{Type:0 IntVal:80 StrVal:} NodePort:30061 Protocol:HTTP SvcTargetPort: NEGEnabled:false}
Health check mci1-hc-30061--app-mci exists already. Checking if it matches our desired health check
Desired health check exists already
Determining instance groups for cluster gke_app-prod_europe-west4-a_app-europe-west4
Waiting for ingress ( default : app-ingress ) to get ingress.gcp.kubernetes.io/instance-groups annotation.....
Waiting for ingress ( default : app-ingress ) to get ingress.gcp.kubernetes.io/instance-groups annotation.....
Waiting for ingress ( default : app-ingress ) to get ingress.gcp.kubernetes.io/instance-groups annotation.....
⋮

Как вы можете видеть, моя конфигурация идентична (кроме имен ресурсов) конфигурации в многокластерном входном руководстве :

развертывание .yaml

apiVersion: apps/v1
kind: Deployment
metadata:
  name: app-deployment
spec:
  selector:
    matchLabels:
      app: app
  replicas: 2
  template:
    metadata:
      labels:
        app: app
    spec:
      containers:
        - name: app
          image: gcr.io/app-prod/app:tag
          ports:
            - containerPort: 8080

service.yaml

apiVersion: v1
kind: Service
metadata:
  labels:
    app: app
  name: app-service
spec:
  ports:
    - port: 80
      protocol: TCP
      targetPort: 8080
      name: http
      nodePort: 30061
  selector:
    app: app
  type: NodePort

ingress.yaml

apiVersion: extensions/v1beta1
kind: Ingress
metadata:
  name: app-ingress
  annotations:
    kubernetes.io/ingress.global-static-ip-name: app-ip
    kubernetes.io/ingress.class: gce-multi-cluster
spec:
  backend:
    serviceName: app-service
    servicePort: 80

1 Ответ

1 голос
/ 25 января 2020

Включить балансировку нагрузки HTTP

Включить надстройку балансировки нагрузки HTTP, чтобы разрешить контроллеру балансировки нагрузки устанавливать аннотацию ingress.gcp.kubernetes.io/instance-groups.

Консоль

  1. Редактирование кластера.
  2. Расширение дополнений .
  3. Включение балансировки нагрузки HTTP:

enter image description here

Командная строка

% gcloud container clusters update [CLUSTER_NAME] --update-addons HttpLoadBalancing=ENABLED

Updating ***...done.                                                                                                                                                              
Updated [https://container.googleapis.com/v1/projects/***/zones/us-east4-a/clusters/***].
To inspect the contents of your cluster, go to: https://console.cloud.google.com/kubernetes/workload_/gcloud/us-east4-a/***?project=***

Просмотр конфигурации кластера:

% gcloud container clusters describe [CLUSTER_NAME]

# ENABLED
addonsConfig:
  httpLoadBalancing: {}

# DISABLED
addonsConfig:
  httpLoadBalancing:
    disabled: true


Настройка служб

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

Службы должны:

  • Иметь одно и то же имя во всех кластеры.
  • находиться в одном и том же пространстве имен во всех кластерах.
  • быть типа NodePort.
  • Использовать один и тот же номер порта для всех кластеров.

    - Настройка многокластерного входа , Google


Кредит

  • Nikhil Jindal для привет Проницательность.
  • Иван за поднятие этот вопрос .
...