当前位置: 首页 > 知识库问答 >
问题:

入口中的托管证书,域状态失败不可见

宗政霄
2023-03-14

我只是按照这里的教程进行操作:https://cloud.google.com/kubernetes-engine/docs/how-to/managed-certs#creating_an_ingress_with_a_managed_certificate

在部署证书并等待20分钟后,证书显示为:

Status:
  Certificate Name:    daojnfiwlefielwrfn
  Certificate Status:  Provisioning
  Domain Status:
    Domain:  moviedecisionengine.com
    Status:  FailedNotVisible

这一领域显然是可行的,那么我遗漏了什么呢?

编辑:

这是证书:

apiVersion: networking.gke.io/v1beta1
kind: ManagedCertificate
metadata:
    name: moviedecisionengine
spec:
    domains:
        - moviedecisionengine.com

入口:

apiVersion: extensions/v1beta1
kind: Ingress
metadata:
  annotations:
    ingress.gcp.kubernetes.io/pre-shared-cert: mcrt-14cb8169-25ba-4712-bca5-cb612562a00b
    ingress.kubernetes.io/backends: '{"k8s-be-31721--1cd1f38313af9089":"HEALTHY"}'
    ingress.kubernetes.io/forwarding-rule: k8s-fw-default-showcase-mde-ingress--1cd1f38313af9089
    ingress.kubernetes.io/https-forwarding-rule: k8s-fws-default-showcase-mde-ingress--1cd1f38313af9089
    ingress.kubernetes.io/https-target-proxy: k8s-tps-default-showcase-mde-ingress--1cd1f38313af9089
    ingress.kubernetes.io/ssl-cert: mcrt-14cb8169-25ba-4712-bca5-cb612562a00b
    ingress.kubernetes.io/target-proxy: k8s-tp-default-showcase-mde-ingress--1cd1f38313af9089
    ingress.kubernetes.io/url-map: k8s-um-default-showcase-mde-ingress--1cd1f38313af9089
    kubernetes.io/ingress.global-static-ip-name: 34.107.208.110
    networking.gke.io/managed-certificates: moviedecisionengine
  creationTimestamp: "2020-01-16T19:44:13Z"
  generation: 4
  name: showcase-mde-ingress
  namespace: default
  resourceVersion: "1039270"
  selfLink: /apis/extensions/v1beta1/namespaces/default/ingresses/showcase-mde-ingress
  uid: 92a2f91f-3898-11ea-b820-42010a800045
spec:
  backend:
    serviceName: showcase-mde
    servicePort: 80
  rules:
  - host: moviedecisionengine.com
    http:
      paths:
      - backend:
          serviceName: showcase-mde
          servicePort: 80
  - host: www.moviedecisionengine.com
    http:
      paths:
      - backend:
          serviceName: showcase-mde
          servicePort: 80
status:
  loadBalancer:
    ingress:
    - ip: 34.107.208.110

最后,负载平衡器:

apiVersion: v1
kind: Service
metadata:
  creationTimestamp: "2020-01-13T22:41:27Z"
  labels:
    app: showcase-mde
  name: showcase-mde
  namespace: default
  resourceVersion: "2298"
  selfLink: /api/v1/namespaces/default/services/showcase-mde
  uid: d5a77d7b-3655-11ea-af7f-42010a800157
spec:
  clusterIP: 10.31.251.46
  externalTrafficPolicy: Cluster
  ports:
  - nodePort: 31721
    port: 80
    protocol: TCP
    targetPort: 80
  selector:
    app: showcase-mde
  sessionAffinity: None
  type: LoadBalancer
status:
  loadBalancer:
    ingress:
    - ip: 35.232.156.172

对于kubectl的完整输出,请描述managedcertificate moviedecisionengine:

