• 产品概述
  • 操作流程
  • 产品优势
  • 应用场景
  • 计费简介
  • 名词概念
  • 使用限制

产品概述

比格云容器服务基于原生Kubernetes管理方案提供以容器为核心的解决方案。

有效解决了用户开发、测试及运维过程中的环境问题。

有效帮助用户降低成本,提高效率。

使用比格云,会涉及到以下基本概念:

集群:是指容器运行所需云资源的集合,包含了若干台云服务器、负载均衡器等云资源。

实例(Pod):由相关的一个或多个容器构成一个实例,这些容器共享相同的存储和网络空间。

工作负载:Kubernetes 资源对象,用于管理 Pod 副本的创建、调度以及整个生命周期的自动控制。

Service:由多个相同配置的实例(Pod)和访问这些实例(Pod)的规则组成的微服务。

Ingress:Ingress是用于将外部HTTP(S)流量路由到服务(Service)的规则集合。

镜像仓库:用于存放Docker镜像,Docker镜像用于部署容器服务。


操作流程

1 注册并登录账号


注册并登录容器服务控制台,完成容器服务创建,即可开始使用容器服务产品。


2 创建集群


根据创建集群页面,填写相关信息和购买资源服务,即可创建集群。


3 部署工作负载


支持使用镜像部署、YAML 文件编排两种方式部署工作负载。


4 完成工作负载创建后,通过监控、升级、伸缩等操作对 Pod 生命周期进行管理。


产品优势

产品优势 比格云容器服务 自建容器服务
灵活扩展 比格云容器服务与负载均衡集成,支持在多个容器之间分配流量。您只需指定容器配置和要使用的负载均衡器,容器服务管理程序将自动添加和删除。除此之外,容器服务可以自动恢复运行状况不佳的容器,保证容器数量满足您的需求,以便为应用程序提供支持。 需要根据业务流量情况和健康情况人工确定容器服务的部署,可用性和可扩展性差。
安全独立 采用独立专属云主机进行部署,采用分布式服务架构,保证服务故障自动恢复、快速迁移,实现服务和数据的安全、高可用。 自建容器服务受到内核影响,很难确保服务的稳定可靠。除此之外,租户、设备等模块隔离性都比较差。
快速部署 高效的BGP网络,保障了镜像的极速上传和下载。容器秒级启动,极大程度降低了运行所需要的成本,更加专注于业务本身。 容易网络质量无法保证,镜像创建效率无法保障。
成本可控 比格云容器服务没有任何附加费用。您只需为您创建的用于存储和运行应用程序的云服务资源(例如云服务器、共享存储、网络等)付费。 前期需要投入大量时间和金钱进行构建,维护,扩容等。
简单易用 比格云容器服务提供大规模容器集群管理、资源调度、容器编排、代码构建,屏蔽了底层基础构架的差异,简化了分布式应用的管理和运维。无需再操作集群管理软件,只需启动容器集群,并指定想要运行的任务即可,让您可以集中精力开发Docker化的应用程序。 自建容器涉及集群管理软件、配置管理系统。管理难度高,实现复杂。

应用场景

设备与容器运用管理

1 支持部署无状态工作负载、有状态工作负载、守护进程集、普通任务、定时任务等。

2 应用升级支持替换升级、滚动升级(按比例、实例个数进行滚动升级);支持升级回滚。

3 弹性伸缩支持节点和工作负载的弹性伸缩。


弹性伸缩

1 电商客户遇到促销、限时秒杀等活动期间,访问量激增,需及时、自动扩展云计算资源。

2 视频直播客户业务负载变化难以预测,需要根据CPU/内存使用率进行实时扩缩容。

3 游戏客户每天中午12点及晚上18:00-23:00间需求增长,需要定时扩容。


服务搭建

1 开箱即用与云容器引擎无缝对接,一键开启后即可提供非侵入的智能流量治理解决方案。

2 策略化智能路由无需修改代码,即可实现HTTP、TCP等服务连接策略和安全策略。


计费简介

容器服务暂不收取服务本身费用,用户只需支付对应资源创建费用即可,具体资源资费列表可参考官网价格计算器。


实例计费模式 包月 包年 按需计费
付款方式 预付费 预付费 购买时冻结费用,每小时结算
计费单位 元/月 元/月 元/小时
单价 单价较低 单价较低 单价较高

集群

是指容器运行所需云资源的集合,包含了若干台云服务器、负载均衡器等云资源。

容器

容器技术起源于Linux,是一种内核虚拟化技术,提供轻量级的虚拟化,以便隔离进程和资源。

尽管容器技术已经出现很久,却是随着Docker的出现而变得广为人知。

Docker是第一个使容器能在不同机器之间移植的系统。

它不仅简化了打包应用的流程,也简化了打包应用的库和依赖,甚至整个操作系统的文件系统能被打包成一个简单的可移植的包。

这个包可以被用来在任何其他运行Docker的机器上使用。

容器和虚拟机具有相似的资源隔离和分配方式,容器虚拟化了操作系统而不是硬件,更加便携和高效。


Node节点

Node是运行具体容器的主机,负责提供后具体的服务,并且本身具有自我修复能力。

(Node组件结构图)

1 kubelet

负责对pod对应容器创建,启停等一系列的任务,kubelet时刻watch着Master中的APIServer中的资源变动。

当有和自己相关的任务的时候就会调用Docker执行具体的任务。

2 kube-proxy

用于实现K8SService(需要提供的服务)的通信和负载均衡。

3 Pod

K8S不是直接运行的容器,而是操作Pod,把Pod作为原子单元管理。

一个Pod里面可运行多个容器,Pod里面运行的多个容器被捆绑在一起被统一调度不可分割。一个Pod的所有容器只能同时运行在一个Node上。


