如果您已有 Kubernetes 应用、任务调度器或 GitOps 流程,可以通过 Kubernetes API 向 Agent 集群提交工作负载,并查询状态、日志和事件。本文先通过控制台获取连接配置,再用 kubectl 验证访问。
开始前准备
已创建 Agent 集群和节点池,目标节点已就绪。
本机已安装 kubectl,版本与集群 Kubernetes 版本兼容。
当前账号具有获取集群访问配置的权限,并获准访问业务命名空间。
运行 kubectl 的主机可以访问集群的 API Server 地址。
第一步:获取访问配置
1. 登录 Agent Runtime 控制台,选择地域并打开目标集群。
2. 在集群详情的 Kubernetes 访问配置入口获取 kubeconfig。进入容器服务控制台时,先核对关联集群 ID,再使用该集群的查看集群凭证入口。
3. 核对访问地址及访问网络。使用内网地址时,本机需通过相应内网路由连接,不能仅凭下载到 kubeconfig 就从公网访问。
4. 将配置保存到本机独立文件,例如
agc-kubeconfig。配置包含证书和身份信息,不提交到代码仓库或共享聊天中。第二步:验证连接
将路径替换为刚保存的文件路径,在终端执行:
export KUBECONFIG='/absolute/path/to/agc-kubeconfig'kubectl config get-contextskubectl config current-contextkubectl cluster-info
核对输出中的上下文和服务地址属于目标集群。配置包含多个上下文时,先选择本次要使用的上下文:
kubectl config use-context 'REPLACE_WITH_CONTEXT'kubectl config current-contextkubectl cluster-info
将
REPLACE_WITH_CONTEXT 替换为前面列出的实际名称。后续创建、修改和删除资源前,都应使用相同的配置并核对上下文。验证权限与运行环境
将命名空间替换为准备运行任务的位置:
export AGC_NAMESPACE='REPLACE_WITH_NAMESPACE'kubectl auth can-i create pods -n "$AGC_NAMESPACE"kubectl auth can-i get pods -n "$AGC_NAMESPACE"kubectl auth can-i get pods/log -n "$AGC_NAMESPACE"kubectl get runtimeclass
前三项应返回
yes。查询 RuntimeClass 需要对应的集群级读取权限;查询被拒绝时,由集群管理员提供要使用的 RuntimeClass 名称。提交工作负载前确认命名空间已经存在,镜像与节点架构匹配,目标节点支持所选 RuntimeClass。需要持久化文件时,另行准备 StorageClass、PVC 和相应权限。能连接 API Server 只代表访问成功,不代表已具备全部业务操作权限。
运行与管理工作负载
排查连接问题
现象 | 处理方式 |
连接超时 | 检查 API Server 地址、内网路由、访问控制和代理设置。 |
证书校验失败 | 核对服务地址和 kubeconfig 中的 CA、凭证有效期,重新获取正确配置,不关闭证书校验。 |
Unauthorized | 检查连接凭证是否有效,重新获取或更新凭证。 |
Forbidden | 检查当前身份在目标命名空间的权限。集群级查询被拒绝不意味着命名空间内操作也不可用。 |
API 可访问但 Pod 未运行 | 查看调度事件、RuntimeClass、镜像拉取和节点容量。 |