一、魔方云概述

 

        LinkCloud魔方云,是基于以docker为代表的容器技术,为企业提供镜像构建、DevOps、多云容器管理的新一代企业PAAS平台。魔方云容器服务使用目前业界最广泛使用的编排工具 Kubernetes 对容器进行编排,轻松地管理各种环境的Kubernetes,满足IT需求并为DevOps团队提供支持。

        魔方云用户可以通过自定义添加节点集群来创建Kubernetes集群,也可以使用GKE,AKS和EKS等云Kubernetes服务来创建集群,用户还可以导入和管理现有的Kubernetes集群。

        魔方云致力于打造以应用服务为中心的云计算平台,帮助企业实现持续创新,为开发与运维者提供高效敏捷的生产环境以及优质的使用体验。魔方云提供了一个直观的用户界面来管理他们的服务容器,用户不需要深入了解Kubernetes概念就可以使用魔方云,并且包含应用市场,支持一键式部署应用。

二、准备工作

  1.  单节点最低配置2C4G,推荐4C8G;HA最低配置4C8G;
  2. 关闭firewalld等类似控制访问的服务;
  3. 机器使用root账户;
  4. 预安装docker;

三、集群管理

3.1 创建集群
3.1.1 通过云厂商节点接入(阿里云为例)

操作步骤
1. 登录魔方云容器平台。
2. 在top栏选择全局模式下,在左侧导航栏中,单击【集群】,进入集群列表页面。
3. 在集群列表页面中,单击【添加集群】。如下图所示:

    选择集群的添加方式
4. 在tab栏中,选择云厂商节点,然后选中Aliyun Ecs

5. 填写集群名称。

   集群名称应包含 1-63个字符,可包含数字、小写英文字符或连字符(-);不支持中文字符

6. 成员角色

控制哪些用户可以访问集群,以及他们拥有的对其进行更改的权限。可为集群添加多个成员,并选择角色权限。
名称下拉选择必须先在全局【成员】菜单下添加成员,否则下拉为空;角色有三种权限选择:Ower、Member、Read Only。

注意:删除成员不会删除其项目权限

7. 集群节点池配置

主机池名称前缀:用于主机池的名称。

主机数量:
填写所需的主机数量。建议设置数量为奇数,设置偶数是对硬件的浪费,因为它不会增加仲裁。
主机模板:若有主机模板;则下拉选择主机模板即可;若无主机模板,需要添加主机模板,点击个人中心,选择【主机模板】即可添加模板。
Etcd、Control、Worker:若集群为单节点,则Etcd、Control和Worker必须全选;若集群为多节点,可以自由选择,只需保证在多节点上都有Etcd、Control和Worker即可。

8. 集群选项。自定义Kubernetes集群选项。

表单输入

Kubernetes版本:您可根据需要下拉选择 Kubernetes 版本。
网络组件:支持flannel、calico、canal和weave选择。

Flannel: 最成熟、最简单的选择 ,不支持隔离策略。

Calico: 性能好、灵活性最强,目前的企业级主流,不支持隔离策略。

Canal: 将Flannel提供的网络层与Calico的网络策略功能集成在一起,支持隔离策略。

Weave: 独有的功能,是对整个网络的简单加密,会增加网络开销,不支持隔离策略。

模式:仅支持创建阿里云Flannel下有效。
项目网络隔离:选择是否进行隔离策略。

编辑YAML

注意:使用编辑YAML方式编辑集群选项时,不要使用Tabs,Tabs字符在yaml中不能解析。
3.1.1 添加自有节点

操作步骤
1. 登录魔方云容器平台
2. 在top栏选择全局模式下,在左侧导航栏中,单击【集群】,进入集群列表页面。
3. 集群列表页面中,单击【添加集群】。如下图所示:

4. 在tab栏,选择【添加自有节点】按钮​

5. 填写集群名称。

   集群名称应包含 1-63个字符,可包含数字、小写英文字符或连字符(-);不支持中文字符

6. 成员角色

控制哪些用户可以访问集群,以及他们拥有的对其进行更改的权限。可为集群添加多个成员,并选择角色权限。
名称下拉选择必须先在全局菜单下添加成员,否则下拉为空;角色有三种权限选择:Ower、Member、Read Only。

注意:删除成员不会删除其项目权限

7. 集群选项。自定义Kubernetes集群选项。

表单输入

Kubernetes版本:您可根据需要下拉选择 Kubernetes 版本。
网络组件:支持flannel、calico、canal和weave选择。

