云容器引擎(CCE)提供多种类型的容器部署和管理能力,支持对容器工作负载的部署、配置、监控、扩容、升级、卸载、服务发现及负载均衡等特性。
其中守护进程集(DaemonSet)可以确保全部(或者某些)节点上仅运行一个Pod实例,当有节点加入集群时,也会为他们新增一个 Pod。当有节点从集群移除时,这些Pod也会被回收。删除 DaemonSet 将会删除它创建的所有Pod。
使用DaemonSet的一些典型用法:
- 运行集群存储daemon,例如在每个节点上运行glusterd、ceph。
- 在每个节点上运行日志收集daemon,例如fluentd、logstash。
- 在每个节点上运行监控daemon,例如Prometheus Node Exporter、collectd、Datadog代理、New Relic代理,或Ganglia gmond。
一种简单的用法是为每种类型的守护进程在所有的节点上都启动一个DaemonSet。一个稍微复杂的用法是为同一种守护进程部署多个DaemonSet;每个具有不同的标志, 并且对不同硬件类型具有不同的内存、CPU要求。
在创建守护进程集前,您需要存在一个可用集群。若没有可用集群 ,请参照购买混合集群中内容创建。
步骤 1 登录CCE管理控制台。
步骤 2 在左侧导航栏中选择“工作负载 > 守护进程集 DaemonSet”,单击页面右上角的“创建守护进程集”。参照下表设置基本信息,其中带“*”标志的参数为必填参数。
工作负载基本信息
参数 | 参数说明 |
* 工作负载名称 | 新建工作负载的名称,命名必须唯一。 请输入4到63个字符的字符串,可以包含小写英文字母、数字和中划线(-),并以小写英文字母开头,小写英文字母或数字结尾。 |
* 集群名称 | 新建工作负载所在的集群。 |
* 命名空间 | 在单集群中,不同命名空间中的数据彼此隔离。使应用可以共享同个集群的服务,也能够互不干扰。若您不设置命名空间,系统会默认使用default命名空间。 |
时区同步 | 单击开启后,容器将和节点使用相同时区。 须知 时区同步功能开启后,在“数据存储 > 本地磁盘”中,将会自动添加HostPath类型的磁盘,请勿修改删除该磁盘。 |
工作负载描述 | 工作负载描述信息。 |
步骤 3 单击“下一步:容器设置”,添加容器。
1. 单击“添加容器”,选择需要部署的镜像。
− 我的镜像:展示了您创建的所有镜像仓库。
− 第三方镜像:CCE支持拉取第三方镜像仓库(即镜像仓库之外的镜像仓库)的镜像创建工作负载。使用第三方镜像时,请确保工作负载运行的节点可访问公网。第三方镜像的具体使用方法请参见如何使用第三方镜像。
- 若您的镜像仓库不需要认证,密钥认证请选择“否”,并输入“镜像名称”,单击“确定”。
- 若您的镜像仓库都必须经过认证(帐号密码)才能访问,您需要先创建密钥再使用第三方镜像,具体操作请参见如何使用第三方镜像。
− 共享镜像:其它租户通过“容器镜像服务”共享给您的镜像将在此处展示,您可以基于共享镜像创建工作负载。
2. 配置镜像基本信息。
工作负载是Kubernetes对一组Pod的抽象模型,用于描述业务的运行载体,一个Pod可以封装1个或多个容器,您可以单击右上方的“添加容器”,添加多个容器镜像并分别进行设置。
镜像参数说明
参数 | 说明 |
镜像名称 | 导入的镜像,您可单击“更换镜像”进行更换。 |
* 镜像版本 | 选择需要部署的镜像版本。 |
* 容器名称 | 容器的名称,可修改。 |
特权容器 | 特权容器是指容器里面的程序具有一定的特权。 若选中,容器将获得超级权限,例如可以操作宿主机上面的网络设备、修改内核参数等。 |
容器规格 | CPU配额:
内存配额:
申请和限制的具体请参见设置容器规格。 GPU配额:当集群中包含GPU节点时,才能设置GPU,无GPU节点不显示此选项。 容器需要使用的GPU百分比。勾选“使用”并设置百分比,例如设置为10%,表示该容器需使用GPU资源的10%。若不勾选“使用”,或设置为0,则无法使用GPU资源。 GPU显卡:工作负载实例将被调度到GPU显卡类型为指定显卡的节点上。 若勾选“不限制”,容器将会随机使用节点中的任一显卡。您也可以勾选某个显卡,容器将使用特定显卡。 |
3. 生命周期:用于设置容器启动和运行时需要执行的命令。
− 启动命令:设置容器启动时执行的命令,具体请参见设置容器启动命令。
− 启动后处理:设置容器成功运行后执行的命令,详细配置方法请参见设置容器生命周期。
− 停止前处理:设置容器结束前执行的命令,通常用于删除日志/临时文件等,详细配置方法请参见设置容器生命周期。
4. 健康检查:CCE提供了存活与业务两种探针,用于判断容器和用户业务是否正常运行。详细配置方法请参见设置容器健康检查。
− 工作负载存活探针:检查容器是否正常,不正常则重启实例。
− 工作负载业务探针:检查用户业务是否就绪,不就绪则不转发流量到当前实例。
5. 环境变量:在容器中添加环境变量,一般用于通过环境变量设置参数。
在“环境变量”页签,单击“添加环境变量”,当前支持三种类型:
− 手动添加:输入变量名称、变量/变量引用。
− 密钥导入:输入变量名称,选择导入的密钥名称和数据。您需要提前创建密钥,具体请参见创建密钥。
− 配置项导入:输入变量名称,选择导入的配置项名称和数据。您需要提前创建配置项,具体请参见创建配置项。
说明:
对于已设置的环境变量,单击环境变量后的“编辑”,可对该环境变量进行编辑。单击环境变量后的“删除”,可删除该环境变量。
6. 数据存储:给容器挂载数据存储,支持本地磁盘和云存储,适用于需持久化存储、高磁盘IO等场景。具体请参见存储管理。
7. 安全设置:对容器权限进行设置,保护系统和其他容器不受其影响。
请输入用户ID,容器将以当前用户权限运行。
8. 容器日志:设置容器日志采集策略、配置日志目录。用于收集容器日志便于统一管理和分析。详细配置请参见采集容器标准输出日志、采集容器内路径日志。
步骤 4 单击“下一步:工作负载访问设置”,单击“添加服务”,设置工作负载访问方式。
若工作负载需要和其它服务互访,或需要被公网访问,您需要添加服务,设置工作负载访问方式。
工作负载访问的方式决定了这个工作负载的网络属性,不同访问方式的工作负载可以提供不同网络能力,具体请参见网络概述。
步骤 5 单击“下一步:高级设置”,配置更多高级策略。
升级策略:
− 升级方式:支持“滚动升级”。滚动升级将逐步用新版本的实例替换旧版本的实例,升级的过程中,业务流量会同时负载均衡分布到新老的实例上,因此业务不会中断。
− 最大无效实例数:每次滚动升级允许的最大无效实例数,如果等于实例数有断服风险(最小存活实例数 = 实例数 - 最大无效实例数)。
缩容策略:
缩容时间窗:请输入时间。为工作负载删除提供一个时间窗,预留给生命周期中PreStop阶段执行命令。若超过此时间窗,进程仍未停止,该工作负载将被强制删除。
调度策略:您可以根据需要自由组合静态的全局调度策略或动态的运行时调度策略来实现自己的需求。具体请参见调度策略概述。
Pod高级设置
− Pod标签:内置app标签在工作负载创建时指定,主要用于设置亲和性与反亲和性调度,暂不支持修改。您可以单击下方的“添加标签”增加标签。
客户端DNS配置:CCE集群内置DNS插件CoreDNS,为集群内的工作负载提供域名解析服务。详细使用方法请参见Kubernetes集群内置DNS配置说明。
− DNS策略:
- 追加域名解析配置:选择该配置后,将保留默认配置,以下“IP地址”和“搜索域”配置可能不生效。
- 替换域名解析配置:选择该配置后,将仅使用以下“IP地址”和“搜索域”配置进行域名解析。
- 继承Pod所在节点域名解析配置:将继承Pod所在节点的域名解析配置。
− IP地址:您可对自定义的域名配置域名服务器,值为一个或一组DNS IP地址,如“1.2.3.4”。
− 搜索域:定义域名的搜索域列表,当访问的域名不能被DNS解析时,会把该域名与搜索域列表中的域依次进行组合,并重新向DNS发起请求,直到域名被正确解析或者尝试完搜索域列表为止。
− 超时时间(s):查询超时时间,请自定义。
− ndots:表示域名中必须出现的“.”的个数,如果域名中的“.”的个数不小于ndots,则该域名为一个FQDN,操作系统会直接查询;如果域名中的“.”的个数小于ndots,操作系统会在搜索域中进行查询。
自定义指标监控:是指监控系统提供的一种指标收集机制,该机制允许工作负载在部署时自定义需要上报的指标名称以及获取这些指标数据的接入点信息,在应用运行时由监控系统按固定的频率访问接入点进行指标的收集。
性能管理配置:性能管理服务可协助您快速进行工作负载的问题定位与性能瓶颈分析。
步骤 6 配置完成后,单击“创建”,在创建成功页面单击“返回工作负载列表”,查看工作负载状态。
在工作负载列表中,当工作负载状态为“运行中”时,表示工作负载创建成功。工作负载状态不会实时更新,请单击右上角的图标或按F5刷新页面查看。