跳转到主要内容

热门内容

今日:


总体:


最近浏览:


Chinese, Simplified
SEO Title

category

API服务器是中央管理实体,也是唯一与分布式存储组件etcd直接对话的组件。

API服务器具有以下核心职责:

  • 为Kubernetes API服务。
    • 该API由主组件、工作节点和其他节点集群地在内部使用,和您的Kubernetes本地应用程序,以及由kubectl等客户端外部提供。
  • 代理集群组件
    • 例如Kubernetes仪表板,或流式日志、服务端口或服务kubectl exec会话。
       

为API服务是指:

  • 1.读取状态:
    • 获取单个对象,列出它们,并流式传输更改
  • 2.操纵状态:
  • 创建、更新和删除对象
  • Kubernetes architecture overview


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存储器中检索以及递送所请求的对象。
本文地址
最后修改
星期二, June 4, 2024 - 21:36
Article