使用 cert-manager 为 rancher 获取 letsencrypt 证书时连接被拒绝
Connection refused when using cert-manager to get a letsencrypt certificate for rancher
我使用这些说明在新安装的 Ubuntu 20.04 服务器上安装了 MicroK8s:https://microk8s.io/
然后我按照这些说明安装了 helm:https://helm.sh/docs/intro/install/
最后我使用这些说明安装了 rancher:https://rancher.com/docs/rancher/v2.x/en/installation/install-rancher-on-k8s/
它似乎有效。牧场主 pods 是 运行,但是牧场主本身无法访问。系统上没有活动的防火墙。
所以我查看了日志:
kubectl -n cattle-system describe certificate
...
Spec:
Dns Names:
<domain>
Issuer Ref:
Group: cert-manager.io
Kind: Issuer
Name: rancher
Secret Name: tls-rancher-ingress
Status:
Conditions:
Last Transition Time: 2020-10-16T16:12:11Z
Message: Waiting for CertificateRequest "tls-rancher-ingress-3273743932" to complete
Reason: InProgress
Status: False
Type: Ready
Events:
Type Reason Age From Message
---- ------ ---- ---- -------
Normal GeneratedKey 78m cert-manager Generated a new private key
Normal Requested 78m cert-manager Created new CertificateRequest resource "tls-rancher-ingress-3273743932"
kubectl -n cert-manager logs cert-manager-86b8b4f4b7-jvrg9
I1016 17:25:13.476038 1 sync.go:86] cert-manager/controller/issuers "msg"="Error initializing issuer: Get \"https://acme-v02.api.letsencrypt.org/directory\": dial tcp: lookup acme-v02.api.letsencrypt.org on 127.0.0.53:53: read udp 127.0.0.1:34709-\u003e127.0.0.53:53: read: connection refused" "resource_kind"="Issuer" "resource_name"="rancher" "resource_namespace"="cattle-system"
我是 kubernetes 的新手,这个日志不是很好。连接到底在哪里被拒绝?在发行人(letsencrypt)本身?我该如何解决?
编辑:主要是我在解释最后一条试图告诉我出了什么问题的日志消息时遇到了问题。 “在 127.0.0.53:53 上查找 acme-v02.api.letsencrypt.org” 读起来好像它在错误地解析该 dns 条目。如果我在主机上 ping 它,它会正确解析它。我需要为 kubernetes pods 做一些 DNS 配置才能使用主机的 dns 吗?我在这里也可能完全错了。
安装 microk8s dns 和入口插件解决了这个问题。
我使用这些说明在新安装的 Ubuntu 20.04 服务器上安装了 MicroK8s:https://microk8s.io/
然后我按照这些说明安装了 helm:https://helm.sh/docs/intro/install/
最后我使用这些说明安装了 rancher:https://rancher.com/docs/rancher/v2.x/en/installation/install-rancher-on-k8s/
它似乎有效。牧场主 pods 是 运行,但是牧场主本身无法访问。系统上没有活动的防火墙。 所以我查看了日志:
kubectl -n cattle-system describe certificate
...
Spec:
Dns Names:
<domain>
Issuer Ref:
Group: cert-manager.io
Kind: Issuer
Name: rancher
Secret Name: tls-rancher-ingress
Status:
Conditions:
Last Transition Time: 2020-10-16T16:12:11Z
Message: Waiting for CertificateRequest "tls-rancher-ingress-3273743932" to complete
Reason: InProgress
Status: False
Type: Ready
Events:
Type Reason Age From Message
---- ------ ---- ---- -------
Normal GeneratedKey 78m cert-manager Generated a new private key
Normal Requested 78m cert-manager Created new CertificateRequest resource "tls-rancher-ingress-3273743932"
kubectl -n cert-manager logs cert-manager-86b8b4f4b7-jvrg9
I1016 17:25:13.476038 1 sync.go:86] cert-manager/controller/issuers "msg"="Error initializing issuer: Get \"https://acme-v02.api.letsencrypt.org/directory\": dial tcp: lookup acme-v02.api.letsencrypt.org on 127.0.0.53:53: read udp 127.0.0.1:34709-\u003e127.0.0.53:53: read: connection refused" "resource_kind"="Issuer" "resource_name"="rancher" "resource_namespace"="cattle-system"
我是 kubernetes 的新手,这个日志不是很好。连接到底在哪里被拒绝?在发行人(letsencrypt)本身?我该如何解决?
编辑:主要是我在解释最后一条试图告诉我出了什么问题的日志消息时遇到了问题。 “在 127.0.0.53:53 上查找 acme-v02.api.letsencrypt.org” 读起来好像它在错误地解析该 dns 条目。如果我在主机上 ping 它,它会正确解析它。我需要为 kubernetes pods 做一些 DNS 配置才能使用主机的 dns 吗?我在这里也可能完全错了。
安装 microk8s dns 和入口插件解决了这个问题。