腾讯蓝鲸容器管理平台正式发布!

蓝鲸容器管理平台(BCS,Blueking Container Service)是高度可扩展、灵活易用的容器管理服务。支持社区原生 Kubernetes 模式,用户无需关注基础设施的安装、运维和管理,只需要调用简单的 API,或者在页面上进行简单的配置,便可对容器进行启动、停止等操作,查看集群、容器及服务的状态,以及使用各种组件服务。

产品架构图

产品功能

模板集使用介绍

在 BCS 中,模板集合是 Kubernetes 配置文件模板的集合。您可以通过将多个应用的配置构成一个模板集,来简化服务管理的复杂度;您还可以将模板里面需要频繁修改的数据设置成变量,以方便维护。

通过『模板集』+『变量』来管理您的业务将非常方便。

1、理解“服务”

如果您的服务由多个应用构成,通过 模板集 + 变量 生成 “应用” 来管理您的服务将会非常方便。

为了方便大家理解,本文将以一个简单的 Nginx 服务为例来说明。该服务下只有一个 Nginx 应用,通过修改模板中 NGINX_PORT 变量的值,将应用以不同的端口部署到不同的命名空间中。

2、创建模板集

推送镜像到仓库

在创建模板前,先通过以下几个步骤将 Nginx 应用的镜像推送到蓝鲸容器服务的镜像仓库中。

获取镜像的压缩包

在本地执行 docker save 获取镜像压缩包,您也可以直接点击下载 nginx.tar

docker pull nginx
docker save nginx > nginx.tar

上传镜像

选中【仓库】菜单的【项目镜像】页面,参考 Harbor 仓库使用指南,通过命令行工具来推送镜像。

创建项目模板集

选中【模板集】菜单,点击【添加模板集】,选择【表单模式】。进入创建模板集页面后,可以在模板集定义 Deployment、Service 等资源。本文的案例中,只需要创建一个 Deployment。首先填入一些基本信息,包括名称、描述,实例数量。Kubernetes 使用选择器(spec.selector.matchLabels)关联资源,所以在创建模板的时候需要给应用打一个固定的标签,并且把这个标签添加到选择器中。点击下方的 【Pod 模板设置】,将网络策略设置为 Host 模式,可以直接使用主机网络,将 Nginx 容器端口对外暴露。

接着定义 Nginx 容器,需要填写名称、描述,选择 Nginx 镜像,同时将容器端口设置成变量,这样可以将应用以不同的端口部署到不同的命名空间中(nginx默认监听80端口,这里的变量使用仅为示例效果,实际指定时设置为80)。

点击上方的【保存】按钮,将模板集的保存到一个版本中。

3、设置变量

一份模板集,通过设置变量,可以实例化出不同的模板集实例。变量有 3 种类型:全局变量、集群变量和命名空间变量。

  • 全局变量:一个项目下只会有一个值的变量。如系统变量里面的:项目 ID、业务 ID
  • 集群变量:同一个变量可以针对不同的集群设置不同的值。如系统变量里面的:集群 ID、仓库域名
  • 命名空间变量:同一个变量可以针对不同的命名空间设置不同的值

注意:同一个项目下变量的 key 不允许重复

更多变量管理内容可点击这里查看

4、创建服务示例

选中【模板集】菜单,点击【实例化】按钮进入实例化页面,选择模板集、命名空间,点击【创建】按钮完成实例化操作。

5、确认完成

应用部署完成后,您可以在容器服务左侧导航中点击【应用】,查看 Nginx 服务应用实例,并可以通过 Host IP 和配置的容器端口访问服务。

镜像仓库使用指南

1、仓库

容器服务采用 Harbor 做镜像仓库。仓库分为公共镜像和项目镜像,公共镜像可以被所有项目共享,项目镜像只有当前项目有权限访问。

2、Harbor 镜像仓库简介

