- -
rancher
deployment 和 pods。 ingress-nginx
- Ingress controller pods 和 services。kube-system
-tiller
和cert-manager
pods。
多数情况下,这是由于 ssl 配置错误所致。
请检查以下三项参数是否有误:
使用kubectl
检查cattle-system
系统命名空间,并查看 Rancher 容器是否处于 Running 状态。
如果状态不是Running
,则需要在容器上运行describe
并检查事件。
kubectl -n cattle-system describe pod
Events:
Type Reason Age From Message
---- ------ ---- ---- -------
Normal Scheduled 11m default-scheduler Successfully assigned rancher-784d94f59b-vgqzh to localhost
Normal SuccessfulMountVolume 11m kubelet, localhost MountVolume.SetUp succeeded for volume "rancher-token-dj4mt"
Normal Pulled 11m kubelet, localhost Successfully pulled image "rancher/rancher:v2.0.4"
Normal Created 11m kubelet, localhost Created container
Normal Started 11m kubelet, localhost Started container
使用kubectl
查看 pods 列表
kubectl -n cattle-system get pods
NAME READY STATUS RESTARTS AGE
pod/rancher-784d94f59b-vgqzh 1/1 Running 0 10m
使用浏览器检查证书详细信息。如果 Common Name 是Kubernetes Ingress Controller Fake Certificate
,则说明读取或颁发 SSL 证书时可能出了点问题。
Rancher 生成的或是通过 LetsEncrypt 生成的
cert-manager
有 3 部分。
kube-system
命名空间中的cert-manager
pod。cattle-system
命名空间中的Issuer
对象。
对每个对象执行并检查事件。您可以追踪可能缺少的东西。
kubectl -n cattle-system describe certificate
...
Events:
Type Reason Age From Message
---- ------ ---- ---- -------
Warning IssuerNotReady 18s (x23 over 19m) cert-manager Issuer rancher not ready
kubectl -n cattle-system describe issuer
...
Events:
Type Reason Age From Message
---- ------ ---- ---- -------
Warning ErrInitIssuer 19m (x12 over 19m) cert-manager Error initializing issuer: secret "tls-rancher" not found
Warning ErrGetKeyPair 9m (x16 over 19m) cert-manager Error getting keypair for CA issuer: secret "tls-rancher" not found
您的证书将直接应用于cattle-system
命名空间中的 Ingress 对象。
检查 Ingress 对象的状态,并查看其是否准备就绪。
如果其就绪并且 SSL 仍无法正常工作,则您的证书或密码可能格式错误。
检查 nginx-ingress-controller 日志。由于 nginx-ingress-controller 的容器中有多个容器,因此您需要指定容器的名称。
kubectl -n ingress-nginx logs -f nginx-ingress-controller-rfjrq nginx-ingress-controller
...
您选择的要求在安装 Rancher 之前先安装cert-manager ,否则将显示以下错误: