kubernetes组件kube-apiserver介绍
Kubernetes 是一种开源的容器编排平台,它可以自动化地部署、扩展和管理容器化应用程序。kube-apiserver 是 Kubernetes 架构中的核心组件之一,它充当 Kubernetes API 的前端,处理来自 Kubernetes API 的所有请求,并将其转发给其他组件进行处理。
kube-apiserver 的概述
kube-apiserver 是 Kubernetes 的控制平面组件之一,它充当 Kubernetes API 的前端。所有来自 Kubernetes API 的请求都将发送到 kube-apiserver,然后由它转发到适当的组件进行处理。kube-apiserver 还负责执行对 Kubernetes 资源的验证、授权和准入控制,并记录所有 API 请求的审计日志。此外,kube-apiserver 还可以对外部系统进行认证和授权,以便与 Kubernetes 进行交互。
kube-apiserver 的架构
kube-apiserver 的架构是一个多层的系统,由以下组件组成:
(相关资料图)
(1) HTTP Server
kube-apiserver 作为 HTTP Server 提供 HTTP(S) 服务。所有的 API 请求都通过 HTTP(S) 进行传输,并由 kube-apiserver 处理。
(2) Authentication
kube-apiserver 可以使用多种身份验证机制,包括基于令牌、证书和用户名/密码的身份验证。当客户端发起 API 请求时,kube-apiserver 会根据请求中的认证信息来验证其身份。
(3) Authorization
kube-apiserver 在处理 API 请求之前会执行授权检查,以确保请求的发起者有足够的权限执行该请求。kube-apiserver 使用 RBAC(Role-Based Access Control) 机制来管理 Kubernetes 资源的授权。
(4) Admission Control
kube-apiserver 在创建、修改和删除 Kubernetes 资源之前会执行准入控制检查,以确保这些操作符合 Kubernetes 系统的规范和限制。kube-apiserver 支持插件化的准入控制机制,可以通过插件来实现自定义的准入控制规则。
(5) API Registration
kube-apiserver 负责注册所有 Kubernetes API,包括 core API 和扩展 API。通过注册 API,kube-apiserver 使得所有的 Kubernetes 资源都可以通过 API 进行访问和管理。
(6) Etcd Storage
kube-apiserver 使用 Etcd 作为持久化存储,将 Kubernetes 资源的元数据保存在 Etcd 中。kube-apiserver 和 Etcd 之间使用一致性协议来保证数据的一致性和可靠性。
(7) Controller Manager
kube-apiserver 还包括一个 Controller Manager 组件,用于管理和运行 Kubernetes 的控制器。控制器是 Kubernetes 系统中的核心组件,用于确保 Kubernetes 系统的自愈能力。Controller Manager 负责监控 Kubernetes 中各种资源的状态,并根据需要执行自动化操作来保持系统的状态正确性。
(8) API Server Plugins
kube-apiserver 可以通过插件来扩展其功能。例如,kube-apiserver 支持 Webhook 插件,可以用于在 API 请求处理之前或之后执行自定义的操作。kube-apiserver 还支持 Admission Controller 插件,可以用于自定义准入控制规则。
kube-apiserver 的启动参数
kube-apiserver 启动时需要提供一系列参数来配置其行为。以下是一些常用的启动参数:
--advertise-address:指定 kube-apiserver 使用的 IP 地址。
--allow-privileged:是否允许容器运行在特权模式下。
--authorization-mode:指定 kube-apiserver 使用的授权模式,支持 RBAC、Node、Webhook 等多种授权模式。
--etcd-servers:指定 Etcd 的地址列表。
--insecure-bind-address:指定 kube-apiserver 监听的 IP 地址。
--service-account-key-file:指定服务账户的公钥文件路径。
--tls-cert-file:指定 TLS 证书文件路径。
--tls-private-key-file:指定 TLS 私钥文件路径。
kube-apiserver 的示例
以下是启动 kube-apiserver 的示例命令:
kube-apiserver --advertise-address=192.168.1.100 \--allow-privileged=true \--authorization-mode=RBAC \--etcd-servers=http://etcd-0:2379,http://etcd-1:2379,http://etcd-2:2379 \--insecure-bind-address=127.0.0.1 \--service-account-key-file=/etc/kubernetes/pki/sa.pub \--tls-cert-file=/etc/kubernetes/pki/apiserver.crt \--tls-private-key-file=/etc/kubernetes/pki/apiserver.key在上面的示例中,kube-apiserver 使用 192.168.1.100 作为其 IP 地址,并允许容器运行在特权模式下。kube-apiserver 使用 RBAC 作为授权模式,使用三个 Etcd 节点作为其持久化存储,同时监听本地的 127.0.0.1 地址。kube-apiserver 使用 /etc/kubernetes/pki/sa.pub 作为服务账户的公钥文件,同时使用 /etc/kubernetes/pki/apiserver.crt 和 /etc/kubernetes/pki/apiserver.key 作为 TLS 证书和私钥文件。
标签:
- kubernetes组件kube-apiserver介绍
- 全球消息!银行加入淄博烧烤“大戏”
- 劳动争议仲裁申请书范文简易-劳动争议仲裁申请书范文
- 圣达生物:拟以1700万元-3400万元回购股份
- 克劳斯:拟不低于904.99万元回购股份
- 2023北京大兴区非京籍义务教育证明材料审核要求征集意见-全球动态
- 世界热门:新冠疫苗需求大减,康希诺一季度营收降近八成,净亏1.4亿元
- 4月28日300成长净值上涨0.43%-当前看点
- 傲慢知乎,何以沦为“UC震惊部”?
- 焦点!2022年全国农民工总量增加311万人
- 福建省科技金融对接会在榕举办 兴业银行福州分行现场签约超2800万元
- 蔷薇花墙扮靓校园
- 四川广元市发布200家优质农产品生产企业名录,品类丰富产量充足_速看料
- 房企拯救归母利润
- 江苏一季度新增贷款总额创历年同期最高
- 天天微头条丨4月28日河北地区煤焦油市场价格
- bug是什么意思对苹果机有什么坏处_bug是什么意思
- 伊利2022年报发布 冷饮以亮眼成绩稳居行业领导地位
- 新资讯:休闲游玩好去处!青岛这两个口袋公园开工建设,年底完工
- 夫妻两人同居异地想离婚手续怎么办?_世界热议
- 76人消息:大帝伤情不乐观,第二轮赛程出炉,哈登迎4大里程碑_全球快看
- 飞天诚信亮相美国TRANSACT 2023展会,助力支付产业数字化转型
- 世界播报:交通部门多措并举保障“五一”假期平稳出行
- 人才盘点的主角是业务部门负责人还是HR?一文讲透「人才盘点」-播资讯
- 一个完整的电源功率模块的设计和验证流程 天天动态
- 镇江一院举办“科普护健康,携手向未来”健康科普作品大赛
- 山东省政协召开月度协商会围绕“深入推进数字政府建设”协商议政
- 【新视野】[一季报]永艺股份(603600):永艺家具股份有限公司2023年第一季度报告
- 环球焦点!银保监会:2023年加力提升小微企业金融服务质量
- 环球通讯!新概念英语第二册重点第62课