1. 主页
  2. 文档
  3. 魔方云用户操作指南
  4. 工作负载
  5. 部署工作负载

部署工作负载

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

部署入口

  1. 登录魔方云容器平台。
  2. 选择所需部署工作负载的集群,在集群下对应的项目进入。
  3. 在左侧导航栏中,点击【工作负载】,进入工作负载列表页,点击右上角【部署服务】,如图所示:

第一步:配置基本信息

  1. 填写基本信息。用户可以根据需求填写部署的基本信息。

    名称:为创建的部署起一个简洁明了的名称,便于用户浏览和搜索。名称应包含 1-63个字符,可包含数字、小写英文字符或连字符(-)。
    类型:下拉选择工作负载的类型。详见工作负载
    命名空间:namespace可以提供独立的命名空间,因此可以实现部分的环境隔离。图标按钮可切换下拉选择命名空间或创建新的命名空间。

    更新策略:更新策略包括滚动更新和删除容器组时更新。
       ● 滚动升级将逐步用新版本的实例替换旧版本的实例,升级的过程中,业务流量会同时负载均衡分布到新老的实例上,因此业务不会中断。
       ● 删除容器组时更新,控制器不会自动更新容器组,将会在容器组被手动删除时,更新并替换容器组实例。

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

  2. 容器规格
    为了实现集群的资源被有效调度和分配同时提高资源的利用率,平台采用了 预留限制两种限制类型对资源进行分配。
    • 容器规格:提供2X、4X、8X、16X和32X快捷选择,如不选择默认2X配置;根据实际需要,可自定义容器规格,
    • 资源预留:即为该应用预留资源额度,包括 CPU 和内存两种资源,即容器独占该资源,防止因资源不足而被其他服务或进程争占资源,导致应用不可用。
    • 资源限制:可指定该应用所能使用的资源上限,包括 CPU 和内存两种资源,防止占用过多资源。
  3. 端口映射
    即设置容器的访问策略,指定容器需要暴露的端口并自定义端口名称,端口协议可以选择 TCP 和 UDP。

  4. 数据卷
    支持添加新的PVC、使用现有PVC、映射节点目录、secret卷、configmap卷。可自定添加多个卷,将对应的挂载源挂载到容器路径中,并为每个容器路径设置权限。点击添加数据卷,选择卷类型填写即可,再次点击卡片可进行卷的编辑和删除。

第二步:监控告警和弹性伸缩

  1. workload告警
    关闭workload告警:告警触发条件和选择告警组处于不可操作状态。
    开启workload告警:选择告警触发的条件,选择告警组,如没所需告警组可添加新的告警组。

  2. 工作负载伸缩/告警
    注意:必须为当前集群开启监控,否则工作负载伸缩/告警将不可配置。
    以CPU为例,配置如下所示:

    弹性伸缩:只有创建的工作负载类型为有状态StatefulSet和无状态Deployment时才有弹性伸缩,其他类型没有弹性伸缩
    •  开启弹性伸缩,需填写HPA最大最小副本数,最大副本数必须大于最小副本数,以及在工作负载配置项询问是否加入伸缩;
    •  关闭弹性伸缩,将不再询问是否加入伸缩,页面不显示配置伸缩项。
    弹性伸缩开启的前提:开启集群监控,且开启弹性伸缩。

    监控项:下拉选择告警或伸缩需要监测的监控项。新增工作负载伸缩监控项时不允许重名。
    加入伸缩:开启关闭加伸缩,并填写触发伸缩阈值。触发伸缩阈值不能是负数和小数。

    工作负载告警:开启或关闭工作负载告警
    •  关闭工作负载告警:告警配置项不显示;
    •  开启工作负载告警:下拉选择所需告警组并填写告警组名称(可下拉创建新的告警组,新增的告警组同步【告警】);选择触发的条件并填写触发的阈值;选择持续时间。
    注意:新增告警组时,必须先在集群下设置好通知方式。

     

  3. 自定义监控/告警
    注意:必须为集群开启监控,否则自定义监控/告警不可配置。
    ⅰ.未加入伸缩和自定义监控告警的图表如下所示:

    图表名称:为图表起一个简洁明了的名称,便于用户浏览和搜索。
    集群名称应包含 1-63个字符,可包含数字、小写英文字符或连字符(-),支持中文字符。

    表达式:默认没有图表数据。
    必须先选择workloadID才能workload下的选择表达式,下拉选择来自于同一个namespaease下的workload,可以选择其他workloadID和自己的workloadID,自己的workloadID中文显示:请选择workload;
    表达式可以输入和下拉选择,输入支持运算,只能选择同一个workload下的表达式进行运算,选择完表达式后,右边区域将会出现对应表达式的图表数据。

    出现图表数据的必备条件:
    1.同一namespace下的工作负载必须将端口暴露给prometheus以获取监控指标。
    2.为工作负载(端口暴露给prometheus)添加CMD命令:-nginx.scrape-uri http://负载名称-nodeport/stub_status

    ⅱ. 开启加入伸缩后的图标,如下图所示:

    开启加入伸缩后,填写触发伸缩阈值,图表出现伸缩图表数据,并在Y轴显示触发阈值。

    ⅲ. 开启自定义监控告警如下所示:

    选择告警组和触发告警阈值以后,图表将在触发告警阈值的地方出现图表数据。

    容器端口:设置端口暴露给prometheus,支持http和https协议

第三步:自定义配置

  1. 命令
    可自定义容器的启动的运行命令
  2. 环境变量
    环境变量是指容器运行环境中设定的一个变量, 以添加键值对的形式来设置环境变量。
    注意:变量名只能包含大小写字母、数字及下划线,并且不能以数字开头。

  3. 节点调度
    •  指定节点运行所有Pods。
    下拉选择当前集群节点。
    •  为每一个Pod自动选择符合调度规则的节点
    通过 Node 节点的 Label 标签进行设置,节点调度支持必须、最好、首选。
  4. 健康检查
    用户可以为容器设置健康检查探针来检查容器的健康状态。因为 kubelet 会根据用户定义的这个健康检查探针的返回值,来决定容器的状态。
    •  存活状态检查(liveness):用于检测容器是否存活,kubelet 根据用户定义的周期进行周期性地对容器的健康状态进行检查,如果检查失败,集群会重启,若检查成功则不执行任何操作。
    •  就绪状态检查(readiness):用于检测结果的成功与否,检测容器是否准备好开始处理用户请求。监测到容器实例不健康时,将工作负载设置为未就绪状态,业务流量不会导入到该容器中。

    HTTP请求

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

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

    HTTPS请求

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

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

    TCP端口检查

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

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

    状态码检查

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

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

标签/注释
为工作负载设置标签,可通过标签来识别、组织和查找资源对象,selector 可以根据标签的键值对来调度资源。

第四步:完成部署

  1. 点击【部署】完成工作负载的创建。由于拉取镜像需要一定时间,待镜像 pull 成功后状态将显示“运行中”。