Chinese, Simplified
SEO Title
category
API服务器是中央管理实体,也是唯一与分布式存储组件etcd直接对话的组件。
API服务器具有以下核心职责:
- 为Kubernetes API服务。
- 该API由主组件、工作节点和其他节点集群地在内部使用,和您的Kubernetes本地应用程序,以及由kubectl等客户端外部提供。
- 代理集群组件
- 例如Kubernetes仪表板,或流式日志、服务端口或服务kubectl exec会话。
- 例如Kubernetes仪表板,或流式日志、服务端口或服务kubectl exec会话。
为API服务是指:
- 1.读取状态:
- 获取单个对象,列出它们,并流式传输更改
- 2.操纵状态:
- 创建、更新和删除对象
GroupVersionResource(GVR)¶
同居(COHABITATION):
- Ingress,扩展和networking.k8s.io中的NetworkPolicy
- 扩展和应用程序中的部署、DaemonSet、ReplicaSet
- 核心组中的事件和events.k8s.io
REST映射:
GVK<->GVR
一个示例Kubernetes API空间
启动代理
$ kubectl proxy --port=8080
使用:
curl http://127.0.0.1:8080/apis/batch/v1
or
$ kubectl get --raw /apis/batch/v1
Kubernetes API服务器请求处理概述
在高层次上,会发生以下互动:
1.HTTP请求由在DefaultBuildHandlerChain()中注册的筛选器链处理。
该链在k8s.io/apiserver/pkg/server/config.go中进行了定义,稍后将进行详细讨论。
它对所述请求应用一系列过滤操作。
过滤器将各自的信息传递并附加到上下文中——准确地说,
ctx.RequestInfo,ctx是Go中的上下文(例如,经过身份验证的用户)
----或者如果请求没有通过过滤器,
它返回一个适当的HTTP响应代码,说明原因
(例如如果用户认证失败则401响应)。
2.接下来,根据HTTP路径,k8s.io/apiserver/pkg/server/handler.go中的多路复用器
将HTTP请求路由到相应的处理程序。
3.为每个API组注册一个处理程序----请参阅k8s.io/apiserver/pkg/endpoints/groupversion.go
和k8s.io/apiserver/pkg/endpoints/installer.go了解详细信息。
它接受HTTP请求和上下文(例如,用户和访问权限)
并且从etcd存储器中检索以及递送所请求的对象。
- 登录 发表评论
- 6 次浏览
发布日期
星期二, June 4, 2024 - 21:36
最后修改
星期二, June 4, 2024 - 21:36
Article
最新内容
- 1 day 10 hours ago
- 1 day 10 hours ago
- 1 day 10 hours ago
- 1 day 10 hours ago
- 1 day 17 hours ago
- 2 days 15 hours ago
- 1 week 4 days ago
- 1 week 4 days ago
- 1 week 4 days ago
- 1 week 4 days ago