运维入坑必看 Kubernetes平台框架解读
发布时间:2022-06-13 17:37:49 所属栏目:云计算 来源:互联网
导读:Kubernetes是一个开源容器编排平台,管理大规模分布式容器化软件应用, 是云计算发展演进的一次彻底革命性的突破。Kubernetes是谷歌的第三代容器管理系统,是Borg独特的控制器和Omega灵活的调度器的组合。Kubernetes中的应用被打包成与环境完全分离的容器镜
Kubernetes是一个开源容器编排平台,管理大规模分布式容器化软件应用, 是云计算发展演进的一次彻底革命性的突破。Kubernetes是谷歌的第三代容器管理系统,是Borg独特的控制器和Omega灵活的调度器的组合。Kubernetes中的应用被打包成与环境完全分离的容器镜像,并且自动配置应用并维护跟踪资源分配。 敏捷的弹性伸缩能力: 不同于虚拟机分钟级的弹性伸缩响应,容器应用可实现秒级甚至毫秒级的弹性伸缩响应; 智能的服务故障自愈能力: 容器应用具有极强的自愈能力,可实现应用故障的自动摘除与重构; 大规模的复制分发能力: 容器应用标准化的交付制品,可实现跨平台、跨区域,云边一体规模化复制分发部署能力。 一、Kubernetes整体架构 1、集中式管理节点 集中式管理节点,对集群进行调度管理,有 四大核心组件: API Server: 承担集群的网关,实现统一认证鉴权对外服务,同时也是管理Node/Pod资源代理通道; Scheduler: 资源调度器,除了Kubernetes默认的调度器,也支持自定义调度器; ETCD: 集群状态统一存储,与Zookeeper类似的key-value存储; Controller Manger: 控制管理器实现自愈、扩容、应用生命周期管理、服务发现、路由、服务绑定等能力;Kubernetes默认提供Replication Controller、Node Controller、Namespace Controller、Service Controller、Endpoints Controller、Persistent Controller、DaemonSet Controller等控制器。 2、 辅助工具 辅助工具,主要是辅助集群管理及网络扩展: kubectl 通过API Server进行交互,实现 集群管理的命令行工具; Dashboard 是Kubernetes的web 用户管理监控界面; Core DNS 是可扩展的DNS服务器,实现 集群服务发现能力。 二、Kubernetes核心理念 1、POD容器组,Kubernetes最小调度单元 Pod是Kubernetes的 最小调度及资源分配单元, Pod之间相互隔离,通常情况一个Pod只建议运行一个容器,当某些容器之间关系非常紧密(Tightly coupled),可以运行在同一Pod运行多个容器方便一起调度管理。一个Pod就是一个应用运行实例,通过同时运行多个Pod来实现应用 横向扩展 能力。Pod本身没有自恢复能力,当调度或运行失败时,需要管理节点的Controller根绝配置触发实现Pod重启、重建或迁移等操作。 Pause Container: 又叫Infra Container,Pod通过Pause Container实现Pod多个容器网络共享, Pause Container最先启动并绑定Pod唯一IP地址与各种网络资源,其他容器通过加入Pause Container的Network namespace来实现网络共享。Pause是C语言实现,镜像非常小只有700KB左右,并且永远处于Pause(暂停)状态;官方镜像是gcr.io/google_containers/pause-amd64:3.0,同时也支持自定义。 Init Container: Pod中可以自定义一个或者多个 Init Container , 按照顺序依次启动 ,在应用Container之前启动并执行一些辅助任务,比如执行脚本、拷贝文件到共享目录、日志收集、应用监控等。将辅助功能与主业务容器解耦,实现独立发布和能力重用。除了不支持Readiness Probe,其他与特性与普通容器保持一致。 App Container: Pod真正承接业务的Container,一般情况会独立运行,如果是有微服务治理等需求会搭配Sidecar Container一起运行。在Init Container启动完成之后, App Container会并行启动, 但是需要等待所有 App Container 处于就绪状态,整个Pod才算启动成功。 (编辑:天瑞地安资讯网_黄海网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
站长推荐