Сертификат Google, управляемый SSL, застрял на FAILED_NOT_VISIBLE - PullRequest
0 голосов
/ 21 декабря 2018

Я пытаюсь настроить балансировщик нагрузки https на GKE.Я следую: https://cloud.google.com/load-balancing/docs/ssl-certificates и https://cloud.google.com/kubernetes-engine/docs/concepts/ingress

Мой конфиг работает в течение некоторого времени с использованием сертификата Let's Encrypt.Но постоянно обновлять сертификаты слишком сложно, поэтому я захотел протестировать управляемую службу Google.

Вот так я ее настроил, но остановился на FAILED_NOT_VISIBLE.Любая идея о том, как я могу исправить или отладить это дальше?

k8s / staging / staging-ssl.yml

  7 apiVersion: extensions/v1beta1
  8 kind: Ingress
  9 metadata:
 10   name: my-staging-lb-ingress
 11   annotations:
 12     kubernetes.io/ingress.global-static-ip-name: "my-staging-global"
 13     ingress.gcp.kubernetes.io/pre-shared-cert: "staging-google-managed-ssl"
 14     kubernetes.io/ingress.allow-http: "false"
 15 spec:
 16   rules:
 17   - host: staging.my-app.no
 18     http:
 19       paths:
 20       - path: /*
 21         backend:
 22           serviceName: my-svc
 23           servicePort: 3001

Зарезервированный IP

$ gcloud compute addresses list
NAME                   REGION  ADDRESS         STATUS
my-staging-global              35.244.160.NNN  RESERVED


$ host staging.my-app.no 
35.244.160.NNN

$ gcloud бета-вычисления ssl-сертификаты описывают staging-google-managed-ssl

creationTimestamp: '2018-12-20T04:59:39.450-08:00'
id: 'NNNN'
kind: compute#sslCertificate
managed:
  domainStatus:
    staging.my-app.no: FAILED_NOT_VISIBLE
  domains:
  - staging.my-app.no
  status: PROVISIONING
name: staging-google-managed-ssl
selfLink: https://www.googleapis.com/compute/beta/projects/my-project/global/sslCertificates/staging-google-managed-ssl
type: MANAGED

Я нашел раздел в документе, с которым я связан наначало публикации Связывание ресурсов SSL-сертификатов с целевым прокси:

Используйте следующую команду gcloud, чтобы связать ресурсы SSL-сертификатов с целевым прокси, независимо от того, являются ли SSL-сертификаты самостоятельными.-управляемый или управляемый Google.

gcloud compute target-https-proxies create [NAME] \
    --url-map=[URL_MAP] \
    --ssl-certificates=[SSL_CERTIFICATE1][,[SSL_CERTIFICATE2],[SSL_CERTIFICATE3],...]

Это необходимо, если у меня есть эта строка в моем входном конфиге?

13 ingress.gcp.kubernetes.io/pre-shared-cert: "staging-google-managed-ssl"

Ответы [ 4 ]

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

Я оставляю это для всех, кто может оказаться в той же ситуации, что и я.Мне нужно было перейти с самоуправляемого сертификата на управляемый Google.

Я действительно создал управляемый Google сертификат, следуя руководству, и ожидал увидеть его активированным до применения сертификата к моему входу в Kubernetes.(чтобы избежать возможности простоя)

Получается, как указано в документах ,

целевой прокси должен ссылаться на ресурс сертификата, управляемый Google

Таким образом, применение конфигурации с kubectl apply -f ingress-conf.yaml заставило балансировщик нагрузки использовать вновь созданный сертификат, который стал активным вскоре после (15 минут или около того)

0 голосов
/ 26 декабря 2018

Что такое TTL (время жизни) записи ресурса A для staging.my-app.no?Используйте, например,

dig +nocmd +noall +answer staging.my-app.no

, чтобы выяснить это.

В моем случае увеличение TTL с 60 секунд до 7200 позволяет domainStatus наконец прийти к ACTIVE.

0 голосов
/ 07 января 2019

Оказывается, я по ошибке сделал некоторые изменения в производственной среде, а другие - в подготовке.Все работало, как ожидалось, когда я понял это и следовал руководству.: -)

0 голосов
/ 22 декабря 2018

В соответствии со следующей документацией , которую вы предоставили, это должно вам помочь:

Состояние FAILED_NOT_VISIBLE указывает на то, что подготовка домена не выполнена для домена из-за проблемы с DNSили конфигурация балансировки нагрузки.Убедитесь, что DNS настроен таким образом, что домен сертификата соответствует IP-адресу балансировщика нагрузки.

...