k8s架构简介
所属分类 k8s
浏览量 736
Kubernetes K8S
用于大规模运行分布式应用和服务的容器编排平台
k8s 集群的设计基于 3 个原则
安全 应遵循最新的安全最佳实践
易于使用 能通过一些简单的命令进行操作
可扩展 不应偏向于某一个提供商 通过配置文件进行自定义
k8s集群 两个部分 控制平面 与 计算节点
每个节点都运行由若干容器组成的容器集 POD
k8s集群组成
control plane
kube-apiserver kube-scheduler kube-controller-manager etcd
compute machines
kubelet kube-proxy container-runtime(pod(containers))
persistant storage
container registry
控制平面
Kubernetes API 是 Kubernetes 控制平面的前端,用于处理内部和外部请求
可通过 REST 调用、kubectl 命令行界面 或 其他命令行工具(例如 kubeadm)来访问 API
kube-scheduler
考虑容器集的资源需求(例如 CPU 或内存)以及集群的运行状况 ,将容器集安排到适当的计算节点
kube-controller-manager
控制器负责实际运行集群 控制器管理器则是将多个控制器功能合而为一
控制器用于查询调度程序,并确保有正确数量的容器集在运行
如果有容器集停止运行,另一个控制器会发现并做出响应。
控制器会将服务连接至容器集,以便让请求前往正确的端点
还有一些控制器用于创建帐户和 API 访问令牌。
etcd
配置数据以及有关集群状态的信息
etcd 采用分布式、容错设计,被视为集群的最终事实来源
节点
容器集是 Kubernetes 对象模型中最小、最简单的单元 ,它代表了应用的单个实例
每个容器集都由一个容器(或一系列紧密耦合的容器)以及若干控制容器运行方式的选件组成
容器集可以连接至持久存储,以运行有状态应用
容器运行时引擎
比如 Docker
支持其他符合 OCI标准的运行时,例如 rkt 和 CRI-O
kubelet
每个计算节点中都包含一个 kubelet,这是一个与控制平面通信的微型应用
kublet 可确保容器在容器集内运行
当控制平面需要在节点中执行某个操作时,kubelet 就会执行该操作
kube-proxy
用于优化 Kubernetes 网络服务的网络代理
kube-proxy 负责处理集群内部或外部的网络通信
依赖操作系统的数据包过滤层,或者自行转发流量
持久存储
容器镜像仓库
底层基础架构 物理机 虚拟机 公共云提供商 私有云和混合云环境
上一篇
下一篇
ElasticJob 简介
git 本地创建新分支并push
容器技术简介
k8s本地测试环境搭建工具
云原生技术发展历程
Make 命令简介