Как настроить автоматически созданный istio-ingressgateway в GKE? - PullRequest
0 голосов
/ 12 июня 2019

Я хочу добавить доменное имя на основе подстановочного знака (например, * .somedomain.com) на istio-ingressgateway и установить самозаверяющий сертификат TLS. Istio на GKE устанавливается через включение Istio из списка дополнений кластера.

Первый вопрос: рекомендуется ли настраивать и использовать автоматически созданный istio-ingressgateway вместо его создания?

Если это так, то второй вопрос заключается в том, как обновить настройки для этого шлюза.

Мне пришлось включить метки , resourceVersion и selfLink из автоматически созданного ingressgateway и установить resourceVersion в качестве текущей версии, в противном случае Kubernetes не принять новый файл YAML.

apiVersion: networking.istio.io/v1alpha3
kind: Gateway
metadata:
  # QUESTION: Copid fields from the current ingressgateway to be specified.
  # Otherwise, kubectl does not accept the settings.
  # $ kubectl apply -f ./helm-charts/istio/gateway.yaml
  # The gateways "istio-autogenerated-k8s-ingress" is invalid: metadata.resourceVersion: Invalid value: 0x0: must be specified for an update

  # labels:
  #   addonmanager.kubernetes.io/mode: EnsureExists
  #   k8s-app: istio
  # resourceVersion: "9331065"
  # selfLink: /apis/networking.istio.io/v1alpha3/namespaces/istio-system/gateways/istio-autogenerated-k8s-ingressa
  name: istio-autogenerated-k8s-ingress
  namespace: istio-system
spec:
  selector:
    istio: ingressgateway
  servers:
  - port:
      number: 443
      name: https
      protocol: HTTPS
    tls:
      mode: PASSTHROUGH
      serverCertificate: /etc/istio/ingressgateway-certs/tls.crt
      privateKey: /etc/istio/ingressgateway-certs/tls.key
    hosts:
    - "*.heportal.squiz.cloud"

Если я применю приведенный выше пример файла gateway.yaml:

$ kubectl apply -f ./helm-charts/istio/gateway.yaml
The gateways "istio-autogenerated-k8s-ingress" is invalid: metadata.resourceVersion: Invalid value: 0x0: must be specified for an update

1 Ответ

0 голосов
/ 12 июня 2019

Добро пожаловать в StackOverflow @ skim-go

Боюсь, вам следует не делать какие-либо прямые изменения (редактирование kubectl) для автоматически генерируемых ресурсов (например, входной шлюз по умолчанию), который поставляется с Istio для надстройки GKE, так как они будут отменены менеджером дополнений Kubernetes.

Вместо этого я бы порекомендовал вам установить / добавить пользовательский шлюз в вашу существующую установку Istio on GKE (и выполнить настройку там), поскольку они не согласованы, цитирование после официального doc :

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

Как добавить пользовательский входной шлюз, который я объяснил в вопросе другого SO здесь .

Подсказка: поскольку вы уже установили Istio на GKE, в вашем случае вы должны использовать стратегию unified diff для подготовки необходимого файла манифеста, в котором отсутствуют только ресурсы в вашем кластере.

...