有关如何使用 kubectl 的更多信息,请参阅Kubernetes 文档:kubectl 概述.

您可以通过登录 Rancher 并在 UI 中打开 kubectl Shell 来访问和管理集群。无需进一步配置。

  1. 单击 启动 kubectl,使用打开的窗口与 Kubernetes 集群进行交互。

本节介绍如何下载集群的 kubeconfig 文件,从您的虚拟机上启动 kubectl,并访问下游集群。

这种访问集群的替代方法允许您使用 Rancher 进行身份验证,并在不使用 Rancher UI 的情况下管理集群。

  1. 登录 Rancher. 从 全局 视图中,打开您希望使用 kubectl 访问的集群。

  2. 单击 Kubeconfig 文件.

  3. 将内容粘贴到本地计算机上的新文件中。将文件移动到 。注意:kubectl 用于 kubeconfig 文件存放的默认位置是 ~/.kube/config, 但是您可以使用任何目录,并使用 --kubeconfig 标记来指定它,如以下命令所示:

Rancher 将发现和显示由 kubectl 创建的资源。但是,这些资源可能没有关于发现的所有必要注释。如果使用 Rancher UI 或 API 对资源执行操作(例如,扩展工作负载),这可能会由于缺少注释而触发对资源的重新创建。只有在对发现的资源执行操作时才会发生这种情况。

本节的目的是帮助您设置另一种方法来访问。

此方法仅对启用了已授权的集群端点 的 RKE 集群可用,当 Rancher 创建这个 RKE 集群时,它会生成一个 kubeconfig 文件,其中包含用于访问您的集群的其他 kubectl 上下文。这个额外的上下文允许您使用 kubectl 与下游集群进行身份验证,而无需通过 Rancher 进行身份验证。有关授权的集群端点如何工作的详细说明,请参阅。

我们建议,作为一种最佳实践,您应该设置此方法来访问您的 RKE 集群,以便万一无法连接到 Rancher 时,您仍然可以访问集群。

先决条件: 下面的步骤假设您已经创建了一个 Kubernetes 集群,并按照以下步骤从您的虚拟机上用 kubectl 连接到您的集群

要在下载的 kubeconfig 文件中找到上下文的名称,请运行:

  1. kubectl config get-contexts --kubeconfig /custom/path/kube.config
  2. CURRENT NAME CLUSTER AUTHINFO NAMESPACE
  3. my-cluster-controlplane-1 my-cluster-controlplane-1 user-46tmn

在本例中,当您将 kubectl 与第一个上下文 my-cluster 一起使用时,将通过 Rancher Server 对您进行身份验证。

我们建议使用具有经过授权的集群端点的负载均衡器。有关详细信息,请参阅。

现在您已经有了直接使用集群进行身份验证所需的上下文的名称,您可以在运行 kubectl 命令时将上下文的名称作为一个选项传递进来。这些命令将根据您的集群是否定义了 FQDN 而有所不同。下面几节提供了示例。

kubectl 正常工作时,它确认您可以绕过 Rancher 的身份验证代理访问您的集群。

如果为集群定义了 FQDN,则将创建引用 FQDN 的单个上下文。上下文将被命名为 。当您想使用 kubectl 来访问这个集群而不需要 Rancher 时,您将需要使用这个上下文。

假设 kubeconfig 文件位于 ~/.kube/config

直接引用 kubeconfig 文件的位置:

  1. kubectl --kubeconfig /custom/path/kube.config --context <CLUSTER_NAME>-fqdn get pods

如果没有为集群定义 FQDN,则会创建引用控制平面中每个节点的 IP 地址的额外上下文。每个上下文将被命名为 <CLUSTER_NAME>-<NODE_NAME>。当您想使用 kubectl 来访问这个集群而不需要 Rancher 时,您将需要使用这个上下文。

假设 kubeconfig 文件位于 :

直接引用 kubeconfig 文件的位置: