栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 系统运维 > 运维 > Linux

华为云CCE 概念

Linux 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

华为云CCE 概念


云容器引擎( Cloud Container Engine,简称CCE)提供高度可扩展的、高性能的企业
级Kubernetes集群,支持运行Docker容器。借助云容器引擎,您可以在云上轻松部
署、管理和扩展容器化应用程序。
云容器引擎提供Kubernetes原生API,支持使用kubectl,且提供图形化控制台,让您
能够拥有完整的端到端使用体验,使用云容器引擎前,建议您先了解相关的基本概
念。
集群( Cluster)
集群指容器运行所需要的云资源组合,关联了若干云服务器节点、负载均衡等云资
源。您可以理解为集群是“同一个子网中一个或多个弹性云服务器(又称:节点)”
通过相关技术组合而成的计算机群体,为容器运行提供了计算资源池。
节点( Node)
每一个节点对应一台服务器(可以是虚拟机实例或者物理服务器),容器应用运行在
节点上。节点上运行着Agent代理程序( kubelet),用于管理节点上运行的容器实
例。集群中的节点数量可以伸缩。
节点池( NodePool)
节点池是集群中具有相同配置的一组节点,一个节点池包含一个节点或多个节点。
虚拟私有云( VPC)
虚拟私有云是通过逻辑方式进行网络隔离,提供安全、隔离的网络环境。您可以在
VPC中定义与传统网络无差别的虚拟网络,同时提供弹性IP、安全组等高级网络服务。
安全组
安全组是一个逻辑上的分组,为同一个VPC内具有相同安全保护需求并相互信任的弹
性云服务器提供访问策略。安全组创建后,用户可以在安全组中定义各种访问规则,
当弹性云服务器加入该安全组后,即受到这些访问规则的保护。
集群、虚拟私有云、安全组和节点的关系
如图1-9,同一个Region下可以有多个虚拟私有云( VPC)。虚拟私有云由一个个子网
组成,子网与子网之间的网络交互通过子网网关完成,而集群就是建立在某个子网
中。因此,存在以下三种场景:
● 不同集群可以创建在不同的虚拟私有云中。
● 不同集群可以创建在同一个子网中。
● 不同集群可以创建在不同的子网中。
华为云 Stack
云容器引擎用户指南 1 产品介绍
文档版本 04 (2021-06-30) 版权所有 © 华为技术有限公司 15
图 1-9 集群、 VPC、安全组和节点的关系
实例( Pod)
实例( Pod)是 Kubernetes 部署应用或服务的最小的基本单位。一个Pod 封装多个应
用容器(也可以只有一个容器)、存储资源、一个独立的网络 IP 以及管理控制容器运
行方式的策略选项。
图 1-10 实例( Pod)
容器( Container)
一个通过 Docker 镜像创建的运行实例,一个节点可运行多个容器。容器的实质是进
程,但与直接在宿主执行的进程不同,容器进程运行于属于自己的独立的命名空间。
工作负载
工作负载即Kubernetes对一组Pod的抽象模型,用于描述业务的运行载体,包括
Deployment、 Statefulset、 Daemonset、 Job、 CronJob等多种类型。
● 无状态工作负载: 即kubernetes中的“ Deployment”,无状态工作负载支持弹性
伸缩与滚动升级,适用于实例完全独立、功能相同的场景,如: nginx、
wordpress等。
华为云 Stack
云容器引擎用户指南 1 产品介绍
文档版本 04 (2021-06-30) 版权所有 © 华为技术有限公司 16
● 有状态工作负载: 即kubernetes中的“ StatefulSet”,有状态工作负载支持实例
有序部署和删除,支持持久化存储,适用于实例间存在互访的场景,如ETCD、
mysql-HA等。
● 创建守护进程集: 即kubernetes中的“ DaemonSet”,守护进程集确保全部(或
者某些)节点都运行一个Pod实例,支持实例动态添加到新节点,适用于实例在每
个节点上都需要运行的场景,如ceph、 fluentd、 Prometheus Node Exporter等。
● 普通任务: 即kubernetes中的“ Job”,普通任务是一次性运行的短任务,部署完
成后即可执行。使用场景为在创建工作负载前,执行普通任务,将镜像上传至镜
像仓库。
● 定时任务: 即kubernetes中的“ CronJob”,定时任务是按照指定时间周期运行的
短任务。使用场景为在某个固定时间点,为所有运行中的节点做时间同步。
图 1-11 工作负载与 Pod 的关系
编排模板
编排模板包含了一组容器服务的定义和其相互关联,可以用于多容器应用的部署和管
理。
镜像( Image)
Docker镜像是一个模板,是容器应用打包的标准格式,用于创建Docker容器。或者
说, Docker镜像是一个特殊的文件系统,除了提供容器运行时所需的程序、库、资
源、配置等文件外,还包含了一些为运行时准备的配置参数(如匿名卷、环境变量、
用户等)。镜像不包含任何动态数据,其内容在构建之后也不会被改变。在部署容器
化应用时可以指定镜像,镜像可以来自于容器镜像服务或者用户的私有Registry。例如
一个Docker镜像可以包含一个完整的Ubuntu操作系统环境,里面仅安装了用户需要的
应用程序及其依赖文件。
镜像( Image)和容器( Container)的关系,就像是面向对象程序设计中的类和实例
一样,镜像是静态的定义,容器是镜像运行时的实体。容器可以被创建、启动、停
止、删除、暂停等。
华为云 Stack
云容器引擎用户指南 1 产品介绍
文档版本 04 (2021-06-30) 版权所有 © 华为技术有限公司 17
图 1-12 镜像、容器、工作负载的关系
华为云 Stack
云容器引擎用户指南 1 产品介绍
文档版本 04 (2021-06-30) 版权所有 © 华为技术有限公司 18
命名空间( Namespace)
命名空间是对一组资源和对象的抽象整合。在同一个集群内可创建不同的命名空间,
不同命名空间中的数据彼此隔离。使得它们既可以共享同一个集群的服务,也能够互
不干扰。例如:
● 可以将开发环境、测试环境的业务分别放在不同的命名空间。
● 常见的pods, services, replication controllers和deployments等都是属于某一个
namespace的(默认是default),而node, persistentVolumes等则不属于任何
namespace。
服务( Service)
Service是将运行在一组 Pods 上的应用程序公开为网络服务的抽象方法。
使用Kubernetes,您无需修改应用程序即可使用不熟悉的服务发现机制。 Kubernetes
为Pods提供自己的IP地址和一组Pod的单个DNS名称,并且可以在它们之间进行负载平
衡。
Kubernetes允许指定一个需要的类型的 Service,类型 的取值以及行为如下:
● ClusterIP:集群内访问。通过集群的内部 IP 暴露服务,选择该值,服务只能够在
集群内部可以访问,这也是默认的 ServiceType。
● NodePort:节点访问。通过每个 Node 上的 IP 和静态端口( NodePort)暴露服
务。 NodePort 服务会路由到 ClusterIP 服务,这个 ClusterIP 服务会自动创建。
通过请求 :,可以从集群的外部访问一个 NodePort 服务。
● LoadBalancer:负载均衡。使用云提供商的负载均衡器,可以向外部暴露服务。
外部的负载均衡器可以路由到 NodePort 服务和 ClusterIP 服务。
七层负载均衡( Ingress)
Ingress是为进入集群的请求提供路由规则的集合,可以给service提供集群外部访问的
URL、负载均衡、 SSL终止、 HTTP路由等。
网络策略( NetworkPolicy)
NetworkPolicy提供了基于策略的网络控制,用于隔离应用并减少攻击面。它使用标签
选择器模拟传统的分段网络,并通过策略控制它们之间的流量以及来自外部的流量。
配置项( Configmap)
ConfigMap用于保存配置数据的键值对,可以用来保存单个属性,也可以用来保存配
置文件。 ConfigMap跟secret很类似,但它可以更方便地处理不包含敏感信息的字符
串。
密钥( Secret)
Secret解决了密码、 token、密钥等敏感数据的配置问题,而不需要把这些敏感数据暴
露到镜像或者Pod Spec中。 Secret可以以Volume或者环境变量的方式使用。
华为云 Stack
云容器引擎用户指南 1 产品介绍
文档版本 04 (2021-06-30) 版权所有 © 华为技术有限公司 19
标签( Label)
标签其实就一对 key/value,被关联到对象上,比如Pod。标签的使用我们倾向于能够
标示对象的特殊特点,并且对用户而言是有意义的,但是标签对内核系统是没有直接
意义的。
选择器( LabelSelector)
Label selector是Kubernetes核心的分组机制,通过label selector客户端/用户能够识别
一组有共同特征或属性的资源对象。
注解( Annotation)
Annotation与Label类似,也使用key/value键值对的形式进行定义。
Label具有严格的命名规则,它定义的是Kubernetes对象的元数据( metadata),并
且用于Label Selector。
Annotation则是用户任意定义的“附加”信息,以便于外部工具进行查找。
存储卷( PersistentVolume)
PersistentVolume( PV)是集群之中的一块网络存储。跟 Node 一样,也是集群的资
源。
存储声明( PersistentVolumeClaim)
PV 是存储资源,而 PersistentVolumeClaim (PVC) 是对 PV 的请求。 PVC 跟 Pod 类
似: Pod 消费 Node 资源,而 PVC 消费 PV 资源; Pod 能够请求 CPU 和内存资源,
而 PVC 请求特定大小和访问模式的数据卷。
弹性伸缩( HPA)
Horizontal Pod Autoscaling,简称HPA,是Kubernetes中实现POD水平自动伸缩的功
能。 Kubernetes集群可以通过Replication Controller的scale机制完成服务的扩容或缩
容,实现具有伸缩性的服务。
亲和性与反亲和性
在应用没有容器化之前,原先一个虚机上会装多个组件,进程间会有通信。但在做容
器化拆分的时候,往往直接按进程拆分容器,比如业务进程一个容器,监控日志处理
或者本地数据放在另一个容器,并且有独立的生命周期。这时如果他们分布在网络中
两个较远的点,请求经过多次转发,性能会很差。
● 亲和性:可以实现就近部署,增强网络能力实现通信上的就近路由,减少网络的
损耗。如:应用A与应用B两个应用频繁交互,所以有必要利用亲和性让两个应用
的尽可能的靠近,甚至在一个节点上,以减少因网络通信而带来的性能损耗。
● 反亲和性:主要是出于高可靠性考虑,尽量分散实例,某个节点故障的时候,对
应用的影响只是 N 分之一或者只是一个实例。如:当应用采用多副本部署时,有
必要采用反亲和性让各个应用实例打散分布在各个节点上,以提高HA。
节点亲和性( NodeAffinity)
通过选择标签的方式,可以限制pod被调度到特定的节点上。
华为云 Stack
云容器引擎用户指南 1 产品介绍
文档版本 04 (2021-06-30) 版权所有 © 华为技术有限公司 20
节点反亲和性( NodeAntiAffinity)
通过选择标签的方式,可以限制pod不被调度到特定的节点上。
工作负载亲和性( PodAffinity)
指定工作负载部署在相同节点。用户可根据业务需求进行工作负载的就近部署,容器
间通信就近路由,减少网络消耗。
工作负载反亲和性( PodAntiAffinity)
指定工作负载部署在不同节点。同个工作负载的多个实例反亲和部署,减少宕机影
响;互相干扰的应用反亲和部署,避免干扰。
资源配额( Resource Quota)
资源配额( Resource Quotas)是用来限制用户资源用量的一种机制。
资源限制( Limit Range)
默认情况下, K8S中所有容器都没有任何CPU和内存限制。 LimitRange(简称limits)用
来给Namespace增加一个资源限制,包括最小、最大和默认资源。在pod创建时,强
制执行使用limits的参数分配资源。
环境变量
环境变量是指容器运行环境中设定的一个变量,您可以在创建容器模板时设定不超过
30个的环境变量。环境变量可以在工作负载部署后修改,为工作负载提供了极大的灵
活性。
在CCE中设置环境变量与Dockerfile中的“ ENV”效果相同。
应用服务网格( Istio)
Istio是一个提供连接、保护、控制以及观测功能的开放平台。
云容器引擎深度集成了应用服务网格,提供非侵入式的微服务治理解决方案,支持完
整的生命周期管理和流量治理能力,兼容Kubernetes和Istio生态。一键开启应用服务
网格后即可提供非侵入的智能流量治理解决方案,其功能包括负载均衡、熔断、限流
等多种治理能力。应用服务网格内置金丝雀、蓝绿等多种灰度发布流程,提供一站式
自动化的发布管理。基于无侵入的监控数据采集,深度整合应用性能管理( APM)能
力,提供实时流量拓扑、调用链等服务性能监控和运行诊断,构建全景的服务运行视

图 1-9 集群、 VPC、安全组和节点的关系
实例( Pod)
实例( Pod)是 Kubernetes 部署应用或服务的最小的基本单位。一个Pod 封装多个应
用容器(也可以只有一个容器)、存储资源、一个独立的网络 IP 以及管理控制容器运
行方式的策略选项。
图 1-10 实例( Pod)
容器( Container)
一个通过 Docker 镜像创建的运行实例,一个节点可运行多个容器。容器的实质是进
程,但与直接在宿主执行的进程不同,容器进程运行于属于自己的独立的命名空间。
工作负载
工作负载即Kubernetes对一组Pod的抽象模型,用于描述业务的运行载体,包括
Deployment、 Statefulset、 Daemonset、 Job、 CronJob等多种类型。
● 无状态工作负载: 即kubernetes中的“ Deployment”,无状态工作负载支持弹性
伸缩与滚动升级,适用于实例完全独立、功能相同的场景,如: nginx、
wordpress等。
华为云 Stack
云容器引擎用户指南 1 产品介绍
文档版本 04 (2021-06-30) 版权所有 © 华为技术有限公司 16
● 有状态工作负载: 即kubernetes中的“ StatefulSet”,有状态工作负载支持实例
有序部署和删除,支持持久化存储,适用于实例间存在互访的场景,如ETCD、
mysql-HA等。
● 创建守护进程集: 即kubernetes中的“ DaemonSet”,守护进程集确保全部(或
者某些)节点都运行一个Pod实例,支持实例动态添加到新节点,适用于实例在每
个节点上都需要运行的场景,如ceph、 fluentd、 Prometheus Node Exporter等。
● 普通任务: 即kubernetes中的“ Job”,普通任务是一次性运行的短任务,部署完
成后即可执行。使用场景为在创建工作负载前,执行普通任务,将镜像上传至镜
像仓库。
● 定时任务: 即kubernetes中的“ CronJob”,定时任务是按照指定时间周期运行的
短任务。使用场景为在某个固定时间点,为所有运行中的节点做时间同步。
图 1-11 工作负载与 Pod 的关系
编排模板
编排模板包含了一组容器服务的定义和其相互关联,可以用于多容器应用的部署和管
理。
镜像( Image)
Docker镜像是一个模板,是容器应用打包的标准格式,用于创建Docker容器。或者
说, Docker镜像是一个特殊的文件系统,除了提供容器运行时所需的程序、库、资
源、配置等文件外,还包含了一些为运行时准备的配置参数(如匿名卷、环境变量、
用户等)。镜像不包含任何动态数据,其内容在构建之后也不会被改变。在部署容器
化应用时可以指定镜像,镜像可以来自于容器镜像服务或者用户的私有Registry。例如
一个Docker镜像可以包含一个完整的Ubuntu操作系统环境,里面仅安装了用户需要的
应用程序及其依赖文件。
镜像( Image)和容器( Container)的关系,就像是面向对象程序设计中的类和实例
一样,镜像是静态的定义,容器是镜像运行时的实体。容器可以被创建、启动、停
止、删除、暂停等。
华为云 Stack
云容器引擎用户指南 1 产品介绍
文档版本 04 (2021-06-30) 版权所有 © 华为技术有限公司 17
图 1-12 镜像、容器、工作负载的关系
华为云 Stack
云容器引擎用户指南 1 产品介绍
文档版本 04 (2021-06-30) 版权所有 © 华为技术有限公司 18
命名空间( Namespace)
命名空间是对一组资源和对象的抽象整合。在同一个集群内可创建不同的命名空间,
不同命名空间中的数据彼此隔离。使得它们既可以共享同一个集群的服务,也能够互
不干扰。例如:
● 可以将开发环境、测试环境的业务分别放在不同的命名空间。
● 常见的pods, services, replication controllers和deployments等都是属于某一个
namespace的(默认是default),而node, persistentVolumes等则不属于任何
namespace。
服务( Service)
Service是将运行在一组 Pods 上的应用程序公开为网络服务的抽象方法。
使用Kubernetes,您无需修改应用程序即可使用不熟悉的服务发现机制。 Kubernetes
为Pods提供自己的IP地址和一组Pod的单个DNS名称,并且可以在它们之间进行负载平
衡。
Kubernetes允许指定一个需要的类型的 Service,类型 的取值以及行为如下:
● ClusterIP:集群内访问。通过集群的内部 IP 暴露服务,选择该值,服务只能够在
集群内部可以访问,这也是默认的 ServiceType。
● NodePort:节点访问。通过每个 Node 上的 IP 和静态端口( NodePort)暴露服
务。 NodePort 服务会路由到 ClusterIP 服务,这个 ClusterIP 服务会自动创建。
通过请求 :,可以从集群的外部访问一个 NodePort 服务。
● LoadBalancer:负载均衡。使用云提供商的负载均衡器,可以向外部暴露服务。
外部的负载均衡器可以路由到 NodePort 服务和 ClusterIP 服务。
七层负载均衡( Ingress)
Ingress是为进入集群的请求提供路由规则的集合,可以给service提供集群外部访问的
URL、负载均衡、 SSL终止、 HTTP路由等。
网络策略( NetworkPolicy)
NetworkPolicy提供了基于策略的网络控制,用于隔离应用并减少攻击面。它使用标签
选择器模拟传统的分段网络,并通过策略控制它们之间的流量以及来自外部的流量。
配置项( Configmap)
ConfigMap用于保存配置数据的键值对,可以用来保存单个属性,也可以用来保存配
置文件。 ConfigMap跟secret很类似,但它可以更方便地处理不包含敏感信息的字符
串。
密钥( Secret)
Secret解决了密码、 token、密钥等敏感数据的配置问题,而不需要把这些敏感数据暴
露到镜像或者Pod Spec中。 Secret可以以Volume或者环境变量的方式使用。
华为云 Stack
云容器引擎用户指南 1 产品介绍
文档版本 04 (2021-06-30) 版权所有 © 华为技术有限公司 19
标签( Label)
标签其实就一对 key/value,被关联到对象上,比如Pod。标签的使用我们倾向于能够
标示对象的特殊特点,并且对用户而言是有意义的,但是标签对内核系统是没有直接
意义的。
选择器( LabelSelector)
Label selector是Kubernetes核心的分组机制,通过label selector客户端/用户能够识别
一组有共同特征或属性的资源对象。
注解( Annotation)
Annotation与Label类似,也使用key/value键值对的形式进行定义。
Label具有严格的命名规则,它定义的是Kubernetes对象的元数据( metadata),并
且用于Label Selector。
Annotation则是用户任意定义的“附加”信息,以便于外部工具进行查找。
存储卷( PersistentVolume)
PersistentVolume( PV)是集群之中的一块网络存储。跟 Node 一样,也是集群的资
源。
存储声明( PersistentVolumeClaim)
PV 是存储资源,而 PersistentVolumeClaim (PVC) 是对 PV 的请求。 PVC 跟 Pod 类
似: Pod 消费 Node 资源,而 PVC 消费 PV 资源; Pod 能够请求 CPU 和内存资源,
而 PVC 请求特定大小和访问模式的数据卷。
弹性伸缩( HPA)
Horizontal Pod Autoscaling,简称HPA,是Kubernetes中实现POD水平自动伸缩的功
能。 Kubernetes集群可以通过Replication Controller的scale机制完成服务的扩容或缩
容,实现具有伸缩性的服务。
亲和性与反亲和性
在应用没有容器化之前,原先一个虚机上会装多个组件,进程间会有通信。但在做容
器化拆分的时候,往往直接按进程拆分容器,比如业务进程一个容器,监控日志处理
或者本地数据放在另一个容器,并且有独立的生命周期。这时如果他们分布在网络中
两个较远的点,请求经过多次转发,性能会很差。
● 亲和性:可以实现就近部署,增强网络能力实现通信上的就近路由,减少网络的
损耗。如:应用A与应用B两个应用频繁交互,所以有必要利用亲和性让两个应用
的尽可能的靠近,甚至在一个节点上,以减少因网络通信而带来的性能损耗。
● 反亲和性:主要是出于高可靠性考虑,尽量分散实例,某个节点故障的时候,对
应用的影响只是 N 分之一或者只是一个实例。如:当应用采用多副本部署时,有
必要采用反亲和性让各个应用实例打散分布在各个节点上,以提高HA。
节点亲和性( NodeAffinity)
通过选择标签的方式,可以限制pod被调度到特定的节点上。
华为云 Stack
云容器引擎用户指南 1 产品介绍
文档版本 04 (2021-06-30) 版权所有 © 华为技术有限公司 20
节点反亲和性( NodeAntiAffinity)
通过选择标签的方式,可以限制pod不被调度到特定的节点上。
工作负载亲和性( PodAffinity)
指定工作负载部署在相同节点。用户可根据业务需求进行工作负载的就近部署,容器
间通信就近路由,减少网络消耗。
工作负载反亲和性( PodAntiAffinity)
指定工作负载部署在不同节点。同个工作负载的多个实例反亲和部署,减少宕机影
响;互相干扰的应用反亲和部署,避免干扰。
资源配额( Resource Quota)
资源配额( Resource Quotas)是用来限制用户资源用量的一种机制。
资源限制( Limit Range)
默认情况下, K8S中所有容器都没有任何CPU和内存限制。 LimitRange(简称limits)用
来给Namespace增加一个资源限制,包括最小、最大和默认资源。在pod创建时,强
制执行使用limits的参数分配资源。
环境变量
环境变量是指容器运行环境中设定的一个变量,您可以在创建容器模板时设定不超过
30个的环境变量。环境变量可以在工作负载部署后修改,为工作负载提供了极大的灵
活性。
在CCE中设置环境变量与Dockerfile中的“ ENV”效果相同。
应用服务网格( Istio)
Istio是一个提供连接、保护、控制以及观测功能的开放平台。
云容器引擎深度集成了应用服务网格,提供非侵入式的微服务治理解决方案,支持完
整的生命周期管理和流量治理能力,兼容Kubernetes和Istio生态。一键开启应用服务
网格后即可提供非侵入的智能流量治理解决方案,其功能包括负载均衡、熔断、限流
等多种治理能力。应用服务网格内置金丝雀、蓝绿等多种灰度发布流程,提供一站式
自动化的发布管理。基于无侵入的监控数据采集,深度整合应用性能管理( APM)能
力,提供实时流量拓扑、调用链等服务性能监控和运行诊断,构建全景的服务运行视

 

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/333601.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号