连接集群
- 功能名称: 连接 TKE 集群
- 主要工具:
tccli、kubectl - 文档更新时间: 2026-06-17
- Agent 友好度: ⭐⭐⭐⭐⭐
连接集群的目标是获取 TKE 集群 kubeconfig,并让本地或自动化环境中的 kubectl 能访问目标集群。完成后即可执行 Kubernetes 对象操作,例如查看节点、部署 Deployment、创建 Service 和排查 Pod。
- TKE 集群状态为
Running - 已安装
kubectl - 已安装并配置
tccli,或可从控制台下载 kubeconfig - 当前账号具备读取集群凭证的权限
- 本地网络可以访问集群 API Server
方式一: 使用 tccli 获取 kubeconfig
Section titled “方式一: 使用 tccli 获取 kubeconfig”tccli tke DescribeClusterKubeconfig \ --Region ap-guangzhou \ --ClusterId cls-xxxxxxxx将返回的 kubeconfig 内容保存到独立文件:
mkdir -p ~/.kubevim ~/.kube/tke-cls-xxxxxxxx.yaml配置环境变量:
export KUBECONFIG=~/.kube/tke-cls-xxxxxxxx.yaml验证连接:
kubectl cluster-infokubectl get nodeskubectl get ns方式二: 使用控制台下载 kubeconfig
Section titled “方式二: 使用控制台下载 kubeconfig”- 打开 TKE 控制台。
- 进入目标集群详情页。
- 复制或下载 kubeconfig。
- 保存到
~/.kube/tke-<cluster-id>.yaml。 - 设置
KUBECONFIG后使用kubectl验证。
export KUBECONFIG=~/.kube/tke-cls-xxxxxxxx.yamlkubectl get nodes管理多个集群
Section titled “管理多个集群”合并 kubeconfig
Section titled “合并 kubeconfig”export KUBECONFIG=~/.kube/config:~/.kube/tke-dev.yaml:~/.kube/tke-prod.yamlkubectl config view --flatten > ~/.kube/config.mergedmv ~/.kube/config.merged ~/.kube/configchmod 600 ~/.kube/config查看 context
Section titled “查看 context”kubectl config get-contextskubectl config current-context切换 context
Section titled “切换 context”kubectl config use-context <context-name>设置默认命名空间
Section titled “设置默认命名空间”kubectl config set-context --current --namespace=<namespace>常见检查命令
Section titled “常见检查命令”# 当前集群信息kubectl cluster-info
# 当前用户和 contextkubectl config view --minify
# API Server 健康检查kubectl get --raw='/readyz?verbose'
# 节点连通性验证kubectl get nodes -o wide
# 命名空间验证kubectl get ns| 问题 | 可能原因 | 处理方式 |
|---|---|---|
Unable to connect to the server | 网络不可达或 API Server 地址不通 | 检查公网/内网访问方式、安全组和网络连通性 |
Unauthorized | kubeconfig 用户凭证无效 | 重新获取 kubeconfig,确认账号权限 |
context not found | 当前 kubeconfig 未包含目标 context | 使用 kubectl config get-contexts 检查 |
| 操作到错误集群 | context 未切换 | 执行 kubectl config current-context 确认 |
| 默认 namespace 错误 | context namespace 配置不符合预期 | 使用 kubectl config set-context --current --namespace=... |