kubectl proxy¶
一种直接访问kubernetes API的方法。
首先通过kubectl获取到API的URL, 例如
vagrant@k8s-master:~$ kubectl get namespaces -v 6
I0612 21:17:08.143200 65940 loader.go:372] Config loaded from file: /home/vagrant/.kube/config
I0612 21:17:08.174927 65940 round_trippers.go:553] GET https://192.168.56.10:6443/api/v1/namespaces?limit=500 200 OK in 18 milliseconds
NAME STATUS AGE
default Active 12d
kube-node-lease Active 12d
kube-public Active 12d
kube-system Active 12d
后台执行 kubectl proxy &
vagrant@k8s-master:~$ kubectl proxy &
[1] 66087
vagrant@k8s-master:~$ Starting to serve on 127.0.0.1:8001
vagrant@k8s-master:~$
这时候就可以通过proxy来访问API了,例如
vagrant@k8s-master:~$ curl http://127.0.0.1:8001/api/v1/namespaces?limit=500
{
"kind": "NamespaceList",
"apiVersion": "v1",
"metadata": {
"resourceVersion": "352131"
},
"items": [
{
"metadata": {
"name": "default",
"uid": "9c661b71-38ad-4cdc-b505-0889e88bdb4b",
"resourceVersion": "197",
"creationTimestamp": "2022-05-31T18:13:08Z",
"labels": {
"kubernetes.io/metadata.name": "default"
},
如何退出proxy? 运行fg,然后运行ctrl + c
vagrant@k8s-master:~$ fg
kubectl proxy
^C
vagrant@k8s-master:~$