Ubuntu 上使用 Kubernetes API 的实用指南
一 准备与获取 API 入口
kubectl cluster-info,输出类似:Kubernetes control plane is running at https://kubectl config view -o jsonpath='{.clusters[0].cluster.server}'。kubectl api-versions;查看资源清单:kubectl api-resources。kubectl get --raw /openapi/v2 > openapi.json(用于了解接口与模型)。二 直接用 curl 调用 API
APISERVER=$(kubectl config view -o jsonpath='{.clusters[0].cluster.server}')curl -k $APISERVER/version(忽略证书校验,仅测试连通;生产不建议)curl --cacert ca.crt --cert client.crt --key client.key $APISERVER/versionTOKEN=$(cat /var/run/secrets/kubernetes.io/serviceaccount/token)NS=$(cat /var/run/secrets/kubernetes.io/serviceaccount/namespace)curl -H "Authorization: Bearer $TOKEN" https://kubernetes.default.svc:$KUBERNETES_SERVICE_PORT/versionkubectl proxy --port=8080curl http://localhost:8080/api/v1/nodeskubectl get --raw 直接发起原始请求,便于对照调试:
kubectl get --raw /api/v1/nodeskubectl get --raw /apis/apps/v1/deployments -n default三 在 Ubuntu 中用 Python 调用 API
pip install kubernetesfrom kubernetes import client, config
config.load_kube_config(config_file="/path/to/kubeconfig.yaml") # 或省略参数使用默认 ~/.kube/config
v1 = client.CoreV1Api()
print("Nodes:")
for n in v1.list_node().items:
print(n.metadata.name, n.status.node_info.kubelet_version)
四 常见认证方式与排错要点
Authorization: Bearer <token>。--cert 与 --key 指定证书和私钥,配合 --cacert 校验证书链。--cacert 指定集群 CA,或在测试环境用 -k 忽略校验(不推荐生产)。kubectl api-versions 与 kubectl api-resources 确认。kubectl proxy 或检查网络策略/防火墙。