用户通过代理与API服务器交互
Last updated
Was this helpful?
Last updated
Was this helpful?
通常情况下,用户往往使用kubectl
客户端与API服务器进行交互,而实际上,kubectl
客户端是对Kubernetes的REST API进行封装,并加上了相关的验证操作(验证所需的配置文件在~/.kube/config
中),保证用户可以省去验证等操作,直接对集群中的资源进行操作。
因此,用户同样可以直接调用Kubernetes的REST API与之进行交互,只是需要自行处理验证等相关操作。
幸运的是,我们可以通过执行kubectl proxy
命令,通过代理与API服务器交互,从而,验证的相关操作由代理完成,不需要用户自行处理。
因此,用户想通过代理与API服务器交互,需要执行以下两步:
使用kubectl proxy
生成代理服务器;
使用curl通过代理与Kubernetes的REST API交互;
使用kubectl客户端建立代理的方式来与API服务器通信,因为它可以在用户的请求中添加授权令牌,从而令用户获得访问API服务器的权限,从而间接的与API服务器交互。开启代理的命令如下:
在本地的8080端口上开启kubectl proxy
生成代理后,用户的请求转发的过程如下图所示,当用户请求localhost:8080/api/v1/namespaces/default/pods/kubia-0/proxy/
时,会被代理将地址进行转换为API服务器的地址,即192.168.99.106:8443
,并且在请求中加入验证所需的授权令牌等信息,当API服务器收到请求后,再向后端的资源进行请求:
当生成代理后,用户就可以通过代理间接的与API服务器进行交互。
假设代理监听的端口是8080
,那么举几个例子,展示其用法: