Google Cloud Kubernetes Ingress Stati c IP-адрес не отражен и отличается от настройки - PullRequest
0 голосов
/ 04 августа 2020

Я пытаюсь развернуть полное веб-приложение с помощью GKE в Google Cloud (серверная часть - nodejs, а интерфейс - angular). Затем включите для него SSL.

Я создал глобальный IP-адрес (и потом увидел его в списке): адреса вычислений gcloud создают mathbux-stati c -ip --global

После этого я развернул как бэкэнд, так и интерфейс - контейнеры и файлы yaml.

How it looks like in Google Cloud

The problem here is that the IP address reflected on the ingress controller comes from nowhere, and is different from what I set it to (the static IP address I just made above).

I have followed the guidelines of how to install Nginx-ingress setup on GKE by following this: https://kubernetes.github.io/ingress-nginx/deploy/#gce -gke

kubectl create clusterrolebinding cluster-admin-binding \
  --clusterrole cluster-admin \
  --user $(gcloud config get-value account)

kubectl apply -f https://raw.githubusercontent.com/kubernetes/ingress-nginx/controller-v0.34.1/deploy/static/provider/cloud/deploy.yaml

Вот snippet part of my ingress.yaml:

.... truncated . . .
apiVersion: extensions/v1beta1
kind: Ingress
metadata:
  name: mathbux-ingress-frontend
  namespace: default
  annotations:
    kubernetes.io/ingress.class: nginx
    kubernetes.io/ingress.global-static-ip-name: "mathbux-static-ip"
    networking.gke.io/managed-certificates: mathbux-ssl
    nginx.ingress.kubernetes.io/rewrite-target: /

А вот фрагмент моего файла управляемого сертификата, как в документации Google:

apiVersion: networking.gke.io/v1beta2
kind: ManagedCertificate
metadata:
  name: mathbux-ssl
spec:
  domains:
    - mathbux.com
    - www.mathbux.com

Все приложение работает отлично, когда I go на сгенерированный IP-адрес и работает только так:

1.) IP-адрес не является заданным c stati c глобальным IP-адресом, который я создал и предположительно установлен на моем ingress.yaml

2.) Соответственно, SSL тоже не работает. (Обратите внимание, что я уже указал свои доменные имена на IP-адрес Stati c, который я сделал вручную)

1 Ответ

3 голосов
/ 05 августа 2020

Используемая вами аннотация - kubernetes.io/ingress.global-static-ip-name - доступна для входящего трафика GKE по умолчанию, который по сути является балансировщиком нагрузки Google - см. Документацию здесь - https://cloud.google.com/kubernetes-engine/docs/tutorials/http-balancer.

Однако , вместо этого вы развернули ingress- nginx (который является другим поставщиком входящего трафика) и назначили ему свой ресурс входа через kubernetes.io/ingress.class: nginx, что, по сути, делает вашу аннотацию stati c ip бессмысленной.

Итак, вам нужно решить, какой вход вы хотите использовать. Если вы хотите использовать балансировщик нагрузки GKE, удалите вход nginx и следуйте документации по входу GKE по умолчанию, на которую я ссылался выше.

Если вместо этого вы хотите использовать вход nginx, вы можете найти его документацию, включая ssl конфигурация, здесь - https://kubernetes.github.io/ingress-nginx/.

...