web-dev-qa-db-ja.com

ManagedCertificateを作成すると、「Status:FailedNotVisible」になります

Kubernetes 1.12.6-gke.7以降を使用すると、サービスをインターネットに公開するIngressリソースから参照されるManagedCertificateを作成できます。

Kubectl describe managedcertificate certificate-nameを実行すると、最初に証明書がプロビジョニング状態であることを示しますが、最終的にFailedNotVisibleになります。

上記のサービスのhttpバージョンに正しく解決される静的IPおよびDNSを使用しているにもかかわらず、ManagedCertificateはすべて「Status:FailedNotVisible」状態になります。

私がやっていることの概要:

  1. 予約済み(静的)外部IPアドレスの生成

  2. CloudDNSのDNS Aレコードをsubdomain.domain.comに設定し、手順1で生成されたIPアドレスを設定します。

  3. 手順2のsubdomain.domain.com DNSレコードに対応する単一のドメインを含むspec:domainsを指定したkubectl apply -fを使用して、「subdomain-domain-certificate」という名前のManagedCertificateを作成します。
  4. 単純なデプロイメントの作成とそれを公開するサービス
  5. 手順4でデフォルトのサービスのバックエンドを参照するIngressリソースを作成し、手順1で作成した静的IPの注釈と手順3で生成した管理証明書を作成します。
  6. Ingressが作成され、静的IPが割り当てられていることを確認します
  7. Visiting http://subdomain.domain.com は、ステップ4のデプロイメントで作成されたポッドからの出力を提供します

しばらくして

kubectlは、managedcertificateサブドメイン-ドメイン-証明書を記述します

結果は「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以外のエンドポイントに正常に解決される)で証明書がチェックアウトされ、ステータスがアクティブになる必要があるかどうかを私は理解していますか?

8
Smith

ドメイン名がGKE IngressのIPアドレスに解決されることを確認する必要があります。「 管理された証明書でIngressを作成する 」の指示に正確に従ってください。

詳細については、Google Cloud Load Balancingのドキュメントをご覧ください。 https://cloud.google.com/load-balancing/docs/ssl-certificates#domain-status から:

「ステータスFAILED_NOT_VISIBLEは、DNSまたは負荷分散構成の問題が原因で、ドメインの証明書のプロビジョニングが失敗したことを示しています。証明書のドメインがロードバランサーのIPアドレスに解決されるようにDNSが構成されていることを確認してください。」

0
Evan Jones

DNSSECは確かに私のドメインで有効にされていませんが、それを構成した後、 ManagedCertificate構成 はまだ実行されておらず、何が起こっているのかわかりませんでした。 ManagedCertificateおよびIngressマニフェストを削除して再適用しても、うまくいきませんでした。しかし、コマンドgcloud beta compute ssl-certificates listcloud compute ssl-certificates delete NAME ... 、そして私の場合、設定プロセスを再起動するとうまくいきました。

0