curl 测试 k8s api

更新时间:2025年3月18日 13:48 浏览:641

本机 curl 直接使用 k8s 里的证书调用 k8s api

curl -k \
  --cert /etc/kubernetes/pki/apiserver-kubelet-client.crt \
  --key /etc/kubernetes/pki/apiserver-kubelet-client.key \
  --cacert /etc/kubernetes/pki/ca.crt \
  https://localhost:6443/api/v1/pods?limit=1

 

也可将先建一个 sh 文件

例如文件名:curl-k8s-api.sh

curl -k \
  --cert /etc/kubernetes/pki/apiserver-kubelet-client.crt \
  --key /etc/kubernetes/pki/apiserver-kubelet-client.key \
  --cacert /etc/kubernetes/pki/ca.crt \
  $@

然后通过 该 sh 文件调用 k8s api

./curl-k8s-api.sh https://localhost:6443/api/v1/pods?limit=1

 

通过 ~/.kube/config 文件调用 k8s api

# 设置kubeconfig文件路径
KUBECONFIG=~/.kube/config
 
# 从kubeconfig中提取API服务器地址
APISERVER=$(grep -oP '(?<=server: https://)[^"]+' $KUBECONFIG)
 
# 从kubeconfig中提取认证令牌
TOKEN='kubernetes-admin@kubernetes'
 
# 从kubeconfig中提取认证方法
CERT=$(grep -oP '(?<=client-certificate-data: ).+' $KUBECONFIG | base64 --decode)
KEY=$(grep -oP '(?<=client-key-data: ).+' $KUBECONFIG | base64 --decode)
 
# 使用curl命令访问Kubernetes API
curl --cacert /etc/kubernetes/pki/ca.crt -H "Authorization: Bearer $TOKEN" https://$APISERVER

 

导航