文档首页 > > 用户指南> 集群管理>

集群概述

集群概述

分享
更新时间:2021/04/25 GMT+08:00

随着应用程序开发向基于容器的方向发展,编排和管理资源的需求变得越来越重要。Kubernetes是一个开源的、功能强大的容器编排系统,用于管理容器化应用和服务,它提供了应用部署、规划、更新、维护的一种机制,让部署容器化的应用更加简单并且高效。

云容器引擎(Cloud Container Engine,以下简称CCE)是一种托管的Kubernetes服务,可进一步简化基于容器的应用程序部署和管理,您可以在CCE中方便的创建Kubernetes集群、部署您的容器化应用,以及方便的管理和维护。

前提条件

  • 创建首个集群前,您必须先确保已存在虚拟私有云,否则无法创建集群。若您已有虚拟私有云,可重复使用,无需重复创建。

    虚拟私有云为CCE集群提供一个隔离的、用户自主配置和管理的虚拟网络环境。创建方法请参见创建虚拟私有云和子网

  • 您需要新建一个密钥对,用于远程登录节点时的身份认证。

    若使用密码登录节点,请跳过此操作。创建方法请参见创建密钥对

  • 创建集群前,请提前规划好容器网段和服务网段。网段参数在集群创建后不可更改,需要重新创建集群才能调整,请谨慎选择。

创建集群须知

创建集群过程中会同步创建一些基础资源,列表如下:

表1 创建集群须知

资源名称

描述

控制节点及其相关资源

存在于云容器引擎资源租户下,用户不可见。

弹性云服务器(可选创建)

集群节点,即用户的计算资源,对应“弹性云服务器”中的ECS。

ECS命名规则为:集群名称-随机数,可自定义,批量创建时会再加一串随机数。

安全组

集群会创建两个安全组,一个用于管理集群控制节点的安全组,一个用于管理集群工作节点的安全组。

警告:

集群创建时自动创建的安全组以及安全组规则禁止删除,否则会导致集群异常。

  1. 控制节点安全组

    命名规则:集群名称-cce-control-随机数

    作用:

    • 出方向允许。
    • 其他节点访问控制节点kubernetes相关服务。
  2. 工作节点安全组

    命名规则:集群名称-cce-node-随机数

    作用:

    • 出方向允许。
    • 开放linux或windows远程登录(22、3389)。
    • kubernetes组件之间访问使用(4789、10250)。
    • kubernetes用于对外开放的端口(30000-32767)。
    • 相同安全组之间可以互相访问。

磁盘(可选创建)

分别给各个节点创建两个磁盘,一个是节点的系统盘,一个是给docker运行使用的数据盘。

弹性IP(可选创建)

需用户选择,给节点绑定弹性IP ,可以使节点访问外网。

集群优势

传统的应用部署方式是通过插件或脚本来安装应用。这样做的缺点是应用的运行、配置、管理、所有生存周期将与当前操作系统绑定,这样做并不利于应用的升级更新/回滚等操作,当然也可以通过创建虚拟机的方式来实现某些功能,但是虚拟机非常重,并不利于可移植性。

新的方式是通过部署容器方式实现,每个容器之间互相隔离,每个容器有自己的文件系统,容器之间进程不会相互影响,能区分计算资源。相对于虚拟机,容器能快速部署,由于容器与底层设施、机器文件系统解耦的,所以它能在不同云、不同版本操作系统间进行迁移。

容器占用资源少、部署快,每个应用可以被打包成一个容器镜像,每个应用与容器间成一对一关系也使容器有更大优势,使用容器可以在build或release的阶段,为应用创建容器镜像,因为每个应用不需要与其余的应用堆栈组合,也不依赖于生产环境基础结构,这使得从研发到测试、生产能提供一致环境。类似地,容器比虚拟机轻量、更“透明”,这更便于监控和管理。

集群(Cluster)是容器运行所需云资源的集合,包含了若干云服务器节点(物理服务器或者虚拟机)、负载均衡、虚拟私有云等华为云资源,您可以在集群中运行您的应用程序。在CCE中,我们可以创建若干集群,每个集群可以创建多个容器,每个容器里面运行一个应用实例,然后通过内置的负载均衡策略,实现对这一组应用实例的管理、发现、访问,而这些细节都不需要运维人员去进行复杂的手工配置和处理。

集群架构

CCE采用兼容标准的Kubernetes集群,Kubernetes集群属于主从分布式架构,主要由Master和Worker Node组成,以及包括客户端命令行工具kubectl和其它附加项。因此,在CCE集群中至少包含一个Master和多个Worker Node,这些Worker Node称为工作节点,这些节点都运行在Kubernetes集群编排系统中。

下图简要介绍了CCE集群的架构:

图1 集群架构图
  • Master:管控集群的管理面节点,提供Kubernetes核心服务和应用程序工作负载的业务流程,对集群进行调度管理。Master Node由API Server、Scheduler、Cluster State Store和Controller-Manager Server所组成。
  • Node:业务运行的工作节点,用于运行应用程序的容器工作负载。Worker Node包含kubelet、kube proxy和Container Runtime。
  • kubectl:用于通过命令行与API Server进行交互,而对Kubernetes进行操作,实现在集群中进行各种资源的增删改查等操作。
  • replication Controller:副本控制器,用于伸缩副本数量。
  • Pod:实例(Pod)是Kubernetes部署应用或服务的最小的基本单位。一个Pod封装多个应用容器(也可以只有一个容器)、存储资源、一个独立的网络IP以及管理控制容器运行方式的策略选项。
  • Container:容器。一个通过Docker镜像创建的运行实例,一个节点可运行多个容器。容器的实质是进程,但与直接在宿主执行的进程不同,容器进程运行于属于自己的独立的命名空间。
  • Label:标签。其实就一对key/value ,被关联到对象上,比如Pod、标签的使用我们倾向于能够标示对象的特殊特点,并且对用户而言是有意义的,但是标签对内核系统是没有直接意义的。
  • Service:服务,将运行在一组Pods上的应用程序公开为网络服务的抽象方法。
  • 在创建、删除、扩容和缩容集群的操作中,请不要在统一身份认证服务(IAM)中执行权限变更或修改的操作,可能会导致创建、删除、扩容和缩容集群执行失败。
  • CCE节点的容器网络canal会使用一个网段作为容器网络的网段,该网段在创建集群时可配置,默认为172.16.0.0/16;docker服务也会默认创建一个docker0的网桥,docker0的默认地址为172.17.0.1。创建集群时,请确保集群中VPC(虚拟私有云)所在的网段不能和上述两个网段重复。使用VPC的对等连接功能时,对端的VPC也不能和上述两个网段重复。
分享:

    相关文档

    相关产品