Kubernetes api介绍
·
在本地通过 Docker 启动 Kubernetes(K8s)集群后(比如使用 Kind、Minikube 或 k3d 等工具),可以通过 Kubernetes 的 REST API 查询集群的各种资源和参数。
一、Kubernetes API 基础
Kubernetes 提供了完整的 RESTful API,用于管理集群中的所有资源(Pods、Deployments、Services、Nodes 等)。
- 默认 API 地址:
https://<master-ip>:6443 - API 文档路径(OpenAPI):
/openapi/v2 - 核心 API 路径:
/api/v1(核心资源如 Pod、Service) - 扩展 API 路径:
/apis/apps/v1(如 Deployment)、/apis/batch/v1(Job)等
二、认证方式(是否有密码?)
Kubernetes 不使用传统用户名/密码,而是通过以下方式认证:
1. kubeconfig 文件(推荐)
当你使用 Minikube / Kind / k3d 启动本地集群时,会自动生成 ~/.kube/config 文件,其中包含:
- 集群地址(server)
- 客户端证书(client-certificate-data)
- 客户端私钥(client-key-data)
- 或者 token(如果是 Bearer Token 认证)
✅ 这个文件就是你访问 API 的“凭证”,相当于“密码”。
2. ServiceAccount Token(适用于 Pod 内部调用)
如果你在 Pod 中调用 API,K8s 会自动挂载一个 ServiceAccount Token 到 /var/run/secrets/kubernetes.io/serviceaccount/token。
三、如何通过 API 查询集群信息(实操示例)
方法 1:使用 kubectl proxy(最简单,无需处理证书)
# 启动本地代理(默认监听 8001 端口)
kubectl proxy --port=8001
然后通过 http://localhost:8001 访问 API,无需认证(proxy 会自动处理):
# 获取所有命名空间
curl http://localhost:8001/api/v1/namespaces
# 获取 default 命名空间下的所有 Pods
curl http://localhost:8001/api/v1/namespaces/default/pods
# 获取所有 Deployments
curl http://localhost:8001/apis/apps/v1/deployments
# 获取节点信息
curl http://localhost:8001/api/v
更多推荐




所有评论(0)