Flannel: 最成熟、最简单的选择 ,不支持隔离策略。

Calico: 性能好、灵活性最强,目前的企业级主流,不支持隔离策略。

Canal: 将Flannel提供的网络层与Calico的网络策略功能集成在一起,支持隔离策略。

Weave: 独有的功能,是对整个网络的简单加密,会增加网络开销,不支持隔离策略。

模式:仅支持创建阿里云Flannel下有效。
项目网络隔离:选择是否进行隔离策略。

编辑YAML

注意:使用编辑YAML方式编辑集群选项时,不要使用Tabs,Tabs字符在yaml中不能解析。

8. 单击【下一步】,进行自定义节点运行设置。

9. 自定义节点运行命令

角色选择:一台节点可以对应多个角色,但是每个集群至少需要一个Etcd角色、一个Control角色、一个Worker角色,可根据自有节点需求选择角色。 节点地址:为节点配置公网地址和内网地址, 如果为VPC网络的云服务器,如果不指定公网地址节点将无法获取到对应公网IP。 节点名称:自定义节点显示的名称,不显示实际的节点名。 节点标签:应用于节点的可选标签,标签由输入键和对应的值组成。 ​

说明:
1. 键是必填项,值是选填项;
2. 键名称部分必须由字母数字字符、“-”、“_”或“.”组成,并且必须以字母数字字符(例如“my name”或“my.name”或“123 abc”开头和结尾, 最多 63 个字符。
3. 值名称部分必须由字母数字字符、“-”、“_”或“.”组成,并且必须以字母数字字符(例如“my name”或“my.name”或“123 abc”开头和结尾, 最多 63 个字符。
4. 同一个资源,标签键不能重复,相同标签键(Key)的标签会被覆盖。

3.2 集群总览

操作步骤
已在魔方云容器平台创建集群。当集群状态处于Running或Updating时,集群总览才有数据展示。
集群状态说明如下:

Runing

集群正常运行。

Preparing

集群正在创建,正在申请云资源。

Updating

正在升级集群中。

Removing

正在删除集群中。

Unavailable

当前集群不可用,集群存在异常。

Runing

集群正常运行。

Preparing

集群正在创建,正在申请云资源。

Updating

正在升级集群中。

Removing

正在删除集群中。

Unavailable

当前集群不可用,集群存在异常。

操作步骤
1.登录魔方云容器平台。
2.在全局模式下,选择【集群】菜单,然后在集群列表里点击对应集群的【查看详情】按钮;
在集群模式下,选择【集群】菜单;
3.集群总览。您可查看应用状态、组件状态和资源监控图表。

CPU、Memory和Pods:分别监控CPU、Memory和Pods的使用状态;外环表示预留的使用量,内环表示实际的使用量。
应用状态:显示当前应用的状态,绿色表示正常,红色表示异常。
节点状态:显示当前集群的节点状态。
组件状态:Kubernetes 集群的组件通常部署在 kube-system 命名空间下,包括 scheduler、controller-manager和 etcd 和Nodes等核心组件。
节点使用率:显示使用量前三的节点的内存和CPU使用率。
配置信息:展示当前集群的提供者、版本、节点数、CPU大小、内存大小和创建时间。

集群监控:提供CPU使用率、CPU负载、内存使用率、磁盘使用率、磁盘I/O、网络I/O和网路数据包的资源监控,可自定义时间段选择查看。

Kubernetes组件监控:API Server请求延迟、API Server请求速率、调度失败的Pod、ingress控制连接数。
管理集群

● 升级集群 1. 登录魔方云容器平台。
2. 进入全局集群列表,选择需要升级的集群,下拉右上角菜单,点击【编辑】进行升级;

进入集群总览仪表盘,在面包屑导航栏右上角点击下拉菜单,选择【编辑】进行升级

● 删除集群:入口位置同升级集群。在云平台中创建的关联资源(如卷,负载均衡器和网络)不会自动删除。
● Kubeconfig文件:可以复制文件,然后下载kubectl(如有需要)并运行。
● 备份:将集群备份到local存储。
● 恢复:选择可用的备份进行数据恢复。
● 更新证书:更新集群的证书。提供更新所有服务证书(CA证书不变)和更新单个服务(CA证书不变)两种方式。

工作负载

部署工作负载

前提条件

注意:
使用工作负载相关服务,当前集群状态应为Running状态。

操作步骤

1. 登录魔方云容器平台。
2. 选择所需部署工作负载的集群,在集群下对应的项目进入。

3. 在左侧导航栏中,点击【工作负载】,进入工作负载列表页,点击右上角【部署服务】,如图所示:

3. 在左侧导航栏中,点击【工作负载】,进入工作负载列表页,点击右上角【部署服务】,如图所示:

▶ 基本信息

在“部署服务”页面,填写部署工作负载的基本信息。如下图所示::

主要参数信息如下:
名称:集群名称应包含 1-63个字符,可包含数字、小写英文字符或连字符(-)。
类型:下拉选择工作负载的类型,提供无状态(Deployment)、有状态(StatefulSet)、DaemonSet、Cron定时运行和Job五种类型选择,使用场景如下图所示:

 

无状态(Deployment)

·        定义Deployment来创建Pod和ReplicaSet

·        滚动升级和回滚应用

·        扩容和缩容

·        暂停和继续Deployment

 

 

有状态(StatefulSet)

·        稳定,唯一的网络标志。

·        稳定,持久化存储。

·        有序,优雅地部署和 scale。

·        有序,优雅地删除和终止。

·        有序,自动的滚动升级。

 

DaemonSet

·        运行集群存储 daemon。

·        在每个 Node 上运行日志收集 daemon。

·        在每个 Node 上运行监控 daemon。

Cronjob

·        在给定时间点只运行一次

·        周期性地在给定时间点运行

Job

Job负责批处理任务,即仅执行一次的任务,它保证批处理任务的一个或多个Pod成功结束。

命名空间:下拉选择命名空间,或创建新的命名空间。您可以使用命名空间实现资源和服务的隔离。

拉取镜像策略:为你的镜像更新选择一个操作策略,提供总是拉取、从不、不存在则拉取三种策略
◆ 总是拉取:总是从远程拉取该镜像。
◆ 不存在则拉取:默认使用本地镜像,若本地无该镜像则远程拉取该镜像。
◆ 从不:只使用本地镜像,若本地没有该镜像将报异常。

容器规格:提供2X、4X、8X、16X和32X快捷选择,如不选择默认2X配置;根据实际需要,可自定义容器规格,
◆ 资源预留:即为该应用预留资源额度,包括 CPU 和内存两种资源,即容器独占该资源,防止因资源不足而被其他服务或进程争占资源,导致应用不可用。
◆ 资源限制:可指定该应用所能使用的资源上限,包括 CPU 和内存两种资源,防止占用过多资源。

端口映射:您需要添加服务端口和容器端口,若类型选择为节点端口,还需要自己设置节点端口,防止端口出现冲突。支持 TCP/UDP 协议。支持四种网络模式如下:

网络模式:
NodePort:所有节点端口均可访问;
HostPort:仅Pod所在节点端口可访问;
集群IP:集群内部访问;
L4层负载均衡器:对接公有云负载均衡服务;

端口映射:您需要添加服务端口和容器端口,若类型选择为节点端口,还需要自己设置节点端口,防止端口出现冲突。支持 TCP/UDP 协议。支持四种网络模式如下:

▶ 监控告警和弹性伸缩

5. 在“部署服务”页面,填写部署工作负载的监控告警和弹性伸缩信息。如下图所示:

(1)workload告警
workload告警:选择是否开启告警。未开启告警,则workload告警信息不可配置。 告警条件:滑动滚动条选择触发告警的条件。
选择告警组:下拉选择工作负载告警组和添加新的告警组,并填写告警规则名称;
(2)工作负载伸缩和告警

说明:
若需要为工作负载/监控或者自定义监控/告警加入弹性伸缩,必须为项目开启监控;
可以自定义添加多个自定义监控或者工作负载监控;

弹性伸缩:选择是否为工作负载伸缩/监控加入弹性伸缩。
◆ 开启弹性伸缩,需填写HPA最大最小副本数,以及在工作负载配置项询问是否加入伸缩;
◆ 关闭弹性伸,将不再询问是否加入伸缩,页面不显示配置伸缩项。 监控项:支持为CPU、内存、网络数据包(Transmit packets)、网络数据包(Receive packets)、网络I/O(Transmit)、网络I/O(Receive)、磁盘I/O(Write)、磁盘I/O(Read)。
加入伸缩:询问是否加入伸缩,开启后,需填写触发伸缩阈值。
工作负载告警:询问是否开启告警。
◆ 关闭工作负载告警,告警配置项不显示;
◆ 开启工作负载告警,填写配置信息;下拉选择告警组,并为告警组命名;选择触发的条件和填写触发的告警阈值;选择持续时间;

注意:
Workload告警不需要开启监控;工作负载告警必须开启当前集群监控才可以配置;

(3)自定义监控/告警

注意:
需要为当前集群开启监控才可以配置自定义监控和弹性伸缩;

图标名称:自定义需要监控的图标名称。
表达式:先下拉选择workload,在下拉选择该workload下面的表达式, 表达式支持加减乘数函数和速率等。选择完表达式,右侧将会出现该表达式的图表信息。
Y轴单位:填写Y轴单位。
加入伸缩:开启后,需填写触发伸缩阈值,右侧图标可根据阈值预览变化效果;
自定义监控告警:询问是否开启告警。
◆ 关闭工作负载告警,告警配置项不显示;
◆ 开启工作负载告警,填写配置信息;下拉选择告警组,并为告警组命名;选择触发的条件和填写触发的告警阈值;选择持续时间;

(4)添加自定义指标

添加自定义指标,将端口暴露,支持http和https协议。

▶ 自定义配置

命令:在默认情况下,镜像会运行默认命令,如果想运行特定命令需配置命令。
环境变量:环境变量是指容器运行环境中设定的一个变量,为创建的工作负载提供极大的灵活性。以添加键值对的形式来设置环境变量。
节点调度:可选两种情况进行节点调度配置。
● 指定节点运行所有Pods。下拉选择当前集群节点。
● 为每一个Pod自动选择符合调度规则的节点
通过 Node 节点的 Label 标签进行设置,节点调度支持必须、最好、首选。
◆ 必须,一定要满足,您可以定义多条必须规则,但只需满足其中一条。
◆ 最好,不一定满足,您可定义多条最好规则。
◆ 首选,首先满足,您可定义多条首选规则。
设置调度容忍,可以为每一个类型的节点调度规则添加多个调度容忍,根据节点上运行的 Pod 的标签(Label)来进行调度,匹配的表达式有Equals和Exists。可选的效果有NoSchedule、NoExecute和(Custom)

健康检查:支持存活检查(liveness)和就绪检查(Readiness),根据用户需要,定时检查容器健康状况。
● 存活探针: 监测到容器实例不健康时,重启应用。
● 就绪探针:监测到容器实例不健康时,将工作负载设置为未就绪状态,业务流量不会导入到该容器中。

请求类型和配置说明如下:

 

HTTP请求

即向容器发送一个 HTTPget 请求,支持的参数包括:

  • 路径:访问 HTTP server 的路径
  • 端口:容器暴露的访问端口或端口名,端口号必须介于 1~65535。

 

HTTPS请求

即向容器发送一个 HTTPSget 请求,支持的参数包括:

  • 路径:访问 HTTPS server 的路径
  • 端口:容器暴露的访问端口或端口名,端口号必须介于 1~65535。

 

 

TCP端口检查

即向容器发送一个 TCP Socket,kubelet 将尝试在指定端口上打开容器的套接字。 如果可以建立连接,容器被认为是健康的,如果不能就认为是失败的。支持的参数包括:

  • 端口:容器暴露的访问端口或端口名,端口号必须介于 1~65535。

 

状态码检查

通过在容器中执行探针检测命令,来检测容器的健康情况。支持的参数包括:

  • 命令行:用于检测容器健康情况的探测命令。

标签/注释:对资源进行额外的元数据设置,例如 Label 和 Annotation。
6. 点击右上角【部署】,完成对工作负载的部署。

工作负载管理
升级

操作步骤

在Docker Hub上发布新版本的应用程序镜像后,您可以将运行旧版本应用程序的所有工作负载升级到新版本。
1. 在项目视图中,点击【工作负载】,进入工作负载列表页面;
2. 找到您要升级的工作负载,然后在操作列点击【编辑】;
3. 将Docker镜像更新为Docker Hub上应用程序镜像的更新版本;
4. 更改你所需要更改的其他任何选项;
5. 单击右上角【升级】按钮;

结果:
工作负载开始根据您的规范升级其容器。 请注意,扩大部署规模或更新升级/扩展策略不会导致Pod重新创建。

回滚

操作步骤

有时出于调试目的或因为升级未按计划进行而需要回滚到应用程序的先前版本。
1. 在项目视图中,点击【工作负载】,进入工作负载列表页面;
2. 找到您要回滚的工作负载,然后在操作列下拉菜单中点击【回滚】;
3. 选择要回滚的修订版。
4. 单击【回滚】;

结果: 您的工作负载将还原为您选择的先前版本。 等待几分钟,以完成操作。

删除容器

注意:
只有一个容器作为主容器时,不能被删除。

操作步骤

1. 在项目视图中,点击【工作负载】,进入工作负载列表页面;
2. 找到您要删除的容器所在的工作负载,然后在操作列下拉菜单中点击【编辑】;
3. 进入容器选择页面,找到需要删除的容器,点击【删除】 ;

访问入口

访问入口是允许访问到集群内 Service 的规则的集合,您可以通过配置转发规则,实现不同 URL 可以访问到集群内不同的 Service,可以为工作负载添加入口。 操作步骤

操作步骤

1. 登录魔方云容器管理平台。
2. 在项目视图下,在左侧导航栏中,单击【访问入口】进入访问入口列表页面。
3. 在访问入口列表页,单击右上角【添加访问规则】

4. 新建访问入口,如下图所示:

访问入口名称:自定义;
命名空间:选择命名空间,根据实际需求进行选择;
规则:根据实际需求进行设置;
● 域名:默认自动生成sslip.io域名,可自定义域名;
● 目标后端:填写目标后端访问路径、提供服务和工作负载两种目标后端类型选择、监听端口默认为80,经根据实际需要选择;

SSL/TLS证书:选用合适的服务器证书能够确保访问安全,根据实际需要为证书添加域名;
标签和注释:用于调度决策的键值对。
后端重写请配置注释: 键: nginx.ingress.kubernetes.io/rewrite-target,值: /。

5. 点击【保存】,完成访问入口的创建。
6. 访问入口列表点击名称,查看相对应的访问入口详情;
查看访问入口规则、证书和标签注释;

7. 访问入口管理
编辑:对当前访问入口进行任何配置的编辑,支持视图化文本编辑和编辑YAML两种方式;
删除:删除当前访问入口;
克隆:当前访问入口的复制编辑,方便快捷;

应用市场

市场设置

▶ 应用市场管理

1. 登录魔方云容器平台。
2. 左侧导航栏选择展开【应用市场】。
3. 单击【市场设置】,应用市场列表。
4. 应用市场可查看该应用市场的范围、名称、市场地址、分支和操作; 操作可进行编辑、克隆和删除;

▶ 添加应用市场

点击应用市场列表右上角按钮【添加应用市场】;

6. 应用市场信息配置

名称:填写该应用市场的名词;
市场地址:输入应用市场的URL地址;
使用私有应用市场:根据实际需要选择;
分支和范围:根据实际需要选择分支和范围;

7. 点击【创建】,成功添加应用市场;

应用列表

1. 登录魔方云容器平台。
2. 左侧导航栏选择展开【应用市场】。
3. 单击【应用列表】,进入应用列表页面。

应用列表:展示您在应用市场启动的应用。
应用管理:提供克隆、升级、回滚、日志查看和删除应用;
状态:应用的运行状态和应用的版本信息;该应用的工作负载状态;

4. 点击应用的名称,进入此应用的详细信息页面;

基本信息:包含应用的版本、命名空间和创建时间;
注释:关于如何使用此应用的说明;
状态:当前应用程序的状态,包括状态原因、最后更新等;

应答:自定义应用的应答;
端点:此应用的公共端口;
工作负载:此应用的工作负载,可查看该工作负载详情;
Ingress规则:此应用创建的入口规则;
服务:此应用创建的服务;
卷:此应用创建的持久化声明(PVC);
密文:此应用相关的密文(Secrets);
配置映射:于此应用关联的配置映射;

应用市场

1. 登录魔方云容器平台。
2. 左侧导航栏选择展开【应用市场】。
3. 单击【应用市场】,进入应用市场列表页面。

4. 点击应用名称,对应用进行配置。以wordpress为例,如下图所示:

启动项页面分三块:
◆ 此应用的简单概述;
◆ 此应用的详细描述;
◆ 应用的配置选项和预览,配置选项因应用不同而不同、预览为该应用配置的YAML文件;

5. 点击tab栏菜单【配置选项】,对应用进行配置;

名称:自定义该应用的名称;
模板版本:下拉选择该应用的历史版本;
命名空间:为该应用选择命名空间;
其他配置:应用不同,而配置选项不同,根据需要配置其他选项;
预览:预览提供的配置选项的YAML信息面板查看和编辑;

6. 点击右上角【启动】,则启动该应用;
7. 返回【应用列表】,查看该应用的具体信息;