技术问题
#
如何重置系统管理员(admin)密码?使用单节点 Docker 安装时:
使用 Helm 的高可用安装时:
#
删除/禁用了 admin 用户,该如何修复?使用单节点 Docker 安装时:
使用 Helm 的高可用安装时:
#
如何开启 debug 调试日志?请参阅问题排查:日志级别。
#
我不能 ping 通 ClusterIPClusterIP 是一个虚拟 IP,不能够回应 ping。更好的测试 ClusterIP 是否生效,可以采用curl
命令访问其 IP 和端口。
#
在哪里管理节点模板?您可以在右上角账户菜单选择节点模版打开节点模版。
Pending
状态?#
为什么创建的 L4 负载均衡器一直处在L4 负载均衡器是通过type: LoadBalancer
创建的。在 Kubernetes 里,它需要一个公有云提供商或者类似控制器(例如:MetalLB)来响应创建需求,否则就会一直处在Pending
状态。更多信息请参阅公有云提供商或创建外部负载均衡器。
#
Rancher 的状态数据存储在哪里?- Docker 安装方式:存储在嵌入在 rancher 容器的 etcd 里,目录为
/var/lib/rancher
。 - 高可用安装(RKE):存储在 Rancher 所在的 Kubernete 集群的 etcd 中。
- 高可用安装(K3s):存储在 Rancher 使用的 MySQL 或其他数据库中。
#
如何确定受支持的 Docker 版本?我们依从上游 Kubernetes 版本的已验证的 Docker 版本。已验证的 Docker 版本可以在外部依赖中的 Kubernetes 发布 CHANGELOG.md 查看。
#
如何访问通过 Rancher 创建的节点?可以通过节点视图下载通过 Rancher 创建的节点的 SSH keys。选择您想要访问的节点并选择末尾的垂直省略号按钮,选择下载密钥即可下载。
解压下载后的 zip 文件,通过id_rsa
文件连接您的节点。请确保使用正确的用户名(RancherOS 用rancher
或 docker
,Ubuntu 用ubuntu
,Amazon Linux 用ec2-user
)
#
如何在 Rancher 里完成自动化任务?Rancher UI 包含静态文件,以及基于 API 响应工作。这意味着任何您在 UI 上执行的操作,都可以通过 API 自动化完成。一般有两种方式:
- 访问
https://your_rancher_ip/v3
并浏览 API 选项。 - 当用 UI 访问时抓取 API 请求(大多数使用的方法是 Chrome Developer Tools 当然您可以选择其他的工具。)
#
一个节点的 IP 地址改变了,该如何恢复?节点必须配置一个静态 IP(或者 DHCP 预留的 IP)。如果节点 IP 改变了,您必须从集群中移除它并再次添加。当您移除节点后,Rancher 会更新集群到正确的状态。当集群不再显示Provisioning
状态,表示节点已完全从集群中移除。
当节点 IP 改变时,Rancher 会丢失节点连接,所以无法在 Rancher 完全清理节点。请查阅清理集群节点来完全清理节点。
当节点已经从集群中移除,并完全清理后,您就可以再次添加节点到集群中。
#
如何向 Rancher 启动的 Kubernetes 组件添加 参数/绑定/环境变量?您可以通过配置文件集群选项添加附加参数/绑定/环境变量。更多信息请参阅 RKE 文档里的附加参数,附加绑定和附加环境变量以及浏览 Cluster.yml 示例文件。
#
如何检查我的证书链是有效的?使用openssl verify
命令来验证您的证书链:
注意: 将
SSL_CERT_DIR
和SSL_CERT_FILE
配置为虚拟地址,以保证验证的时候不会使用操作系统自动安装的证书。
上述命令执行后,如何您收到unable to get local issuer certificate
的错误,则证书链是不完整的。这通常意味着您的服务器证书中含有中间 CA 证书。如果您拥有该中间证书,可以采用下述的方法验证。
如何您成功地验证了证书链,您可以将中间 CA 证书包含在服务器证书中来为所有到 Rancher 的连接(如到 Rancher Agent 的连接)提供完整证书链。服务器证书文件的证书顺序应该是服务器证书(rancher.yourdomain.com.pem
的内容)自身放在第一位,随后是中间 CA 证书(intermediate.pem
内容)
如何您仍然遇到验证验证错误,您可以通过以下命令获取服务器证书的颁布者和主题:
Common Name
和 Subject Alternative Names
?#
如何查看服务器证书的尽管技术上只要一个Subject Alternative Names
条目就可以了,但是将 Hostname 作为Common Name
和 Subject Alternative Names
的条目能够使您的服务兼容更多的老版本浏览器和应用。
查看Common Name
:
查看Subject Alternative Names
:
#
为什么当一个节点故障时,一个 Pod 需要大于 5 分钟时间才能被重新调度?这是因为下列默认 Kubernetes 设置共同产生的效果:
- kubelet
node-status-update-frequency
:设置 kubelet 上报节点信息给 master 的频率。(默认 10s)
- kube-controller-manager
node-monitor-period
:NodeController 中 NodeStatus 的同步周期(默认 5s)node-monitor-grace-period
:节点被认定为不健康前,节点不作响应的总的时间。(默认 40s)pod-eviction-timeout
:优雅删除故障节点上容器的周期。(默认 5m0s)
获取更多信息请参阅 Kubernetes:kubelet 和 Kubernetes: kube-controller-manager。
在 Kubernetes v1.13 版本中,TaintBasedEvictions
特性是默认开启的。请查阅 Kubernetes: Taint based Evictions 获取更多信息。
- kube-apiserver (Kubernetes v1.13 版本及以后)
default-not-ready-toleration-seconds
: 表示 notReady:NoExecute 容忍的容忍时间。notReady:NoExecute 被默认添加到没有该容忍的所有 Pod。default-unreachable-toleration-seconds
: 表示 unreachable:NoExecute 容忍的容忍时间。unreachable:NoExecute 被默认添加到没有该容忍的所有 Pod。
#
我可以在 UI 里使用键盘快捷键吗?可以。大部分 UI 可以通过键盘快捷键访问。可在 UI 任意地方中按?
查看所有可用的快捷键。
Unknown schema for type:
错误后面跟着类似 catalog.cattle.io.operation
的内容是什么意思?#
当试图修改 App 时,当 Kubernetes 无法找到所提到的 CRD 时,就会出现这种错误。 绝大多数情况下,这些都是 RBAC 权限丢失的结果。 试着用一个管理员用户,如果成功了,请为错误中提到的资源添加权限(即Get
,List
,Patch
)。
#
将 kubeconfig 文件复制到本地,kubectl 无法使用Rancher 2.4.x 版本使用 kubectl 连接 kubernetes 集群出现以下错误:
这是因为 2.4.x 调整了证书注册的逻辑,将首次启动 rancher 设置的server-url
添加到证书当中,如果想通过其他域名或 IP 连接 rancher,将会失败。
解决办法:
#
为什么命名空间无法移动到其他项目在项目/命名空间页面移动命名空间,有时会出现无法移动的情况,这是因为 rancher 针对移动命名空间做了一些限制:
- Rancher 不支持将命名空间移动到已经配置了资源配额的项目中。
日志提示:
- 如果把命名空间从一个已经配置了配额的项目中,移动到一个没有配置配额的项目中,这个命名空间的配额将会被移除。
- Rancher 不支持移动从应用商店启动应用时创建的命名空间,选择该命名空间,
移动
按钮将变为灰色。