写点什么

Kubernetes API server 工作原理

作者:Jerry Wang
  • 2021 年 12 月 27 日
  • 本文字数:596 字

    阅读完需:约 2 分钟

Kubernetes API server工作原理

作为 Kubernetes 的使用者,每天用得最多的命令就是 kubectl XXX 了。


kubectl 其实就是一个控制台,主要提供的功能:


1. 提供 Kubernetes 集群管理的 REST API 接口,包括认证授权、数据校验以及集群状态变更;


2. 提供其他模块之间的数据交互和通信的枢纽(其他模块通过 API Server 查询或修改数据,只有 API Server 才直接操作 etcd)


也就是说,我们在终端里输入的每个 kubectl 命令,实际上都是一个发往 Kubernetes API server 的 Restful API 调用。


我们可以做个实验:


kubectl get secret -v=9, 通过-v=9 设置最高级别的 trace:


从输出观察到为了取回所有的 secret 而进行的 API server 的调用 url:https://xxxx/api/v1/namespaces/<own namespace>/secrets?limit=500:



这个 HTTP 请求的格式在 Kubernetes 官网能查到。



那么 kubectl 命令怎么知道应该把请求发送到哪个 API server 呢?


实行命令 kubectl config view, 显示内容里的 server:后面的地址就是 API server 的 url。



kubectl config view 显示的内容来自配置文件: ~/.kube/config:


其实 Kubernetes 的 kubectl 工作原理和 CloudFoundry 的命令行工具 cf 一样。


设置操作系统的环境变量 CF_TRACE = true



然后执行任意的 cf 命令,能看到这些命令实际上也是发送一个 HTTP 请求到 SAP Cloud Platform 的某个 endpoint 上。


例子:cf logs connectvity-demo-approuter --recent


然后就能看到为了完成这个命令所发送的 HTTP 请求和响应的负载。



要获取更多 Jerry 的原创文章,请关注公众号"汪子熙":



发布于: 1 小时前
用户头像

Jerry Wang

关注

个人微信公众号:汪子熙 2017.12.03 加入

SAP成都研究院开发专家,SAP社区导师,SAP中国技术大使。

评论

发布
暂无评论
Kubernetes API server工作原理