当你的 vSphere 管理集群(vSphere Supervisor)配置了 VCF 自动化后,登录方式会和普通情况不一样 ------ 需要通过身份验证系统跳转,还得用命令行工具(VCF CLI)操作。不管你是普通用户想管理自己的资源,还是管理员要排查故障,这篇教程都能帮你搞懂:什么是必要前提、分步骤该怎么做、不同场景下选哪种方法,全程无复杂术语,跟着操作就能成功登录。
一、先搞懂 3 个关键概念(小白也能懂)
在开始操作前,先明确几个核心名词,避免越看越懵:
- VCF CLI:VCF 的命令行工具,就像电脑上的 "命令提示符",输入指定指令就能完成登录、配置等操作;
- vSphere Supervisor:可以理解为 vSphere 的 "管理核心集群",所有资源(比如虚拟机、容器)都靠它调度;
- VCFA API 令牌:相当于登录 "钥匙",普通用户必须有这个令牌,才能通过 CLI 连接资源;
- SSO 登录:单点登录,简单说就是一次登录能访问多个相关系统,不用反复输账号密码。

二、普通用户登录:适合日常管理自己的资源
如果你是普通用户,只是想访问或管理自己的资源(比如查看容器、调整配置),可以按这个流程来,核心是用 VCFA API 令牌登录:
1. 准备工作
先获取两个关键信息:
- 你的组织门户名称(比如原文中的 "legal",这是公司或团队分配给你的专属门户);
- VCFA 端点(相当于登录服务器的地址,比如原文的 "auto01.vcf.lab");
- 提前创建好 VCFA API 令牌(向管理员申请,或在组织门户的 "API 设置" 中生成)。
2. 具体操作步骤
打开电脑的命令行工具(Windows 用 "命令提示符",Mac/Linux 用 "终端"),输入以下指令:
vcf context create legal --endpoint auto01.vcf.lab --api-token $VCF_CLI_VCFA_API_TOKEN --insecure-skip-tls-verify --type cci --tenant-name legal
3. 指令参数通俗解释
- legal:你的组织门户名称,替换成自己的即可;
- --endpoint auto01.vcf.lab:指定登录的服务器地址,照搬管理员给的地址;
- --api-token $VCF_CLI_VCFA_API_TOKEN:填入你的 "登录钥匙"(API 令牌),把变量换成实际令牌字符串;
- --insecure-skip-tls-verify:跳过安全证书验证(测试环境常用,避免因证书问题登录失败);
- --type cci:登录类型,固定填 "cci" 即可;
- --tenant-name legal:再次确认组织门户名称,和前面的 "legal" 保持一致。
输入完成后按回车,只要信息没错,就能成功创建登录上下文,之后用 kubectl 工具(容器管理工具)就能操作自己的资源了。

三、管理员登录:适合排查故障、管理底层基础设施
如果你是管理员,需要管理整个 VCF 基础设施(比如处理集群故障、调整全局配置),不能用普通用户的方法,得用 vCenter 的 SSO 账号登录,步骤更简单:
1. 准备工作
- 获取 vSphere Supervisor 的控制平面地址(比如原文的 "sv01.vcf.lab",管理员可在 vCenter 控制台查看);
- 准备 vCenter SSO 账号(比如 "administrator@vsphere.local",这是管理员专属账号);
- (可选)设置环境变量存储密码:为了避免每次登录都输密码,可以提前在命令行输入export KUBECTL_VSPHERE_PASSWORD=你的密码,之后 CLI 会自动读取。
2. 具体操作步骤
在命令行输入以下指令:
vcf context create sv01 --endpoint=sv01.vcf.lab --username administrator@vsphere.local --insecure-skip-tls-verify --auth-type basic
3. 关键说明
- sv01:登录上下文名称,可自定义(比如用集群名称,方便区分);
- --auth-type basic:指定用 "基础认证",也就是账号密码登录;
- 输入指令后,按提示输入密码(如果没设置环境变量),回车后就能登录,直接访问 vSphere Supervisor 集群进行管理操作。

四、特殊场景:已配置 VCF SSO 的登录方法
如果你的环境开启了 VCF 单点登录(VCF SSO),登录时需要多一步 "授权操作"------ 否则就算创建了登录上下文,也没有操作权限,具体步骤如下:
1. 额外授权步骤(仅需做一次)
这一步是给 VCF SSO 用户组分配权限,需要先登录 vCenter 服务器:
① 用 SSH 工具连接到 vCenter 服务器(VCSA),输入管理员账号密码;
② 运行指令 /usr/lib/vmware-wcp/decryptK8Pwd.py,会生成 vSphere Supervisor 控制平面虚拟机的 root 密码;
③ 用生成的密码,SSH 连接到控制平面虚拟机的 IP 地址;
④ 创建一个授权配置文件(比如叫 "vcf-admins-rb.yaml"),复制以下内容(把 "vcf-admins@vcf.lab" 换成你的 VCF SSO 用户组):
apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRoleBinding
metadata:
name: vcfa-admin-rolebinding
subjects:
- kind: Group
name: vcf-admins@vcf.lab
apiGroup: ""
roleRef:
kind: ClusterRole
name: cluster-admin
apiGroup: ""
⑤ 在命令行输入 kubectl apply -f vcf-admins-rb.yaml,执行授权配置。
2. 正式登录步骤
授权完成后,输入以下登录指令:
vcf context create sv01 --endpoint=sv01.vcf.lab --username 你的VCFSSO账号 --insecure-skip-tls-verify --type k8s
执行后会自动打开浏览器,跳转到 VCFA 登录页面;
输入组织名称 "SYSTEM",再跳转到你的身份验证系统(比如公司的统一登录页面),输入账号密码;
如果之前登录过,会自动跳转回命令行,提示登录成功,之后就能正常操作集群了。
五、常见注意事项
- 所有指令中的地址(比如 "auto01.vcf.lab")、账号、名称,都要替换成你自己环境的实际信息,不能直接照搬示例;
- --insecure-skip-tls-verify 仅适合测试环境,生产环境建议配置合法安全证书,避免跳过验证带来风险;
- 忘记密码时,普通用户可重新生成 VCFA API 令牌,管理员可通过 vCenter 控制台重置 SSO 密码;
- 如果登录后提示 "无权限",先检查是否属于正确的用户组,或授权配置是否执行成功。