Skip to content

创建服务

选择镜像和Tag

  • 可从【应用管理】-【服务】页面点击“创建服务”,选择镜像镜像和tag配置容器,镜像库列表展示当前dev角色的私有镜像库和公共镜像库。
  • 可从【镜像仓库】选择镜像和tag后点击“部署”,配置容器。

配置容器

计算资源:配置容器的cpu和内存使用大小,支持【一般模式】和【性能模式】; 默认为镜像内定义的资源大小,镜像内未定义的默认为:一般模式【128MB-4GB 0.1-4】;

  • 一般模式:CPU和内存为浮动配置,建议:定时任务型应用、对性能无明确要求且线上无高负载应用,选择一般模式;
  • 性能模式:cpu和内存为固定配置,只对性能模式的服务支持pod自动弹性伸缩,建议:明确性能要求或资源需求的应用,选择性能模式
  • 端口配置:配置服务暴漏的端口,访问服务的某个端口需要在此配置,否则无法访问。

配置、日志管理:

  • 自动加载镜像内应用所需要的配置,支持修改删除添加;
  • 服务部署后,配置生成configMap。
  • 定义容器内日志的路径,会自动挂载到物理机,每个容器都独立的日志目录;(日志为默认输出路径时,无需配置,可去统一日志平台查询)
  • 信云+会根据定义的格式去采集解析日志(host格式的只挂载到物理机不采集)。

健康检查:

  • 存活状态检查和就绪状态检查作为k8s的探针,可以对应用进行健康探测;
  • 存活状态检查,支持tcp和http两种协议,参数可自定义,存活状态检查失败会重启容器;
  • 就绪状态检查,支持tcp和http两种协议,参数可自定义,就绪检查状态失败会踢出流量接入,也就是把podip从负载均衡中摘除;
  • 注意:健康检查的配置需要能真实反应容器的健康状态,如果不准确会导致流量进来后无法正常处理以至于请求异常。

环境变量:

  • 环境变量内容从容器内读取,同时页支持修改删除添加,支持普通变量/加密变量/pod字段三种类型;
  • 加密变量:引用加密配置内配置的密码,token,密钥等敏感信息;
  • Pod字段:获取当前pod的信息

环境变量-高级功能:

  • 编辑环境变量增加JUCLOUD_CUSTOM_PRESTOP,设置为true,同时增加环境变量JUCLOUD_CUSTOM_PRESTOP_SECONDS ,设置具体需要prestop的时间,单位是秒,滚动升级后,容器的prestop时间会修改为28秒+设置的值

存储管理:

  • 主机本地存储:把节点上的路径挂载到容器内,写权限可定义,支持手动修改删除添加。
  • PVC存储:信云+容器云平台的持久化存储管理分为共享存储与独享存储。pvc的卷名在【存储管理】内创建,大小受项目的磁盘配额限制。
  • 共享卷存储:POD的多个容器共享存储,多个容器需填写相同的卷名,无持久化能力。

安全设置:

  • 开启关闭容器特权,创建容器时通过 --privileged=true 开启特权模式,这种模式允许我们以其宿主机具有(几乎)所有能力来运行容器,包括一些内核特性和设备访问。
  • runAsUser:指定用户id运行容器。

高级配置 - 启动命令

  • 支持自定义启动命令;选择调测后,sleep 365d会覆盖掉镜像内的启动命令,健康检查的时间修改为365d,进入控制台可手动执行命令去启动程序;一般使用场景:pod启动失败一直重启,可打开调测后进入终端手动启动调试;

容器钩子:

  • 支持容器在启动后或停止前执行指定的命令。

重新拉取镜像:

  • 默认不勾选,节点上镜像已存在,直接使用不会从镜像仓库拉取,节点上不存在才会拉取。 勾选后每次启动容器都会重新从harbor拉取镜像,不管节点上有没有。 镜像修改但不更改镜像tag的场景,需要把重新拉取镜像打开。

添加多个容器

  • 多个容器共享同一网络空间
  • 多个容器的容器名不能相同,否则无法进行到下一步。
  • 多个容器暴露的端口不能相同,否则无法进行到下一步。

配置服务

基本信息:

  • 默认为无状态服务,可以选择有状态服务(redis、mq等),服务创建后无法修改。
  • 输入服务名称,是否为单实例服务,默认不勾选,服务创建后无法修改。
  • 服务实例数,单实例服务勾选后实例数只能为1 不可修改。

有状态服务:

  • 选择有状态服务,增加存储配置。
  • 选择挂载容器。
  • 卷名称是生成的pvc的前缀,可以任意填写,最终生成的pvc名称格式是卷名称-pod名。
  • 容器目录填写要挂载的容器目录。
  • 访问模式分为ReadWriteOnce、ReadWriteMany、ReadOnlyMany代表pv是否可以被多个节点挂载。 storageclass是在匹配pvc和pv时,根据对应的storageclass进行匹配 目前只有两类 csi和openebs。
  • 容量即容器挂载目录需要申请多大容量。

升级策略:

  • 支持先启动再停止/先停止再启动/先全部删除再启动新pod/自定义四种升级策略。
  • 先启动再停止:默认的升级策略,支持配置最大超量(更新过程实例总数允许超过的最大值)。

先停止再启动:支持配置最大不可用数(更新过程中最大不可用实例数)。

先全部删除再启动新pod:流量会中断。

自定义:自定义最大不可用数和最大超量。

POD调度:

  • Pod亲和配置,配置与某个服务的pod亲和和反亲和。
  • 亲和:pod调度时只匹配与亲和的服务pod所在节点。
  • 反亲和:pod调度时只匹配与亲和的服务pod不在的节点。

监控配置:

  • prometheus采集,配置服务的被prometheus采集的端口和path。

DNS配置:

  • DNS类型:程序解析域名可选择节点dns 和集群dns。
  • 集群dns:整个信云+集群的dns,作为普通服务pod分散在有限的节点。
  • 节点dns:作为常驻服务分布在每个节点,作为集群dns的下级dns会缓存域名解析结果,过期后会向上级集群dns请求,节点dns故障不可用时会自动把dns请求转到集群dns。
  • 建议使用节点dns,尤其是DNS请求量很大的程序,dns请求直接在当前节点处理,无网络io速度较快。

高级配置:

  • 平滑停止:容器停止时,平台会先向其发送TERM信号,应用收到TERM信号后可以执行一些平滑停止动作;到达最后停止期限后,如果应用进程还存活,平台则会发送KILL信号强制停止。该时间控制平台发送TERM信号到发送KILL信号的间隔,单位为秒。
  • FsGroup: pod挂载的卷,及其中创建的文件都将属于填写的fsGroup.
  • 服务说明:填写对服务的描述和说明。

  • 配置节点**(请选默认配置,有特殊网络需求时,请联系平台管理员)**

选择机房:

  • 节点归属,选择本项目、本租户、公共(公共是节点标签打了all的节点);
  • 节点标签,指定有或者没有对应标签的节点调度,可配置多个节点标签;
  • 网络要求,仅内网 、需要外网 、无要求;
  • 高级配置,首选分散在不同节点,尽量使服务的pod分散在不同节点,提高高可用性;

审核配置

对镜像配置、服务配置、节点配置的总览审查;

  • 匹配节点:列出符合机房、租户、项目,网络、自定义节点标签的节点列表:
  • 展示节点的cpu 内存大小,以及分配的下限(requests)和上限(limits);
  • 调度关闭节点,cpu内存可分配下限不足的节点会标红提示。
  • 点击提交,部署成功后,返回到服务列表。