curl不通 k8s_curl 访问k8s api
下载jqchmod +x jqmv jq /usr/bin/启用非安全端口kubectl proxy --port=8080查看默认namespace pod列表curl localhost:8080/api/v1/namespaces/default/pods/ | jq -r '.items[].metadata.name'HTTPS访问创建一个namespacekubectl create
下载jq
chmod +x jq
mv jq /usr/bin/
启用非安全端口
kubectl proxy --port=8080
查看默认namespace pod列表
curl localhost:8080/api/v1/namespaces/default/pods/ | jq -r '.items[].metadata.name'
HTTPS访问
创建一个namespace
kubectl create ns test
创建role
kubectl create role pods-reader --verb=get,list,watch --resource=pods --namespace=test
创建rolebinding
kind: RoleBinding
apiVersion: rbac.authorization.k8s.io/v1beta1
metadata:
name: default-role-binding
namespace: test
subjects:
- kind: ServiceAccount
name: default
roleRef:
kind: Role
name: pod-reader
apiGroup: rbac.authorization.k8s.io
创建一个带有curl的测试pod
apiVersion: apps/v1
kind: Deployment
metadata:
name: centos
namespace: test
spec:
replicas: 1
selector:
matchLabels:
name: centos
template:
metadata:
labels:
name: centos
spec:
nodeName: master
containers:
- image: centos:7
imagePullPolicy: Never
name: centos
command:
- /bin/sh
- -c
- tail -f /dev/null
结果测试:
curl --cacert /var/run/secrets/kubernetes.io/serviceaccount/ca.crt --header "Authorization: Bearer $(cat /var/run/secrets/kubernetes.io/serviceaccount/token)" https://$KUBERNETES_SERVICE_HOST:$KUBERNETES_SERVICE_PORT/api/v1/namespaces/$(cat /var/run/secrets/kubernetes.io/serviceaccount/namespace)/pods
或者
TOKEN=$(cat /var/run/secrets/kubernetes.io/serviceaccount/token)
curl --cacert /var/run/secrets/kubernetes.io/serviceaccount/ca.crt -H "Authorization: Bearer $TOKEN" -s https://$KUBERNETES_SERVICE_HOST:$KUBERNETES_SERVICE_PORT/api/v1/namespaces/default/pods/
使用已有的token访问
TOKEN=$(kubectl describe secrets $(kubectl get secrets -n kube-system |grep admin |cut -f1 -d ' ') -n kube-system |grep -E '^token' |cut -f2 -d':'|tr -d '\t'|tr -d ' ')
APISERVER=$(kubectl config view |grep server|cut -f 2- -d ":" | tr -d " ")
访问kube-system下pod
curl -H "Authorization: Bearer $TOKEN" $APISERVER/api/v1/namespaces/default/pods/ --insecure | jq -r '.items[].metadata.name'
标签:kubectl,name,--,secrets,api,io,curl,k8s
来源: https://www.cnblogs.com/zphqq/p/12968646.html
更多推荐
所有评论(0)