kubernetes api server

API Server 的核心功能是提供了Kubernetes各类资源对象(如Pod、RC、Service等)的增删该查及watch等HTTP Rest接口,成为集群内各个模块之间数据交互和通信的中心枢纽,是整个集群的数据总线和数据中心。

(1)、是集群管理的API入口 ( kubectl )

(2)、是资源配额控制的入口

(3)、提供了完备的集群安全控制机制

如何访问 kubernetes API ?

1、本地端口

(1)、该端口用于接收HTTP请求

(2)、该端口默认值为8080,可以通过API Server的启动参数“--insecure-port”的值来修改默认值

(3)、默认的IP地址为“localhost”,可以通过启动参数“--insecure-bind-address”的值来修改该IP地址

(4)、非认证或授权的HTTP请求通过该端口访问API Server

curl http://localhost:8080/api

2、安全端口

(1)、该端口默认值为6443,可通过启动参数“--secure-port”的值来修改默认值

(2)、默认IP地址为非本地(Non-Localhost)网络端口,通过启动参数“--bind-address”设置该值

(3)、该端口用于接收HTTPS请求

(4)、用于基于Tocken文件或客户端证书及HTTP Base的认证

(5)、用于基于策略的授权

(6)、默认不启动HTTPS安全访问控制

curl -k --cert apiserver-kubelet-client.crt --key apiserver-kubelet-client.keyhttps://127.0.0.1:6443/api



api server 三种访问方法:

1、正常情况下,访问集群需要通过https授权:

kubectl cluster-info                --查看api server的访问链接

curl https://127.0.0.1:6443 -k     --测试访问,需要证书认证

curl https://172.17.0.5:6444

解决办法1:

通过kubectl proxy代理,即开启proxy代理,proxy接收来自本机的http请求,并转发到api server,同时处理身份认证,再把api server的返回值返回给我们。

使用这种方法不需要每次请求都上传请求凭证, 可以确保我们直接与真实的 API 服务器交互, 而不是 一个中间入(通过每次验证服务器证书的方式)

kubectl proxy        --开启proxy代理

curl http://localhost:8001--在新的shell中访问api server

2、 从pod内部与API server 进行交互

(1)、kubernetes集群创建完成后,会在default 命令空间下创建一个名为 default-token 的secret。而所有在该集群中启动的pod都会默认挂载该secret。 describe 该secret会发现有以下三种条目:ca.crt、token、namespace。该secret被挂载在容器的  /var/run/secrets/kubernetes.io/serviceaccount    目录下。

(2)、在pod需要和api server交互的时候,首先需要验证api server的证书是否是证书机构所签发,此证书在ca.crt中。

(3)、然后会通过token文件中记录的凭证,通过 Authorization 标头来获得api server的授权。

(4)、当对pod所在 命名空间的 api 对象进行 CRUD 操作时,则会使用namespace文件来传递命名空间信息到 api server。 cat namespace文件会发现该文件记录的就是pod所在命名空间。

备注:CRUD代表创建、 读取、 修改和删除操作, 与之对应的HTTP方法分别是POST、 GET、 PATCH/PUT以及DELETE。

3、通过证书直接访问 api server

curl -k --cert apiserver-kubelet-client.crt --key apiserver-kubelet-client.key https://127.0.0.1:6443/api

更多内容请关注我的知乎账号:https://www.zhihu.com/people/dengjiabo/activities

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容