|
本文档采用自动化机器翻译技术翻译。 尽管我们力求提供准确的译文,但不对翻译内容的完整性、准确性或可靠性作出任何保证。 若出现任何内容不一致情况,请以原始 英文 版本为准,且原始英文版本为权威文本。 |
技术常见问题解答
我如何重置管理员密码?
Docker 安装:
$ docker exec -ti <container_id> reset-password New password for default administrator (user-xxxxx): <new_password>
Kubernetes 安装(Helm):
$ KUBECONFIG=./kube_config_cluster.yml
$ kubectl --kubeconfig $KUBECONFIG -n cattle-system exec $(kubectl --kubeconfig $KUBECONFIG -n cattle-system get pods -l app=rancher --no-headers | head -1 | awk '{ print $1 }') -c rancher -- reset-password
New password for default administrator (user-xxxxx):
<new_password>
Kubernetes 安装(Helm - 适用于 Rancher Prime v2.13.1):
$ KUBECONFIG=./kube_config_cluster.yml
$ kubectl --kubeconfig $KUBECONFIG -n cattle-system exec $(kubectl --kubeconfig $KUBECONFIG -n cattle-system get pods -l app=rancher-prime --no-headers | head -1 | awk '{ print $1 }') -c rancher-prime -- reset-password
New password for default administrator (user-xxxxx):
<new_password>
我删除/停用了最后一个管理员,如何修复?
Docker 安装:
$ docker exec -ti <container_id> ensure-default-admin New default administrator (user-xxxxx) New password for default administrator (user-xxxxx): <new_password>
Kubernetes 安装(Helm):
$ KUBECONFIG=./kube_config_cluster.yml
$ kubectl --kubeconfig $KUBECONFIG -n cattle-system exec $(kubectl --kubeconfig $KUBECONFIG -n cattle-system get pods -l app=rancher | grep '1/1' | head -1 | awk '{ print $1 }') -- ensure-default-admin
New password for default administrator (user-xxxxx):
<new_password>
Kubernetes 安装(Helm - 适用于 Rancher Prime v2.13.1):
$ KUBECONFIG=./kube_config_cluster.yml
$ kubectl --kubeconfig $KUBECONFIG -n cattle-system exec $(kubectl --kubeconfig $KUBECONFIG -n cattle-system get pods -l app=rancher-prime | grep '1/1' | head -1 | awk '{ print $1 }') -- ensure-default-admin
New password for default administrator (user-xxxxx):
<new_password>
如何启用调试日志记录?
参见 故障排除:日志
我的 ClusterIP 对 ping 没有响应
ClusterIP 是一个虚拟 IP,不会对 ping 响应。测试 ClusterIP 是否配置正确的最佳方法是使用 curl 访问该 IP 和端口,查看是否有响应。
Rancher 的状态存储在哪里?
-
Docker 安装:在
rancher/rancher容器的嵌入式 etcd 中,位于/var/lib/rancher。 -
Kubernetes 安装:默认位置在创建以运行 Rancher 的相应 RKE2/K3s 集群的
/var/lib/rancher/rke2或/var/lib/rancher/k3s目录中。
如何确定支持的 Docker 版本?
我们采用上游 Kubernetes 发布中经过验证的 Docker 版本。验证的版本可以在 Kubernetes 发布的 CHANGELOG.md 中的 外部依赖 下找到。
我如何访问由 Rancher 创建的节点?
可以通过 节点 视图下载访问由 Rancher 创建的节点的 SSH 密钥。选择您想要访问的节点,点击行末的垂直 ⋮ 按钮,然后选择 下载密钥,如下图所示。
解压下载的 zip 文件,并使用文件 id_rsa 连接到您的主机。确保使用正确的用户名(rancher 或 docker 用于 RancherOS,ubuntu 用于 Ubuntu,ec2-user 用于 Amazon Linux)
$ ssh -i id_rsa user@ip_of_node
我如何在 Rancher 中自动化任务 X?
用户界面由静态文件组成,并基于 API 的响应工作。这意味着您可以在用户界面中执行的每个操作/任务,都可以通过 API 自动化。有两种方式可以实现此操作:
-
访问
https://your_rancher_ip/v3并浏览 API 选项。 -
在使用用户界面时捕获 API 调用(最常用的是 Chrome 开发者工具,但您可以使用任何您喜欢的工具)
节点的 IP 地址发生变化,我该如何恢复?
节点需要配置静态 IP(或通过 DHCP 保留的 IP)。如果节点的 IP 已更改,您需要将其从集群中移除并重新添加。移除后,Rancher 将更新集群到正确的状态。如果集群不再处于 Provisioning 状态,节点将从集群中移除。
当节点的 IP 地址发生变化时,Rancher 失去了与该节点的连接,因此无法正确清理该节点。请参见清理集群节点以清理该节点。
当节点从集群中移除并且节点被清理后,您可以将该节点重新添加到集群中。
我如何检查我的证书链是否有效?
使用 openssl verify 命令来验证您的证书链:
|
将 |
SSL_CERT_DIR=/dummy SSL_CERT_FILE=/dummy openssl verify -CAfile ca.pem rancher.yourdomain.com.pem rancher.yourdomain.com.pem: OK
如果您收到错误 unable to get local issuer certificate,则链不完整。这通常意味着有一个中间CA证书颁发了您的服务器证书。如果您已经拥有此证书,可以像下面所示那样在证书验证中使用它:
SSL_CERT_DIR=/dummy SSL_CERT_FILE=/dummy openssl verify -CAfile ca.pem -untrusted intermediate.pem rancher.yourdomain.com.pem rancher.yourdomain.com.pem: OK
如果您成功验证了您的证书链,则应在服务器证书中包含所需的中间 CA 证书,以完成与 Rancher 的任何连接的证书链(例如,通过 Rancher 代理)。服务器证书文件中证书的顺序应首先是服务器证书本身(`rancher.yourdomain.com.pem`的内容),然后是中间 CA 证书(`intermediate.pem`的内容)。
-----BEGIN CERTIFICATE----- %YOUR_CERTIFICATE% -----END CERTIFICATE----- -----BEGIN CERTIFICATE----- %YOUR_INTERMEDIATE_CERTIFICATE% -----END CERTIFICATE-----
如果在验证过程中仍然出现错误,您可以使用以下命令检索服务器证书的主题和颁发者:
openssl x509 -noout -subject -issuer -in rancher.yourdomain.com.pem subject= /C=GB/ST=England/O=Alice Ltd/CN=rancher.yourdomain.com issuer= /C=GB/ST=England/O=Alice Ltd/CN=Alice Intermediate CA
我如何检查我的服务器证书中的`Common Name`和`Subject Alternative Names`?
尽管在技术上需要在`Subject Alternative Names`中有一个条目,但在`Common Name`和`Subject Alternative Names`中都有主机名可以与旧版浏览器/应用程序实现最大兼容性。
检查`Common Name`:
openssl x509 -noout -subject -in cert.pem subject= /CN=rancher.my.org
检查`Subject Alternative Names`:
openssl x509 -noout -in cert.pem -text | grep DNS
DNS:rancher.my.org
当节点失败时,为什么需要超过5分钟才能重新调度一个pod?
这由于以下默认Kubernetes设置的组合:
-
kubelet
-
node-status-update-frequency:指定kubelet向主节点发布节点状态的频率(默认10秒)
-
-
kube-controller-manager
-
node-monitor-period:在 NodeController 中同步 NodeStatus 的时间(默认 5 秒) -
node-monitor-grace-period:我们允许运行的节点在标记为不健康之前无响应的时间(默认 40 秒) -
pod-eviction-timeout:在失败节点上删除 pods 的宽限期(默认 5 分钟 0 秒)
-
有关这些设置的更多信息,请参见 Kubernetes: kubelet 和 Kubernetes: kube-controller-manager。
在 Kubernetes v1.13 中,TaintBasedEvictions 功能默认启用。有关更多信息,请参见 Kubernetes: 基于污点的驱逐。
-
kube-apiserver(Kubernetes v1.13 及以上)
-
default-not-ready-toleration-seconds:指示默认添加到每个没有此类容忍的 pod 的 notReady:NoExecute 的容忍时间。 -
default-unreachable-toleration-seconds:指示默认添加到每个没有此类容忍的 pod 的 unreachable:NoExecute 的容忍时间。
-