本文介绍如何在腾讯云容器服务集群中使用 Kubernetes API 进行相关操作。例如,查看集群下所有 namespaces、查看指定 namespaces 下所有 Pods 及 Pod 的增加、删除、查询操作。
ps -ef |grep kubelet|grep -v grep
返回结果如下图所示,访问凭证位置为:/etc/kubernetes/kubelet-kubeconfig
。cd /etc/kubernetes
cat ./kubelet-kubeconfig |grep client-certificate-data | awk -F ' ' '{print $2}' |base64 -d > client-cert.pem
cat ./kubelet-kubeconfig |grep client-key-data | awk -F ' ' '{print $2}' |base64 -d > client-key.pem
APISERVER=`cat ./kubelet-kubeconfig |grep server | awk -F ' ' '{print $2}'`
执行命令 ls
,可查看在 kubernetes 目录下已生成的 client-cert.pem
、client-key.pem
文件。如下图所示:curl --cert client-cert.pem --key client-key.pem -k $APISERVER/api/v1/namespaces
说明:
若在执行
curl
命令时,出现权限不足的报错,则请参考 放通集群访问权限 步骤进行解决。
curl --cert client-cert.pem --key client-key.pem -k $APISERVER/api/v1/namespaces/kube-system/pods
说明:
以下步骤中所创建的文件及文件内容均为示例,您可根据实际需要进行自定义创建。
vim nginx-pod.json
{
"apiVersion":"v1",
"kind":"Pod",
"metadata":{
"name":"nginx",
"namespace": "default"
},
"spec":{
"containers":[
{
"name":"nginx-test",
"image":"nginx",
"ports":[
{
"containerPort": 80
}
]
}
]
}
}
curl --cert client-cert.pem --key client-key.pem -k $APISERVER/api/v1/namespaces/default/pods -X POST --header 'content-type: application/json' -d@nginx-pod.json
vim nginx-pod.json
apiVersion: v1
kind: Pod
metadata:
name: nginx
namespace: default
spec:
containers:
- name: nginx-test
image: nginx
ports:
- containerPort: 80
curl --cert client-cert.pem --key client-key.pem -k $APISERVER/api/v1/namespaces/default/pods -X POST --header 'content-type: application/yaml' --data-binary @nginx-pod.yaml
您可执行以下命令,查询 Pod 状态。
curl --cert client-cert.pem --key client-key.pem -k $APISERVER/api/v1/namespaces/default/pods/nginx
您可执行以下命令,查询 Pod logs。
curl --cert client-cert.pem --key client-key.pem -k $APISERVER/api/v1/namespaces/default/pods/nginx/log
您可执行以下命令,通过 metric-server api 查询 Pod 的 metrics 数据。
curl --cert client-cert.pem --key client-key.pem -k $APISERVER/apis/metrics.k8s.io/v1beta1/namespaces/default/pods/nginx
您可执行以下命令,删除 Pod。
curl --cert client-cert.pem --key client-key.pem -k $APISERVER/api/v1/namespaces/default/pods/nginx -X DELETE
若在执行 curl
命令时,出现如下所示错误,则说明需放通集群的 访问权限。
您可通过以下两种方式进行授权操作:
本页内容是否解决了您的问题?