Name:         moviedecisionengine
Namespace:    default
Labels:       <none>
Annotations:  kubectl.kubernetes.io/last-applied-configuration:
                {"apiVersion":"networking.gke.io/v1beta1","kind":"ManagedCertificate","metadata":{"annotations":{},"name":"moviedecisionengine","namespace...
API Version:  networking.gke.io/v1beta1
Kind:         ManagedCertificate
Metadata:
  Creation Timestamp:  2020-01-17T16:47:19Z
  Generation:          3
  Resource Version:    1042869
  Self Link:           /apis/networking.gke.io/v1beta1/namespaces/default/managedcertificates/moviedecisionengine
  UID:                 06c97b69-3949-11ea-b820-42010a800045
Spec:
  Domains:
    moviedecisionengine.com
Status:
  Certificate Name:    mcrt-14cb8169-25ba-4712-bca5-cb612562a00b
  Certificate Status:  Provisioning
  Domain Status:
    Domain:  moviedecisionengine.com
    Status:  FailedNotVisible
Events:      <none>

共有1个答案

董康平
2023-03-14

我成功地使用了Managed证书和GKE入口资源。

让我详细说明一下:

复制步骤:

  • 使用gcloud
  • 创建IP地址
  • 更新DNS条目
  • 创建部署
  • 创建服务
  • 创建证书
  • 创建入口资源

调用以下命令创建静态ip地址:

$gcloud计算地址创建示例地址--global

使用以下命令检查新创建的IP地址:

$gcloud计算地址描述示例地址--global

转到GCP-

使用与上面创建的地址相同的记录编辑区域。

等待它应用。

请使用$nslookup域进行检查。如果条目指向适当的地址,则输入名称。

下面是响应流量的部署示例:

apiVersion: apps/v1
kind: Deployment
metadata:
  name: hello
spec:
  selector:
    matchLabels:
      app: hello
      version: 1.0.0
  replicas: 3
  template:
    metadata:
      labels:
        app: hello
        version: 1.0.0
    spec:
      containers:
      - name: hello
        image: "gcr.io/google-samples/hello-app:1.0"
        env:
        - name: "PORT"
          value: "50001"

使用命令$kubectl应用-fFILE_NAME. yaml

您可以更改此部署以适合您的应用程序,但请注意应用程序将响应的端口。

使用节点端口,因为它与提供的链接中的相同:

apiVersion: v1
kind: Service
metadata:
  name: hello-service
spec:
  type: NodePort
  selector:
    app: hello
    version: 1.0.0
  ports:
  - name: hello-port
    protocol: TCP
    port: 50001
    targetPort: 50001

使用命令$kubectl应用-fFILE_NAME. yaml

如指南所示,您可以使用下面的示例创建Managed证书

apiVersion: networking.gke.io/v1beta1
kind: ManagedCertificate
metadata:
  name: example-certificate 
spec:
  domains:
    - DOMAIN.NAME

使用命令$kubectl应用-fFILE_NAME. yaml

状态“FAILED\u NOT\u VISIBLE”表示由于DNS或负载平衡配置问题,域的证书设置失败。确保已配置DNS,以便证书的域解析为负载平衡器的IP地址。-谷歌云文档

此证书的创建应受到您之前提供的DNS条目的影响。

下面是将使用Managed证书入口资源的示例:

apiVersion: extensions/v1beta1
kind: Ingress
metadata:
  name: ingress
  annotations:
    kubernetes.io/ingress.global-static-ip-name: example-address
    networking.gke.io/managed-certificates: example-certificate
spec:
  rules:
  - host: DOMAIN.NAME
    http:
      paths:
      - path: /
        backend:
          serviceName: hello-service
          servicePort: hello-port

使用命令$kubectl应用-fFILE_NAME. yaml

它需要大约20-25分钟才能完全工作。

 类似资料:
  • 原始状态是操作员在自己数据结构中保持的状态。当检查点为检查点时,它们只将一系列字节写入检查点。Flink对状态的数据结构一无所知,只看到原始字节。 然而,我没有找到任何例子来突出这种区别。有谁能提供一个最小的例子,在代码中明确区别吗?

  • - 我运行了此脚本,但出现了此错误。我怎么做?

  • 问题内容: 遇到了应从具有自签名证书的邮件服务器发送电子邮件的问题,我得到的错误是: 有没有人遇到过类似的事情? 编辑: 我也尝试过设置stream_context参数(params:SSL上下文选项): 运气不好,它仍然会失败,并出现与上述相同的错误。 谢谢。 问题答案: PHP 5.6引入了SSL证书验证,因此,如果您的配置被破坏,它将因该错误而失败。您应该修复SSL,但是可以通过将属性设置为

  • 这里有很多关于表单提交后如何正确保存Laravel中的复选框字段的问题(例如,示例,示例),这个问题与此无关。 请注意,我也很清楚Laravel的方法,并且它接受默认值。我的问题是关于似乎对复选框不起作用的特定情况。 我正在编辑表单,更新数据库中已有的数据。表单最初将填充DB中的值。 验证失败后重新填充表单输入的标准方法是使用。对于大多数输入类型,类似于以下内容的操作都有效: 在初始页面加载时(在

  • 问题内容: 我陷入了持续的SSL验证问题。 SSL:CERTIFICATE_VERIFY_FAILED 我在构建让用户使用Mozilla Persona进行身份验证的Django应用程序时发现了错误。 我得到一个追溯从到到: python3和python2之间的区别 这就是它开始变得有趣的地方:使用python2.7时,我没有遇到相同的问题: 我的第一个想法是这两个版本的证书可能使用不同的证书[1

  • 我尝试在GKE集群(版本1.21.5-gke.1302)中使用ingress和cert-manager来公开ArgoCD,但是证书没有颁发。 重现步骤: > 安装证书管理器应用此 yaml 在运行helm的情况下安装ngin x入口控制器: 应用以下内容创建集群颁发者: 使用本指南和文件应用入口: < li >将入口控制器的ip映射到您的主机名。 预期行为:我期望证书被成功创建并可以访问应用程序。