Создание ManagedCertificate приводит к «Status: FailedNotVisible» - PullRequest
3 голосов
/ 15 апреля 2019

Используя Kubernetes 1.12.6-gke.7 или выше, можно создать ManagedCertificate, на который затем ссылаются из Ingress Resource, открывающего Сервис Интернету.

Выполнение kubectl Описание управляемого сертификата-name-name сначала указывает, что сертификат находится в состоянии Provisioning, но в конечном итоге переходит в FailedNotVisible.

Несмотря на использование статического IP-адреса и DNS, которые разрешаются в соответствии с http-версией указанноговсе службы ManagedCertificate находятся в состоянии «Status: FailedNotVisible».

Описание того, что я делаю:

  1. Создание зарезервированного (статического) внешнего IP-адреса

  2. Настройка DNS Запись в CloudDNS на subdomain.domain.com для создания IP-адреса с шага 1.

  3. Создание сертификата ManagedCertificate с именем «subdomain-domain-certificate»с kubectl применить -f с spec: домены, содержащие один домен, соответствующий DNS-записи subdomain.domain.com на шаге 2.
  4. Создание простого развертывания и предоставление его службы
  5. Создание ресурса Ingress со ссылкой на ресурспо умолчанию бэкэнд службы на шаге 4, а также аннотации для статического ip, созданные в step 1 и управляемый сертификат, сгенерированный на шаге 3.
  6. Подтвердите, что Ingress создан и ему назначен статический IP
  7. Visiting http://subdomain.domain.com обслуживает вывод из модуля, созданного в развертывании на шаге 4

Через некоторое время

kubectl описывает управляемый сертификат subdomain-domain-certificate

приводит к «Status: FailedNotVisible».

Name:         subdomain-domain-certificate
Namespace:    default
Labels:       <none>
Annotations:  <none>
API Version:  networking.gke.io/v1beta1
Kind:         ManagedCertificate
Metadata:
  Creation Timestamp:  2019-04-15T17:35:22Z
  Generation:          1
  Resource Version:    52637
  Self Link:           /apis/networking.gke.io/v1beta1/namespaces/default/managedcertificates/subdomain-domain-certificate
  UID:                 d8e5a0a4-5fa4-11e9-984e-42010a84001c
Spec:
  Domains:
    subdomain.domain.com
Status:
  Certificate Name:    mcrt-ac63730e-c271-4826-9154-c198d654f9f8
  Certificate Status:  Provisioning
  Domain Status:
    Domain:  subdomain.domain.com
    Status:  FailedNotVisible
Events:
  Type    Reason  Age   From                            Message
  ----    ------  ----  ----                            -------
  Normal  Create  56m   managed-certificate-controller  Create SslCertificate mcrt-ac63730e-c271-4826-9154-c198d654f9f8

Из того, что я понимаю, если балансировщик нагрузки настроен правильно (сделано под капотом в ресурсе ManagedCertificate) и DNS (который разрешается нормально для конечной точки не https) проверяет, что сертификат должен войти в статус: Активное состояние?

Ответы [ 2 ]

5 голосов
/ 16 апреля 2019

Проблема, лежащая в основе моей проблемы, закончилась неправильной настройкой DNSSEC. После запуска DNS через https://dnssec -analyzer.verisignlabs.com / мне удалось выявить и устранить проблему.

0 голосов
/ 21 мая 2019

Вам необходимо убедиться, что имя домена соответствует IP-адресу вашего GKE Ingress, точно следуя указаниям для " создания Ingress с управляемым сертификатом ".

Подробнее см. В документации по балансировке нагрузки облака Google. От https://cloud.google.com/load-balancing/docs/ssl-certificates#domain-status:

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

...