【问题标题】:Error from server: conversion webhook for cert-manager.io/v1alpha2 for cert-manager ClusterIssuer来自服务器的错误:cert-manager.io/v1alpha2 的转换 webhook 用于 cert-manager ClusterIssuer
【发布时间】:2020-06-28 13:25:19
【问题描述】:

当我尝试使用 NGINX 入口控制器和 cert-manager 为我的集群应用程序配置 TLS Let's Encrypt 证书时,ClusterIssuer 出现问题。

我的 ClusterIssuer 定义如下:

apiVersion: cert-manager.io/v1alpha2
kind: ClusterIssuer
metadata:
  name: letsencrypt-prod
spec:
  acme:
    email: user@example.com
    server: https://acme-v02.api.letsencrypt.org/directory
    privateKeySecretRef:
      name: letsencrypt-prod
    solvers:
    - http01:
        ingress:
          class: nginx

当我通过 kubectl 查看 clusterissuer 时,它说 ClusterIssuer 是 READY

$ kubectl get clusterissuer --namespace mynamespace

回复:

NAME               READY   AGE
letsencrypt-prod   True    13s

但是当我描述 ClusterIssuer 时,我得到了一个错误。

$ kubectl describe clusterissuer letsencrypt-prod --namespace mynamespace

回复:

Error from server: conversion webhook for cert-manager.io/v1alpha2, Kind=ClusterIssuer failed: Post https://cert-manager-webhook.cert-manager.svc:443/convert?timeout=30s: service "cert-manager-webhook" not found

我使用 Helm 3 安装了 cert-manager,并手动添加了 CRD。

如何解决?

【问题讨论】:

    标签: kubernetes kubernetes-helm kubernetes-ingress nginx-ingress cert-manager


    【解决方案1】:

    当 CRD 手动应用于您的集群时,cert-manager 图表不接受不同的命名空间。 install 将 CRD 作为 Helm 3 版本的一部分而不是先手动应用它们。

    $ helm repo add jetstack https://charts.jetstack.io
    
    $ helm repo update
    
    $ helm install \
      cert-manager jetstack/cert-manager \
      --namespace mynamespace \
      --version v0.15.1 \
      --set installCRDs=true
    

    【讨论】:

      【解决方案2】:

      我通过在metadata 下添加namespace: cert-manager 解决了这个问题

      看起来像这样:

      apiVersion: cert-manager.io/v1alpha2
      kind: ClusterIssuer
      metadata:
        name: letsencrypt-prod
        namespace: cert-manager
      spec:
        acme:
          email: user@example.com
          server: https://acme-v02.api.letsencrypt.org/directory
          privateKeySecretRef:
            name: letsencrypt-prod
         solvers:
         - http01:
             ingress:
               class: nginx
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2022-10-05
        • 2019-12-21
        • 1970-01-01
        • 1970-01-01
        • 2020-04-12
        • 1970-01-01
        • 2019-06-28
        • 1970-01-01
        相关资源
        最近更新 更多