GCE Ingress не получает проверку работоспособности с датчика готовности - PullRequest
0 голосов
/ 25 апреля 2018

Когда я создаю вход GCE, Google Load Balancer не устанавливает проверку работоспособности с датчика готовности.В соответствии с документами ( проверки работоспособности Ingress GCE ) он должен его забрать.

Предоставить произвольный URL-адрес в качестве проверки готовности к пакетам, поддерживающим Сервис.

Есть идеи почему?

Развертывание:

apiVersion: extensions/v1beta1
kind: Deployment
metadata:
  name: frontend-prod
  labels:
    app: frontend-prod
spec:
  selector:
    matchLabels:
      app: frontend-prod
  replicas: 3
  strategy:
    rollingUpdate:
      maxSurge: 1
      maxUnavailable: 1
    type: RollingUpdate
  template:
    metadata:
      labels:
        app: frontend-prod
    spec:
      imagePullSecrets:
        - name: regcred
      containers:
      - image: app:latest
        readinessProbe:
          httpGet:
            path: /healthcheck
            port: 3000
          initialDelaySeconds: 15
          periodSeconds: 5
        name: frontend-prod-app
      - env:
        - name: PASSWORD_PROTECT
          value: "1"
        image: nginx:latest
        readinessProbe:
          httpGet:
            path: /health
            port: 80
          initialDelaySeconds: 5
          periodSeconds: 5
        name: frontend-prod-nginx

Служба:

apiVersion: v1
kind: Service
metadata:
  name: frontend-prod
  labels:
    app: frontend-prod
spec:
  type: NodePort
  ports:
  - port: 80
    targetPort: 80
    protocol: TCP
    name: http
  selector:
    app: frontend-prod

Вход:

apiVersion: extensions/v1beta1
kind: Ingress
metadata:
  name: frontend-prod-ingress
  annotations:
    kubernetes.io/ingress.global-static-ip-name: frontend-prod-ip
spec:
  tls:
    - secretName: testsecret
  backend:
    serviceName: frontend-prod
    servicePort: 80

Ответы [ 3 ]

0 голосов
/ 02 мая 2018

Итак, очевидно, вам нужно включить порт контейнера в PodSpec. Кажется, нигде не документировано.

, например

    spec:
      containers:
      - name: nginx
        image: nginx:1.7.9
        ports:
        - containerPort: 80

Спасибо, Брайан! https://github.com/kubernetes/ingress-gce/issues/241

0 голосов
/ 01 августа 2019

Еще одна причина, по которой Google Cloud Load Balancer не регистрирует конфигурацию проверки работоспособности GCE из зонда готовности Kubernetes Pod, может заключаться в том, что служба настроена как «без выбора» (атрибут selector пуст и вы управляете конечными точками напрямую).

Это имеет место, например, с kube-lego: см. https://github.com/jetstack/kube-lego/issues/68#issuecomment-303748457 и https://github.com/jetstack/kube-lego/issues/68#issuecomment-327457982.

Исходный вопрос имеет ли селектор, указанный в сервисе, поэтомуэта подсказка не применяется.Этот совет предназначен для посетителей, которые сталкиваются с той же проблемой по другой причине.

0 голосов
/ 01 мая 2018

Путь проверки работоспособности GKE Ingress в настоящее время не настраивается. Вы можете перейти к http://console.cloud.google.com (пользовательский интерфейс) и посетить список балансировщиков нагрузки, чтобы просмотреть проверку работоспособности, которую он использует.

В настоящее время проверка работоспособности входного файла составляет GET / для каждого backend:, указанного для входного файла. Таким образом, все ваши приложения за входом GKE должны возвращать HTTP 200 OK на GET / запросов.

Тем не менее, проверки работоспособности, указанные вами на ваших Бочках, все еще используются - с помощью kubelet, чтобы убедиться, что ваш Боб действительно функционирует и здоров.

...