Harbor 是 VMware 公司开源的企业级 Docker Registry 管理项目。在 Harbor 仓库中,用户和仓库都是基于项目进行组织,用户基于项目可以拥有不同的权限。

Harbor 项目类型分为公共仓库和私有仓库两种类型,其中

  • 公共仓库:任何使用者都可以获取这个仓库中的镜像。
  • 私有仓库:只有被授予权限的用户可以获取这个仓库中的镜像。

更多关于 Harbor 项目和用户的使用指引,请参考 Harbor 的用户手册

3、登录服务中的 Harbor 仓库

获取项目仓库账号

选中【的【Charts Helm】菜单中仓库】,点击右上角【如何推送 Helm Chart 到项目仓库】指引,可以获取仓库信息。

具体包含以下内容:

  • 镜像仓库地址,下文用<registry_url>表示(注意:地址包含端口)。<registry_url>实际是服务上(如集群中的 Node 节点)配置的内网 consul 域名,如果需要浏览器或者本地终端访问,可以本地配置 hosts,如10.0.0.1 <registry_url>,其中10.0.0.1是<registry_url>后端服务器上的 IP(如外网 IP,保证本地可访问)
  • 镜像仓库用户名和密码 (Harbor 中的一个项目账号,可以上传 镜像 和 Charts)
  • 项目 code,下文用<project_code>表示,如上图中的demoproj1

登录镜像仓库

docker login --username=<username> <registry_url>
Password:
Login Succeeded

注意:镜像仓库地址包含端口。

推送镜像

推送镜像之前,要先将镜像 tag 为满足 Harbor 项目前缀要求的格式。

例如需要将本地镜像nginx:1.18.0推送到当前项目下,首先将镜像按下面的命令重新 tag。

docker tag nginx:1.18.0 <registry_url>/<project_code>/nginx:1.18.0
docker push <registry_url>/<project_code>/nginx:1.18.0

拉取镜像

拉取项目镜像前需先完成登录,拉取公共镜像可以不登录。

docker pull <registry_url>/<project_code>/nginx:1.18.0

4、登录 Harbor Web仓库

获取Harbor

  • 获取项目仓库账号

在 【Chart 仓库】菜单下,点击【查看项目 Chart 仓库配置信息】后,可以获取 Harbor 的项目账号,访问项目(BCS 中新建的项目)仓库。

  • 获取 Harbor 管理员账号

常用环境变量 中可以找到 Harbor 的用户名HARBOR_SERVER_ADMIN_USER以及密码HARBOR_SERVER_ADMIN_PASS。

访问 Harbor Web 端

  • 项目仓库账号视角

通过浏览器可以访问地址 <registry_url>,进入 Harbor 管理页面,从中可以看到项目的访问级别有“公开”和“私有”。

在上图中点击 项目仓库 joyfulgame,可以看到有 2 个镜像,其中joyfulgame是<project_code>。

点击 【Helm Charts】页面,可以看到仓库中上传的 Charts。

  • Harbor 管理员账号 Web 端

使用管理员账号,可以实现用户管理、仓库管理、复制管理、配置管理。

更多产品功能可点击这里进入产品文档

场景案例

快速构建 Nginx 集群

1、情景

传统的 Nginx 集群要先部署多个 Nginx 节点,然后通过 upstream 统一一个入口提供给用户访问。 该过程操作繁琐,接下来看 BCS(容器管理平台) 如何通过 容器调度 快速构建 Nginx 集群。

2、前提条件

  • K8S 基本概念,包含 DeploymentServices
  • 完成 BCS 部署
  • 准备 2 台云主机:4 核 8 G,不低于 CentOS 7,K8s Master 和 Node 各 1 台
  • 完成上述 2 台云主机的 Agent 安装 ,并分配至 CMDB 业务下

3、操作步骤

1.新建集群

2.BCS 快速构建 Nginx 集群

4、新建集群

启用容器服务

