访问Kubernetes集群API

直接访问的方式:

集群外部:

1.使用kubectl proxy

# kubectl proxy --port=8080


2.使用curl http方式访问

# curl http://localhost:8080/api/


3.使用curl https方式访问,认证方式为token

$ APISERVER=$(kubectl config view | grep server | cut -f 2- -d ":" | tr -d " ")

$ TOKEN=$(kubectl describe secret $(kubectl get secrets | grep default | cut -f1 -d ' ') | grep -E '^token' | cut -f2 -d':' | tr -d '\t')

$ curl  --header "Authorization: Bearer $TOKEN" --insecure $APISERVER/api/v1/nodes


4.使用kubectl https方式访问,认证方式为证书,双向认证

#cd /etcd/kubernetes/ssl

#openssl genrsa -out pwm.key 2048

#openssl req -new -key pwm.key -out pwm.csr -subj "/CN=pwm"

#openssl x509 -req -days 365 -in pwm.csr -CA ca.pem -CAkey ca-key.pem -CAcreateserial -out pwm.crt

#创建用户pwm,已经想要的role和rolebongding

# kubectl --server=https://192.168.61.100:6443 \

--certificate-authority=ca.pem  \

--client-certificate=pwm.crt \

--client-key=pwm.key \

get nodes


集群内部:

1.在使用了service account的pod内部

# curl -k -v -H "Authorization: Bearer $(cat /var/run/secrets/kubernetes.io/serviceaccount/token)" https://kubernetes.default/api/v1/namespaces/

# curl --cacert /var/run/secrets/kubernetes.io/serviceaccount/ca.cem -v -H "Authorization: Bearer $(cat /var/run/secrets/kubernetes.io/serviceaccount/token)" https://kubernetes.default/api/v1/namespaces/

编程语言访问:

参考https://kubernetes.io/docs/tasks/administer-cluster/access-cluster-api/

你可能感兴趣的:(访问Kubernetes集群API)