Master节点

(Master组件结构图)

1 ETCD

用户保存应用程序配置信息的守护进程,是一个k-v存储系统,存储内容为用用户发出的API请求中容器的具体要求。

2 APIServer

是K8S开放给用户的唯一入口,接受用户的指令。同时对指令进行规范检查,将合乎规范的话将其放入etcd中。

3 Scheduler

是作为调度器,负责的内容是寻找要部署的容器的最佳Node主从模式,只能有一个正在执行的服务。

4 ControllerLoop

使用轮询的方式保证每个容器的运行正常,当某个资源不可用,会尝试重启,要是还不行,会尝试初始化资源,比如尝试把容器铲掉,拉取镜像重启运行。


Pod

(Pod组件结构图)

Pod是Kubernetes创建或部署的最小/最简单的基本单位,一个Pod代表集群上正在运行的一个进程。

一个Pod封装一个应用容器(也可以有多个容器),存储资源、一个独立的网络IP以及管理控制容器运行方式的策略选项。

Pod代表部署的一个单位:Kubernetes中单个应用的实例,它可能由单个容器或多个容器共享组成的资源。


工作负载

1 Deployment

Deployment集成了上线部署、滚动升级、创建副本、恢复上线的功能。

在某种程度上,Deployment实现无人值守的上线,大大降低了上线过程的复杂性和操作风险。

2 DaemonSet

DaemonSet是这样一种对象(守护进程),它在集群的每个节点上运行一个Pod,且保证只有一个Pod。

这非常适合一些系统层面的应用,例如日志收集、资源监控等,这类应用需要每个节点都运行,且不需要太多实例

一个比较好的例子就是Kubernetes的kube-proxy。

3 StatefulSet

StatefulSet给每个,Pod提供固定名称,Pod名称增加从0-N的固定后缀,Pod重新调度后Pod名称和HostName不变。

StatefulSet通过HeadlessService给每个Pod提供固定的访问域名。

StatefulSet通过创建固定标识的PVC保证Pod重新调度后还是能访问到相同的持久化数据。

4 CronJob

CronJob是基于时间的Job,就类似于Linux系统的crontab文件中的一行,在指定的时间周期运行指定的Job。

任务负载的这种用完即停止的特性,特别适合一次性任务,比如持续集成。

5 Job

Job是Kubernetes用来控制批处理型任务的资源对象。

批处理业务与长期伺服业务(Deployment、Statefulset)的主要区别是批处理业务的运行有头有尾。

而长期伺服业务在用户不停止的情况下永远运行。

Job管理的Pod根据用户的设置把任务成功完成就自动退出(Pod自动删除)。


配置管理

1 ConfigMap

ConfigMap是一种用于存储应用所需配置信息的资源类型,用于保存配置数据的键值对,可以用来保存单个属性,也可以用来保存配置文件。

通过ConfigMap可以方便的做到配置解耦,使得不同环境有不同的配置。

2 Secret

Secret是一种加密存储的资源对象,您可以将认证信息、证书、私钥等保存在Secret中,

而不需要把这些敏感数据暴露到镜像或者Pod定义中,从而更加安全和灵活。

Secret与ConfigMap非常像,都是key-value键值对形式,使用方式也相同,不同的是Secret会加密存储,所以适用于存储敏感信息。


容器网络

为集群内容器分配在容器网络地址范围内的IP地址。


服务

1 Service

用户在Kubernetes中可以部署各种容器,其中一部分是通过HTTP、HTTPS协议对外提供七层网络服务,

另一部分是通过TCP、UDP协议提供四层网络服务。而Kubernetes定义的Service资源就是用来管理集群中四层网络的服务访问。

Kubernetes的ServiceTypes允许指定Service类型,默认为ClusterIP类型。

ServiceTypes的可取值以及行为描述如下:

ClusterIP

通过集群的内部IP暴露服务。当您的服务只需要在集群内部被访问时,请使用该类型。该类型为默认的ServiceType。

NodePort

通过每个集群节点上的IP和静态端口(NodePort)暴露服务。

NodePort服务会路由到ClusterIP服务,该ClusterIP服务会自动创建。

通过请求:,可从集群的外部访问该NodePort服务。

除了测试以及非生产环境以外,不推荐在生产环境中直接通过集群节点对外甚至公网提供服务。

从安全上考虑,使用该类型会直接暴露集群节点,容易受到攻击。

通常认为集群节点是动态的、可伸缩的,使用该类型使得对外提供服务的地址和集群节点产生了耦合。

LoadBalancer

负载均衡器,可以向公网或者内网暴露服务。负载均衡器可以路由到NodePort服务,或直接转发到处于内部网络条件下的容器中。

ClusterIP和NodePort类型的Service,在不同云服务商或是自建集群中的行为表现通常情况下相同。

而LoadBalancer类型的Service,由于使用了负载均衡进行服务暴露。

2 Ingress

Service是基于四层TCP和UDP协议转发的,而Ingress可以基于七层的HTTP和HTTPS协议转发,可以通过域名和路径做到更细粒度的划分。


服务网络

为集群内主机分配在节点网络地址范围内的IP地址。


命名空间

命名空间(Namespace)是对一组资源和对象的抽象整合。

在同一个集群内可创建不同的命名空间,不同命名空间中的数据彼此隔离。

使得它们既可以共享同一个集群的服务,也能够互不干扰。

使用限制

集群创建完成后,不可以切换Master机型操作系统。如需切换Node机型操作系统,需先将Node机型移出后再更换操作系统

云主机到期或被销毁可能导致Master或Node节点不可用

自行升级内部组件版本可能导致集群无法使用

技术交流企业群

点击发起工单