在 BCS 首页,点击新建项目,如欢乐游戏(demo)。

然后选择容器编排类型为 Kubernetes ,关联 前提条件 中提到的 CMDB 业务,点击启用容器服务。

新建集群

启用容器服务后,进入容器服务欢迎页,点击创建容器集群。

按提示填写集群的基本信息。

容器服务的集群划分和 传统单体应用在 CMDB 中的集群划分很类似,可以按照地域(如华北区)或者完全独立的应用集合(微信区)来划分。

选择 1 台云主机作为 Master。

点击确定后,集群开始初始化。

点击节点管理

点击添加节点,按提示节点添加。

至此,新建集群完毕。可以看到集群的基础信息。

另外,在集群的设置(⋮)下拉菜单中,可以看到集群主要性能指标。

5、BCS 快速构建 Nginx 集群

新建命名空间

新建命名空间dev。

新建模板集

模板集,可以类比为 K8S 中 Helm 的Charts,在 K8S 编排中,是 K8S 对象的集合:Deployment(无状态)、StatefulSet(有状态)、DaemonSet(守护进程集)、Job(定时任务)、Configmap(配置项)、Secret(保密字典),具体参见 模板集使用介绍 。

打开菜单[模板集],新建模板集web-nginx。

按提示,填写Deployment

填写Service

实例化

检查部署效果

在菜单网络 -> Services中,找到刚实例化的 Service web-nginx。

在菜单[应用] -> [Deployment]中可以找到 web-nginx。

以及其运行指标:

通过访问 Node+NodePort,可以查看刚刚部署 Nginx 集群的版本号。

[root@ip-10-0-5-94-n-bcs-k8s-40015 ~]# curl 10.0.5.94:30008 -I
HTTP/1.1 200 OK
Server: nginx/1.12.2
Date: Thu, 08 Aug 2019 09:11:42 GMT

通过访问Service IP + Port,也可以查看刚部署 Nginx 的版本号。

[root@ip-10-0-5-94-n-bcs-k8s-40015 ~]# curl 10.254.11.4:8088 -I
HTTP/1.1 200 OK
Server: nginx/1.12.2
Date: Thu, 08 Aug 2019 09:12:33 GMT
Content-Type: text/html
Content-Length: 612
Last-Modified: Tue, 11 Jul 2017 13:29:18 GMT
Connection: keep-alive
ETag: "5964d2ae-264"
Accept-Ranges: bytes

更多场景案例可点击这里进入官网文档查看

下载部署

蓝鲸社区版V6.0.3点击下载

容器管理平台点击下载

BCS部署文档:点击跳转

部署福利活动:点击跳转

BCS目前已正式对外开源,欢迎共建

硬件要求

  • 系统版本:CentOS 7(推荐使用)
  • 服务器数量:3台(体验环境)

数据库服务器

BCS后台服务器

容器监控服务器

4核+8G+200G磁盘

4核+8G+100G磁盘

4核+4G+100G磁盘

如何使用蓝鲸容器管理平台

视频内容

其他渠道观看教程视频

腾讯课堂:点击这里

系列课程及相关PPT可进入腾讯课堂获取

腾讯视频:点击这里

高清视频可进入腾讯视频观看

问题咨询及反馈

1、蓝鲸问答社区--部署安装板块(专人解答):点击跳转

2、蓝鲸问答社区--产品使用板块(专人解答):点击跳转

本站文章资源均来源自网络,除非特别声明,否则均不代表站方观点,并仅供查阅,不作为任何参考依据!
如有侵权请及时跟我们联系,本站将及时删除!
如遇版权问题,请查看 本站版权声明
THE END
分享
二维码
海报
腾讯蓝鲸容器管理平台正式发布!
Kubernetes 是基于 Google borg 系统开源的项目,集成了 资源调度 和 应用编排 的能力,面向分布式应用、微服务和大规模集群管理。
<<上一篇
下一篇>>