如何通过 Rancher CLI 控制 Rancher?
Rancher CLI
Rancher CLI(命令行界面)是一个命令行工具,可用于与 Rancher 进行交互。使用此工具,您可以用命令行而不是 GUI 来操作 Rancher,详情请参考 Rancher 命令行工具。
请确保您可以成功运行 rancher kubectl get pods
命令。
使用 kubectl 和 kubeconfig token 进行 TTL 认证
v2.4.6 可用
如果管理员有强制执行 kubeconfig tokens 上的 TTL,当你运行kubectl
时,kubeconfig 文件需要Rancher cli存在于你的 PATH 中。否则,你会看到这样的错误信息:
Unable to connect to the server: getting credentials: exec: exec: "rancher": executable file not found in \$PATH
。
该功能可以让 kubectl 与 Rancher 服务器进行身份验证,并在需要时获得新的 kubeconfig 令牌。目前支持以下认证提供者。
- 本地
- 活动目录
- FreeIpa、OpenLdap
- SAML 供应商:Ping、Okta、ADFS、Keycloak 和 Shibboleth。
当你第一次运行 kubectl 时,例如,kubectl get pods
,它会要求你选择一个 auth provider 并使用 Rancher 服务器登录。 kubeconfig 令牌被缓存在你运行 kubectl 的路径中,在./.cache/token
下。这个令牌在过期或从 Rancher 服务器删除之前都是有效的。 过期后,下一个kubectl get pods
会要求你再次用 Rancher 服务器登录。
kubectl
请先安装kubectl
,详情请参考安装 kubectl。
提示
国内用户,可以导航到 http://mirror.cnrancher.com 下载所需资源
通过 Rancher UI 访问您的集群,然后单击集群仪表盘页面右上角的Kubeconfig 文件
,配置 kubectl,把内容复制粘贴到~/.kube/config
文件内即可。
检查是否可以成功运行kubectl cluster-info
或 kubectl get pods
命令。
当你第一次运行 kubectl 时,例如,kubectl get pods
,它会要求你选择一个 auth provider 并使用 Rancher 服务器登录。 kubeconfig 令牌被缓存在你运行 kubectl 的路径中,在./.cache/token
下。这个令牌在过期,或者从 Rancher 服务器上删除之前都有效。 过期后,下一个kubectl get pods
会要求你再次登录 Rancher 服务器。
注意
从 CLI v2.4.10开始,kubeconfig 标记可以用cache-dir
标志或 env var RANCHER_CACHE_DIR
缓存在选定的路径。
已知问题
如果为 RKE 集群启用授权集群端点,以[直接与下游集群进行认证](/docs/rancher2.5/cluster-admin/cluster-access/kubectl/index),Rancher 服务器宕机,kubeconfig 令牌过期后,所有 kubectl 调用都会失败。如果 Rancher 服务器无法访问,则无法生成新的 kubeconfig 令牌。
如果从 Rancher API tokens页面中删除了 kubeconfig 令牌,而令牌仍在缓存中,那么在令牌过期或被删除之前,cli 不会要求你再次登录。
kubectl
调用将导致类似error: You must be logged in to the server (the server has asked for the client to provide credentials
。可以使用rancher token delete
删除令牌。