直接访问的方式:
集群外部:
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/
网友评论