kubectl方式远程访问集群
kubectl是kubernetes自带的命令行客户端,安装kubernete集群之后,可以使用kubectl相关的命令访问kubernetes集群资源。kubectl可以独立在本地安装,来访问远程的kubernetes集群资源。
配置方式:将远程kubernetes集群~.kube/config文件 拷贝到本地并替换,即可通过kubectl访问远程kubernetes集群
使用kubectl proxy代理方式
执行如下命令
$ kubectl proxy --port=8080 &
- 注意这里不仅仅只是可以在kubernetes集群的节点上执行才能达到访问目的,如果已经通过上面提到的方式在本地通过kubectl已经连接到远程集群,那么在本地执行此以下命令也是可以的。此时映射的端口是在执行命令的本地机器上
- 该命令执行后通过curl访问kubernetes接口具有较高的权限,包括查看、删除等
不使用 kubectl 代理
$ APISERVER=$(kubectl config view | grep server | cut -f 2- -d ":" | tr -d " ")
#下面这地方可能会有坑,获取到的token尽量检查一下前面是否有空格,如果有空格,后面即使赋权之后也会报权限错误,注意删除空格
$ TOKEN=$(kubectl describe secret $(kubectl get secrets | grep default | cut -f1 -d ' ') | grep -E '^token' | cut -f2 -d':' | tr -d '\t')
$ curl $APISERVER/api/v1/namespaces/default/pods --header "Authorization: Bearer $TOKEN" --insecure