本文档采用自动化机器翻译技术翻译。 尽管我们力求提供准确的译文,但不对翻译内容的完整性、准确性或可靠性作出任何保证。 若出现任何内容不一致情况,请以原始 英文 版本为准,且原始英文版本为权威文本。

授权集群端点的工作原理

本节描述了kubectl CLI、kubeconfig文件和授权集群端点如何协同工作,以便您可以直接访问下游Kubernetes集群,而无需通过Rancher服务器进行身份验证。此内容旨在为如何设置kubectl以直接访问集群的说明提供背景信息和上下文。

关于Kubeconfig文件

kubeconfig文件用于配置与kubectl命令行工具(或其他客户端)一起使用时对Kubernetes的访问。

kubeconfig文件及其内容是特定于每个集群的。它可以从Rancher中的*Clusters*页面下载:

  1. 点击左上角的

  2. 选择*集群管理*。

  3. 找到您想要下载kubeconfig的集群,并在该行末尾选择*⁝*。

  4. 从子菜单中选择*下载KubeConfig*。

您需要为在Rancher中访问的每个集群准备一个单独的kubeconfig文件。

下载kubeconfig文件后,您可以使用该文件及其Kubernetes contexts来访问您的下游集群。

如果管理员已关闭kubeconfig词元生成,则kubeconfig文件要求Rancher CLI在您的路径中存在。

关于kube-api-auth身份验证Webhook

`kube-api-auth`微服务被部署以提供授权集群端点的用户身份验证功能。当您使用`kubectl`访问用户集群时,集群的Kubernetes API服务器通过将`kube-api-auth`服务作为Webhook进行身份验证。

在集群配置期间,文件`/etc/kubernetes/kube-api-authn-webhook.yaml`被部署,并且`kube-apiserver`与`--authentication-token-webhook-config-file=/etc/kubernetes/kube-api-authn-webhook.yaml`一起配置。这将配置`kube-apiserver`以查询`http://127.0.0.1:6440/v1/authenticate`以确定承载词元的身份验证。

`kube-api-auth`的调度规则如下所示:

组件 nodeAffinity nodeSelectorTerms nodeSelector 容忍

kube-api-auth

beta.kubernetes.io/os:NotIn:windows node-role.kubernetes.io/controlplane:In:"true"

none

operator:Exists