【云驻共创】华为云云原生黄金课程04:Kubernetes集群管理
前言
为进一步推进云原生技术的普及,帮助广大技术爱好者快速掌握云原生相关技能,华为云云原生团队重磅推出《云原生王者之路系列课程》。课程分为黄金、钻石和王者三阶段,从云原生基础知识介绍到最佳实践讲解、底层原理和方案架构深度剖析,层层深入,可满足不同云原生技术基础和学习目标人群的需求。本课程还将理论与实践相结合,精选数十个企业典型应用场景,作为学员上机实践案例,帮助学员将所学技术快速与企业业务相结合,服务于企业生产。
一 Kubernetes 总体架构
1.1 Master
Master节点上面主要由四个模块组成:etcd、api server、controller manager、scheduler。
• api server:负责对外提供restful的Kubernetes API服务,其他Master组件都通过调用api server提供的rest接口实现各自的功能,如controller就是通过api server来实时监控各个资源的状态的。
• etcd:是 Kubernetes 提供的一个高可用的键值数据库,用于保存集群所有的网络配置和资源对象的状态信息,也就是保存了整个集群的状态。数据变更都是通过api server进行的。
• scheduler:监听新建pod副本信息,并通过调度算法为该pod选择一个最合适的Node节点。会检索到所有符合该pod要求的Node节点,执行pod调度逻辑。调度成功之后,会将pod信息绑定到目标节点上,同时将信息写入到etcd中。一旦绑定,就由Node上的kubelet接手pod的接下来的生命周期管理。如果把scheduler看成一个黑匣子,那么它的输入是pod和由多个Node组成的列表,输出是pod和一个Node的绑定,即将这个pod部署到这个Node上。Kubernetes目前提供了调度算法,但是同样也保留了接口,用户可以根据自己的需求定义自己的调度算法。
• controller manager:负责维护集群的状态,比如故障检测、自动扩展、滚动更新等。每个资源一般都对应有一个控制器,这些controller通过api server实时监控各个资源的状态,controller manager就是负责管理这些控制器的。当有资源因为故障导致状态变化,controller就会尝试将系统由“现有状态”恢复到“期待状态”,保证其下每一个controller所对应的资源始终处于期望状态。比如我们通过api server创建一个pod,当这个pod创建成功后,api server的任务就算完成了。而后面保证pod的状态始终和我们预期的一样的重任就由controller manager去保证了。
1.2 Node
Node上运行着Master分配的pod,当一个Node宕机,其上的pod会被自动转移到其他Node上。
每一个Node节点都安装了Node组件,包括kubelet、kube-proxy、container runtime。
• kubelet 会监视已分配给节点的pod,负责pod的生命周期管理,同时与Master密切协作,维护和管理该Node上面的所有容器,实现集群管理的基本功能。即Node节点通过kubelet与master组件交互,可以理解为kubelet是Master在每个Node节点上面的agent。本质上,它负责使Pod的运行状态与期望的状态一致。
• kube-proxy 是实现service的通信与负载均衡机制的重要组件,将到service的请求转发到后端的pod上。
• Container runtime:容器运行环境,目前Kubernetes支持docker和rkt两种容器。
二 Kubernetes部署模式
2.1 自建模式
部分企业存在多云、混合云部署(公有云、私有云),而通常不同云的k8s版本和一些特性会有不同。为拉平多公有云及私有云之间的k8s的版本及特性,这时会选择自建k8s集群,保持各云上的版本和特性一致,以减少维护成本。
云厂商的k8s版本考虑到稳定性,一般会滞后于k8s社区发出的最新稳定版。如需要跟随最新稳定版,就只能自己搭建。
我们存在混合云和多云的部署,但仍有部分集群使用的是云厂商的托管集群。
2.2 托管模式(CCE)
CCE是一种托管的Kubernetes产品/服务,可进一步简化基于容器的应用程序部署和管理,您可以在CCE中方便的创建Kubernetes集群、部署您的容器化应用,以及方便的管理和维护。
CCE提供的集群相关功能包括:购买集群、Kubectl访问集群、集群弹性扩容、升级集群、删除集群、集群休眠与唤醒、集群监控、集群权限控制等。
云容器引擎CCE是一种托管的Kubernetes服务,可进一步简化基于容器的应用程序部署和管理,您可以在CCE中方便的创建Kubernetes集群、部署您的容器化应用,以及方便的管理和维护。
• 一站式部署和运维:使用云容器引擎,您可以一键创建Kubernetes容器集群,无需自行搭建Docker和Kubernetes集群。您可以通过云容器引擎自动化部署和一站式运维容器应用,使得应用的整个生命周期都在云容器引擎内高效完成。
• 支持多类型容器集群:通过云容器引擎您可以直接使用华为云高性能的弹性云服务器、裸金属服务器、GPU加速云服务器等多种异构基础设施,您可以根据业务需要在云容器引擎中快速创建CCE集群、鲲鹏集群、CCE Turbo集群,并通过云容器引擎对创建的集群进行统一管理。
2.3 Serverless模式(CCI)
云容器实例(Cloud Container Instance,CCI)服务提供Serverless Container(无服务器容器)引擎,让您无需创建和管理服务器集群即可直接运行容器。
Serverless是一种架构理念,是指不用创建和管理服务器、不用担心服务器的运行状态(服务器是否在工作等),只需动态申请应用需要的资源,把服务器留给专门的维护人员管理和维护,进而专注于应用开发,提升应用开发效率、节约企业IT成本。传统上使用Kubernetes运行容器,首先需要创建运行容器的Kubernetes服务器集群,然后再创建容器负载。
云容器实例的Serverless Container就是从使用角度,无需创建、管理Kubernetes集群,也就是从使用的角度看不见服务器(Serverless),直接通过控制台、kubectl、Kubernetes API创建和使用容器负载,且只需为容器所使用的资源付费。
优势:用户无需创建Kubernetes服务器集群,直接使用控制台、kubectl、Kubernetes API创建容器。
三 Kubernetes集群-生产集群
• 高性能
基于华为在计算、网络、存储、异构等方面多年的行业技术积累,提供业界领先的高性能云容器引擎,支撑您业务的高并发、大规模场景。
采用高性能裸金属NUMA架构和高速IB网卡,AI计算性能提升3-5倍以上。
• 安全可靠
高可靠:集群控制面支持3 Master HA高可用,3个Master节点可以处于不同可用区,保障您的业务高可用。集群内节点和工作负载支持跨可用区(AZ)部署,帮助您轻松构建多活业务架构,保证业务系统在主机故障、机房中断、自然灾害等情况下可持续运行,获得生产环境的高稳定性,实现业务系统零中断。
私有集群,完全由用户掌控,并深度整合华为云帐号和Kubernetes RBAC能力,支持用户在界面为子用户设置不同的RBAC权限。
四 Kubernetes集群架构-CCE集群简介
• 集群管理
云容器引擎CCE是一种托管的Kubernetes服务,可进一步简化基于容器的应用程序部署和管理,您可以在CCE中方便的创建Kubernetes集群、部署您的容器化应用,以及方便的管理和维护。
• 节点管理
节点是容器集群组成的基本元素。节点取决于业务,既可以是虚拟机,也可以是物理机。每个节点都包含运行Pod所需要的基本组件,包括 Kubelet、Kube-proxy 、Container Runtime等。在云容器引擎CCE中,主要采用高性能的弹性云服务器ECS或裸金属服务器BMS作为节点来构建高可用的Kubernetes集群。
• 节点池管理
支持创建新的自定义节点池,借助节点池基本功能方便快捷地创建、管理和销毁节点,而不会影响整个集群。新节点池中所有节点的参数和类型都彼此相同,您无法在节点池中配置单个节点,任何配置更改都会影响节点池中的所有节点。
• 网络访问方式
云容器引擎通过将Kubernetes网络和华为云VPC深度集成,提供了稳定高性能的网络访问方式,能够满足多种复杂场景下工作负载间的互相访问。
• 生态工具
云容器引擎深度集成应用服务网格和Kubernetes Helm标准模板。
• 插件扩展
CCE提供了多种类型的系统插件,用于管理集群的扩展功能,以支持选择性扩展满足特性需求的功能。
• 提供OpenAPI和社区原生API。
• 提供Kubectl插件和社区原生Kubectl工具。
五 Kubernetes节点介绍-Node定义
Kubernetes中定义:
• 业务负载(Pod) 是资源的消费者
• 节点(Node)是业务负载的载体
• 云厂商Provider是基础资源的生产者
• 节点元数据:
• 节点名
• 节点标签
• 云厂商provider信息
• providerlD: CCE节点ID
• machinelD:服务器实例ID
• 节点资源信息:
• 节点资源总量
• 剩余可分配资源
六 通过节点池管理节点
• CCE集群中支持通过多种方式添加节点:
• 节点管理-创建节点(通过CCE创建服务器)
• 节点管理-纳管节点(已创建的服务器)
• 节点池管理-更新期望节点数
CCE支持创建新的自定义节点池,借助节点池基本功能方便快捷地创建、管理和销毁节点,而不会影响整个集群。新节点池中所有节点的参数和类型都彼此相同,您无法在节点池中配置单个节点,任何配置更改都会影响节点池中的所有节点。
CCE提供的节点池相关功能包括:创建节点池、查看节点池、编辑节点池、删除节点池、拷贝节点池、迁移节点。
本文整理自华为云社区【内容共创】活动第12期。
查看活动详情:https://bbs.huaweicloud.com/blogs/325315
相关任务详情:华为云云原生黄金课程04:Kubernetes集群管理
- 点赞
- 收藏
- 关注作者
评论(0)