kubernetes 如何修复"调用webhook“www.example.com”webhook.cert-manager.io失败“?

o7jaxewo  于 2022-11-21  发布在  Kubernetes
关注(0)|答案(3)|浏览(263)

我正在尝试设置一个K3 s集群。当我有一个主服务器和代理设置cert-manager时没有问题。现在我正在尝试使用嵌入式etcd的两个主服务器设置。我为两个虚拟机打开了TCP端口64432379-2380,并执行了以下操作:
第一个
安装证书管理器工作正常:

# k3s kubectl apply -f https://github.com/cert-manager/cert-manager/releases/download/v1.8.0/cert-manager.yaml
# k3s kubectl get pods --namespace cert-manager
NAME                                       READY   STATUS
cert-manager-b4d6fd99b-c6fpc               1/1     Running
cert-manager-cainjector-74bfccdfdf-gtmrd   1/1     Running
cert-manager-webhook-65b766b5f8-brb76      1/1     Running

我的清单具有以下定义:

apiVersion: cert-manager.io/v1
kind: ClusterIssuer
metadata:
  name: letsencrypt
spec:
  acme:
    server: https://acme-v02.api.letsencrypt.org/directory
    email: info@example.org
    privateKeySecretRef:
      name: letsencrypt-account-key
    solvers:
    - selector: {}
      http01:
        ingress: {}

这将导致以下错误:

# k3s kubectl apply -f manifest.yaml
Error from server (InternalError): error when creating "manifest.yaml": Internal error occurred: failed calling webhook "webhook.cert-manager.io": failed to call webhook: Post "https://cert-manager-webhook.cert-manager.svc:443/mutate?timeout=10s": context deadline exceeded

我试着禁用两个防火墙,等了一天,重置和重新设置,但错误仍然存在。谷歌也没有太大的帮助。我能找到的小信息在我的头上的大部分,似乎没有教程做任何额外的步骤。

u4vypkhs

u4vypkhs1#

尝试在Cluster Issuer中指定正确的入口类名称,如下所示:

apiVersion: cert-manager.io/v1
kind: ClusterIssuer
metadata:
  name: letsencrypt
spec:
  acme:
    server: https://acme-v02.api.letsencrypt.org/directory
    email: info@example.org
    privateKeySecretRef:
      name: letsencrypt-account-key
    solvers:
    - http01:
        ingress:
          class: nginx

另外,确保在入口中指定了cert manager注解和tls secret名称,如下所示:

apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
    annotations:
      cert-manager.io/cluster-issuer: letsencrypt
...
spec:
  tls:
    - hosts:
      - domain.com
      secretName: letsencrypt-account-key
ccrfmcuu

ccrfmcuu2#

在文档中可以找到解决webhook问题的一个很好的起点,例如,有一个关于GKE专用集群问题的部分。
然而,在我的例子中,这并没有真正解决问题。对我来说,问题是当我玩cert-manager时,我碰巧安装和卸载了它多次。结果证明,仅仅删除名称空间,例如kubectl delete namespace cert-manager并没有删除webhook和其他不明显的资源。
遵循uninstalling cert-manager的官方指南并再次应用清单解决了该问题。

tsm1rwdh

tsm1rwdh3#

我 做 这 件 事 , 为 我 工作 。
舵 安装 器
证书 管理 器 喷射 堆栈/证书 管理 器

相关问题