如何通过 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 令牌。目前支持以下认证提供者。

  1. 本地
  2. 活动目录
  3. FreeIpa、OpenLdap
  4. 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-infokubectl 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缓存在选定的路径。

已知问题

  1. 如果为 RKE 集群启用授权集群端点,以[直接与下游集群进行认证](/docs/rancher2.5/cluster-admin/cluster-access/kubectl/index),Rancher 服务器宕机,kubeconfig 令牌过期后,所有 kubectl 调用都会失败。如果 Rancher 服务器无法访问,则无法生成新的 kubeconfig 令牌。

  2. 如果从 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删除令牌。