与kubernetes API服务器交互
之前学到了Downward API提供了一种简单的方式,将pod和容器的元数据传递给她们内部运行的进程,这种方式紧紧可以暴露一个pod自身的元数据,而且至可以暴露部分元数据。在一些情况下,我们应用需要知道其他pod信息,甚至是集群中踢啊资源信息,这种情况下Downward API方式将无能为力
之前学过可以通过服务相关环节变老或DNS来获取服务和pod的信息,但如果应用需要获取其他资源的信息或获取最新信息,就需要直接与API服务器进行交互
可以先了解下服务器的REST endpoint,这样可以大致了解下什么是API服务器。
1)探究Kubernetes REST API
先尝试直接访问API服务器,可以通过运行kubectl cluster-info命令来获取服务器的URL
$kubectl cluster-info
如果服务器使用https协议,需要授权,所以与服务器交互并不是一件简单的事情,
尝试通过curl来访问,使用curl的--insecure(或-k)选项来跳过服务器证书检查环节,,但是不能走太远。
可以通过执行kubectl proxy命令,通过代理与服务器交互,而不是自行来处理验证过程。
通过kubectl proxy访问api服务器
$kubectl proxy
Starting to serve on 127.0.0.1:8001
我们无须传递其他任何参数,以为kubectl已经知晓所需的所有参数(API服务器URL、认证凭证等)一旦启动,代理服务器就将在本地端口8001接受连接请求,后续可以通过curl来看api服务器返回什么.
curl localhost:8001
2)从pod内部与API服务器进行交互
--未完成



