Https 创建ManagedCertificate会导致;状态:FailedNotVisible“;

Https 创建ManagedCertificate会导致;状态:FailedNotVisible“;,https,tls1.2,google-kubernetes-engine,Https,Tls1.2,Google Kubernetes Engine,使用Kubernetes 1.12.6-gke.7或更高版本,可以创建ManagedCertificate,然后从向Internet公开服务的入口资源引用该证书 首先运行kubectl Descripte managedcertificate certificate name表示证书处于设置状态,但最终转到FailedNotVisible Name: subdomain-domain-certificate Namespace: default Labels:

使用Kubernetes 1.12.6-gke.7或更高版本,可以创建ManagedCertificate,然后从向Internet公开服务的入口资源引用该证书

首先运行kubectl Descripte managedcertificate certificate name表示证书处于设置状态,但最终转到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
尽管使用静态IP和DNS可以很好地解析上述服务的http版本,但所有ManagedCertificate最终都处于“状态:FailedNotVisible”状态

概述我正在做的事情:

  • 生成保留(静态)外部IP地址

  • 将CloudDNS中的DNS A记录配置为subdomain.domain.com,以从步骤1生成IP地址

  • 创建名为“subdomain certificate”的ManagedCertificate,其中kubectl apply-f的spec:domains包含与步骤2中subdomain.domain.com DNS记录对应的单个域
  • 创建一个简单的部署并公开它
  • 创建入口资源,参考步骤4中的默认服务后端,以及步骤1中创建的静态ip注释和步骤3中生成的托管证书
  • 确认已创建入口并分配了静态IP
  • 访问服务于步骤4中部署中创建的pod的输出
  • 过了一会儿

    kubectl描述managedcertificate子域证书

    结果为“状态:FailedNotVisible”

    名称:子域证书
    名称空间:默认值
    标签:
    注释:
    API版本:networking.gke.io/v1beta1
    种类:ManagedCertificate
    元数据:
    创建时间戳:2019-04-15T17:35:22Z
    世代:1
    资源版本:52637
    自链接:/api/networking.gke.io/v1beta1/namespace/default/managedcertificates/subdomain-domain-certificate
    UID:d8e5a0a4-5fa4-11e9-984e-42010a84001c
    规格:
    域:
    subdomain.domain.com
    地位:
    证书名称:mcrt-ac63730e-c271-4826-9154-c198d654f9f8
    证书状态:设置
    域状态:
    域名:subdomain.Domain.com
    状态:FailedNotVisible
    活动:
    从消息中键入原因年龄
    ----    ------  ----  ----                            -------
    正常创建56m托管证书控制器创建SslCertificate mcrt-ac63730e-c271-4826-9154-c198d654f9f8
    

    从我的理解来看,如果负载平衡器配置正确(在ManagedCertificate资源的引擎盖下完成),并且DNS(可以很好地解析非https端点)签出证书,那么证书应该进入一个状态:活动状态?

    我的问题的根本原因是DNSSEC配置错误。在通过DNS运行后,我能够识别并修复该问题。

    您需要确保域名解析为您的GKE入口的IP地址,并严格遵循“”的说明

    有关更多详细信息,请参阅谷歌云负载平衡文档。发件人:


    “状态FAILED\u NOT\u VISIBLE表示由于DNS或负载平衡配置问题,域的证书设置失败。请确保DNS配置为使证书的域解析为负载平衡器的IP地址。”

    DNSSEC确实没有为我的域启用,但在配置之后,仍然没有通过,我不知道发生了什么。删除并重新应用ManagedCertificate和入口清单并没有奏效。但是,发出命令gcloud beta compute ssl certificates list时,显示了几个未使用的托管证书挂起,并使用,在我的情况下,重新启动配置过程就起到了作用。

    我在设置新服务时遇到了这个问题,我的8个外部IP的余量用完了

    之后,我检查是否有端口443到我的入口的转发规则。 没有。 当我试图手动设置它时,我得到一个错误,告诉我我用光了我的8个魔法地址。 我删除了转发规则,我不需要等待


    现在,我无法理解为什么为相同的入口成功设置端口80的转发规则。

    也有同样的问题,谢谢工具。需要向Godaddy支付资金以启用DNSSEC。不要再给Godaddy任何资金,只需将Godaddy中的DNS名称服务器移动到GCP Cloud DNS并从那里启用即可。我不确定随着时间的推移会花费多少钱,但不需要预付款。我要明确的是,是否有必要启用DNSSEC?问题到底是什么?PSA:启用DNSSEC不是使用ManagedCertificates的要求。但是,将ManagedCertificate规范中列出的所有域名解析为使用它们的负载平衡器的全局静态IP地址是非常困难的。如果您启用了DNSSEC,并且配置错误,则可能会导致问题。是的,Evan,这些是明显的(有充分记录的)偏差,可能会导致出现“失败/不可见”问题。在我的案例中,原因是来自GoDaddy的DNSSEC代表团不正确。