Kubernetes(简称K8s)是一个可移植的。可扩展的开源平台。用于管理容器化的工作负载和服务。可促进声明式配置和自动化。当我们部署完Kubernetes。即拥有了一个完整的集群。集群具有至少一个工作节点。那么Kubernetes常见组件有哪些?下面一起来看下Kubernetes常见组件介绍。
一。控制平面组件(Control Plane Components)
控制平面的组件对集群做出全局决策(比如调度)。以及检测和响应集群事件(例如。当不满足部署的 replicas 字段时。启动新的 pod)。控制平面组件可以在集群中的任何节点上运行。 然而。为了简单起见。设置脚本通常会在同一个计算机上启动所有控制平面组件。 并且不会在此计算机上运行用户容器。
1。kube-apiserver
API服务器是Kubernetes控制面的组件。该组件公开了Kubernetes API。它是Kubernetes控制面的前端。主要实现是kube-apiserver。
kube-apiserver设计上考虑了水平伸缩。也就是说。它可通过部署多个实例进行伸缩。 你可以运行kube-apiserver的多个实例。并在这些实例之间平衡流量。
2。etcd
etcd是兼具一致性和高可用性的键值数据库。可以作为保存Kubernetes所有集群数据的后台数据库。它通常需要有个备份计划。
3。kube-scheduler
kube-scheduler控制平面组件。负责监视新创建的。未指定运行节点(node)的Pods。选择节点让Pod在上面运行。调度决策考虑的因素包括单个Pod和Pod集合的资源需求。硬件/软件/策略约束。亲和性和反亲和性规范。数据位置。工作负载间的干扰和最后时限。
4。kube-controller-manager
kube-controller-manager运行控制器进程的控制平面组件。从逻辑上讲。每个控制器都是一个单独的进程。 但是为了降低复杂性。它们都被编译到同一个可执行文件。并在一个进程中运行。
5。cloud-controller-manager
云控制器管理器是指嵌入特定云的控制逻辑的控制平面组件。云控制器管理器使得你可以将你的集群连接到云提供商的API之上。 并将与该云平台交互的组件同与你的集群交互的组件分离开来。cloud-controller-manager仅运行特定于云平台的控制回路。如果你在自己的环境中运行Kubernetes。或者在本地计算机中运行学习环境。所部署的环境中不需要云控制器管理器。
二。Node组件
节点组件在每个节点上运行。维护运行的 Pod 并提供 Kubernetes 运行环境。
1。kubelet
kubelet是一个在集群中每个节点(node)上运行的代理。它保证容器(containers)都运行在Pod中。接收一组通过各类机制提供给它的PodSpecs。确保这些PodSpecs中描述的容器处于运行状态且健康。 kubelet不会管理不是由Kubernetes创建的容器。
2。kube-proxy
kube-proxy 是集群中每个节点上运行的网络代理。实现Kubernetes服务(Service)概念的一部分。它维护节点上的网络规则。这些网络规则允许从集群内部或外部的网络会话与Pod进行网络通信。如果操作系统提供了数据包过滤层并可用的话。kube-proxy会通过它来实现网络规则。否则。kube-proxy仅转发流量本身。
三。容器运行时(Container Runtime)
容器运行环境是负责运行容器的软件。Kubernetes支持容器运行时。例如Docker。containerd。CRI-O以及 Kubernetes CRI (容器运行环境接口) 的其他任何实现。
目前Vultr。Linode等海外服务器商家提供Kubernetes服务支持。我们可按需部署Kubernetes集群。
更多:《热门海外服务器推荐》
本文地址:https://gpu.xuandashi.com/30812.html,转载请说明来源于:渲大师
声明:本站部分内容来自网络,如无特殊说明或标注,均为本站原创发布。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。分享目的仅供大家学习与参考,不代表本站立场!