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

如何使用裸机集群上的证书管理器在Kubernetes中自动执行Let's Encrypt证书更新?

戎亦
2023-03-14

我想访问我的库伯内特斯裸机集群与暴露的Ngin x入口控制器TLS终止。为了能够自动更新证书,我想使用库伯内特斯插件证书管理器,它是库贝-lego的继任者。

到目前为止我所做的:

> < li>

按照本指南在裸机(1个主机,1个迷你机,均运行Ubuntu 16.04.4 LTS)上设置Kubernetes (v1.9.3)集群,并使用kubeadm和法兰绒作为pod网络。

使用库伯内特斯包管理器helm
helm安装ngin x-ingres(图表版本0.9.5)--name ngin x-ingres--namesspace库贝-系统稳定controller.hostNetwork=true,rbac.create=true,controller.service.type=ClusterIP

已安装证书管理器(图表版本0.2.2),带helm
helm install--name cert manager--namespace kube system stable/cert manager--set rbac.create=true

当我使用一个入口资源进行测试时,入口控制器已成功公开,并按预期工作。为了进行正确的让我们加密证书管理和使用cert-Manager自动续订,我首先需要一个颁发者资源。我从这个acme-staging-issuer.yaml创建了它:

apiVersion: certmanager.k8s.io/v1alpha1
kind: Issuer
metadata:
  name: letsencrypt-staging
  namespace: default
spec:
  acme:
    server: https://acme-staging.api.letsencrypt.org/directory
    email: email@example.com
    privateKeySecretRef:
      name: letsencrypt-staging
    http01: {}

kubectl创建-facme-staging-issuer.yaml运行成功,但kubectl描述发行人/lets加密阶段给我:

Status:
  Acme:
    Uri:  
  Conditions:
    Last Transition Time:  2018-03-05T21:29:41Z
    Message:               Failed to verify ACME account: Get https://acme-staging.api.letsencrypt.org/directory: tls: oversized record received with length 20291
    Reason:                ErrRegisterACMEAccount
    Status:                False
    Type:                  Ready
Events:
  Type     Reason                Age               From                     Message
  ----     ------                ----              ----                     -------
  Warning  ErrVerifyACMEAccount  1s (x11 over 7s)  cert-manager-controller  Failed to verify ACME account: Get https://acme-staging.api.letsencrypt.org/directory: tls: oversized record received with length 20291
  Warning  ErrInitIssuer         1s (x11 over 7s)  cert-manager-controller  Error initializing issuer: Get https://acme-staging.api.letsencrypt.org/directory: tls: oversized record received with length 20291

如果没有准备好的发行人,我无法继续生成证书管理器证书或使用入口垫片(用于自动续订)。

我的设置遗漏了什么?使用hostNetwork=true暴露入口控制器是否足够,或者是否有更好的方法来暴露裸机集群上的its端口80和443?创建证书管理器颁发者资源时,如何解决tls:收到过大的记录错误?

共有1个答案

盛建德
2023-03-14

tls:收到过大的记录错误是由Kubernetes minion的< code>/etc/resolv.conf配置错误引起的。它可以通过如下编辑来解决:

$ sudo vi /etc/resolvconf/resolv.conf.d/base

添加名称服务器列表:

nameserver 8.8.8.8
nameserver 8.8.4.4

更新resolconf:

$ sudo resolvconf -u
 类似资料:
  • 我试图配置RBAC来添加访问受限的新用户。我正在遵循以下教程:https://docs.bitnami.com/kubernetes/how-to/configure-rbac-in-your-kubernetes-cluster/#use-case-1-create-user-with-limited-namespace-access 它要求我使用Kubernetes CA批准用户签名请求: 找

  • 我们在裸机服务器上设置了库伯内特斯集群。 我们部署应用程序,其中每个命名空间都是最终客户的应用程序。即customer1.mydomain.com- 我们不断获得库伯内特斯入口控制器假证书。 我们购买了自己的通配符证书*。mydomain。通用域名格式 进入。亚马尔 https://cust1.mydomain.com连接库伯内特斯入口控制器假证书

  • 我在AWS OpsWorks上部署了一个Rails应用程序。我最近关联了一个购买AWS SES的域,并在该域的AWS证书管理器中获得了一个证书。 根据文件,所支持的服务是: null 例如。有一种方法可以从ACM获得SSL证书和SSL证书密钥,以便将其添加到OpsWorks中的应用程序设置中?

  • 我们正在尝试使用Jenkins Kubernetes插件添加云代理。到kubernetes的连接可以工作(我已经通过测试连接验证了这一点。此外,当我的作业尝试启动时,pods容器会添加到集群中)。我正在我的pod模板中添加以下配置--pod容器在我的kubernetes引擎中启动。 问题-作业不运行,并不断创建新的豆荚和删除旧的豆荚。在正确的方向上需要一些帮助。我在网上搜索了一下,寻找是否有人有类

  • 是的,弹性豆茎应用程序是负载平衡的,并且确实有一个与之相关联的ELB。 我知道我可以直接应用于ELB我自己。但是我想通过弹性豆茎来应用它,这样env配置就保存到云形成模板上了。

  • 我正在使用Java Webstart技术开发一个Java桌面应用程序。我使用有效的证书对我的应用程序进行签名,并使用JnlpDownloadServlet进行部署。我用maven webstart插件准备了所有这些基础设施。 但是当我的证书过期,我不得不辞职并重新部署我的应用程序时,我在让webstart完全重新下载我的应用程序时遇到了问题。 据我所知,根据我可以从Internet收集的内容(We