云服务器内容精选
-
容器基本信息 工作负载是Kubernetes对一组Pod的抽象模型,用于描述业务的运行载体,一个Pod可以封装1个或多个容器,您可以单击右上方的“添加容器”,添加多个容器镜像并分别进行设置。 表1 镜像参数说明 参数 说明 容器名称 为容器命名。 镜像名称 单击后方“选择镜像”,选择容器使用的镜像。 镜像版本 选择需要部署的镜像版本。 更新策略 镜像更新/拉取策略。可以勾选“总是拉取镜像”,表示每次都从镜像仓库拉取镜像;如不勾选则优使用节点已有的镜像,如果没有这个镜像再从镜像仓库拉取。 CPU配额 申请:容器需要使用的最小CPU值,默认0.25Core。 限制:允许容器使用的CPU最大值。建议设容器配额的最高限额,避免容器资源超额导致系统故障。 内存配额 申请:容器需要使用的内存最小值,默认512MiB。 限制:允许容器使用的内存最大值。如果超过,容器会被终止。 申请和限制的具体请参见设置容器规格。 初始化容器 选择容器是否作为初始化容器。 Init 容器是一种特殊容器,在 Pod 内的应用容器启动之前运行。详细说明请参见Init 容器。 父主题: 容器设置
-
获取KubeConfig 在第三方云服务商集群不支持直接导出KubeConfig文件时,可采用下列方法获取MCP可用的KubeConfig文件。 (可选)设置kubectl。 若集群可正常执行kubectl,可跳过本步骤。 获取kubectl文件的绝对路径***/kubectl。 which kubectl 获取您的KubeConfig文件路径***/config。默认情况下,kubectl的配置文件位于master节点的“$HOME/.kube/config”路径,您也可以使用--kubeconfig参数指定其他KubeConfig文件,详情请参见使用 kubeconfig 文件组织集群访问。 设置kubectl。 alias kubectl='***/kubectl --kubeconfig=***/config' 创建my-user-sa.yaml、my-user-role.yaml、my-user-role-binding.yaml文件。 my-user-role.yaml: apiVersion: rbac.authorization.k8s.io/v1 kind: ClusterRolemetadata: name: my-user-rolerules:- apiGroups: - '*' resources: - '*' verbs: - '*'- nonResourceURLs: - '*' verbs: - get my-user-role-binding.yaml: apiVersion: rbac.authorization.k8s.io/v1kind: ClusterRoleBindingmetadata: name: my-user-role-bindingsubjects: - kind: ServiceAccount name: my-user namespace: defaultroleRef: kind: ClusterRole name: my-user-role apiGroup: rbac.authorization.k8s.io my-user-sa.yaml: apiVersion: v1kind: ServiceAccountmetadata: name: my-user 在纳管集群上进行操作。 kubectl apply -f my-user-sa.yamlkubectl apply -f my-user-role.yamlkubectl apply -f my-user-role-binding.yaml 使用以下命令获取token。 kubectl get secret -n default `kubectl get secret -n default | grep my-user | awk '{print $1}'` -oyaml | grep token: | awk '{print $2}' | base64 -d 配置KubeConfig文件。 在下面kubeconfig.json中,将“server”参数替换为1里“***/config”文件中的“server”字段地址,“token”参数替换为4中获取的值。 kubeconfig.json: kind: ConfigapiVersion: v1preferences: {}clusters: - name: internalCluster cluster: server: 'https://119.xxx.xxx.xxx:5443' #替换集群API Server地址 insecure-skip-tls-verify: trueusers: - name: user user: token: 'MIIFbAYJKo*****' #替换tokencontexts: - name: internal context: cluster: internalCluster user: usercurrent-context: internal 添加集群,使用5中配置的KubeConfig文件。成功添加集群后,可以删除3中创建的ClusterRole、ClusterRoleBinding以及ServiceAccount。 父主题: 集群管理
-
创建无状态负载 登录MCP控制台,单击MCP实例名称,在左侧导航栏中选择“工作负载 ”,在“无状态负载”页签中单击右上角“镜像创建”。 设置工作负载基本信息。 负载类型:选择“无状态负载”。 负载名称:新增工作负载的名称,命名必须唯一。 命名空间:选择工作负载所在命名空间。如需新建命名空间,请参见创建命名空间。 描述:工作负载的描述信息。 实例数量:设置多集群的工作负载中各集群的实例数。用户可以设置具体实例个数,默认为2。每个工作负载实例都由相同的容器部署而成。在MCP中可以通过设置弹性扩缩容策略,根据工作负载资源使用情况,动态调整工作负载实例数。 设置工作负载容器配置。 Pod中可以配置多个容器,您可以单击右侧“添加容器”为Pod配置多个容器并分别进行设置。 基本信息: 表1 基本信息参数说明 参数 说明 容器名称 为容器命名。 镜像名称 单击后方“选择镜像”,选择容器使用的镜像。 镜像版本 选择需要部署的镜像版本。 更新策略 镜像更新/拉取策略。勾选“总是拉取镜像”表示每次都从镜像仓库拉取镜像;如不勾选则优先使用节点已有的镜像,如果没有这个镜像再从镜像仓库拉取。 CPU配额 申请:容器需要使用的最小CPU值,默认0.25Core。 限制:允许容器使用的CPU最大值。建议设容器配额的最高限额,避免容器资源超额导致系统故障。 内存配额 申请:容器需要使用的内存最小值,默认512MiB。 限制:允许容器使用的内存最大值。如果超过,容器会被终止。 关于CPU/内存配额申请和限制的具体说明请参见设置容器规格。 初始化容器 选择容器是否作为初始化容器。 Init 容器是一种特殊容器,在 Pod 内的应用容器启动之前运行。详细说明请参见Init 容器。 生命周期:设置生命周期回调函数可在容器的特定阶段执行调用,比如容器在停止前希望执行某项操作,就可以设置相应的函数。目前提供的生命周期回调函数有启动命令、启动后处理、停止前处理,详情请参见设置容器生命周期。 健康检查:设置健康检查可以在容器运行过程中定时检查容器的健康状况,详情请参见设置容器健康检查。 环境变量:容器运行环境中设定的一个变量,通过环境变量设置的配置项不会随着Pod生命周期结束而变化,详情请参见设置环境变量。 数据存储:配置容器存储,可以使用本地存储和存储卷声明(PVC)。建议使用PVC将工作负载Pod数据存储在 云存储 上。若存储在本地磁盘上,节点异常无法恢复时,本地磁盘中的数据也将无法恢复。容器存储相关内容请参见容器存储。 安全设置:对容器权限进行设置,保护系统和其他容器不受其影响。请输入用户ID,容器将以当前用户权限运行。 镜像访问凭证:用于访问镜像仓库的凭证。该凭证仅访问私有镜像仓库时使用,如所选镜像为公开镜像,则无需选择密钥。密钥的创建方法请参见创建密钥。 (可选)单击服务配置栏的,进行工作负载服务配置。 若工作负载需要和其它服务互访,或需要被公网访问,您需要添加服务(Service),设置访问方式。工作负载访问的方式决定了这个工作负载的网络属性,不同访问方式的工作负载可以提供不同网络能力,操作详情请参见服务与路由。 您也可以在创建完工作负载之后再创建Service,参见集群内访问(ClusterIP)和节点访问(NodePort)。 Service名称:新增服务名称,用户可自定义,服务名称必须唯一。 访问类型: 集群内访问(ClusterIP):只能集群内访问服务。 节点访问(NodePort):可以通过集群内任意节点访问到服务。 服务亲和(仅节点访问设置): 集群级别:集群下所有节点的IP+访问端口均可以访问到此服务关联的负载,服务访问会因路由跳转导致一定性能损失,且无法获取到客户端源IP。 节点级别:只有通过负载所在节点的IP+访问端口才可以访问此服务关联的负载,服务访问没有因路由跳转导致的性能损失,且可以获取到客户端源IP。 端口配置: 协议:TCP或UDP,请根据业务的协议类型选择。 服务端口:容器端口映射到集群虚拟IP上的端口,用虚拟IP访问应用时使用,端口范围为1-65535,可任意指定。 容器端口:容器镜像中应用程序实际监听的端口,需用户确定。例如:nginx程序实际监听的端口为80。 节点端口(仅节点访问设置):容器端口映射到节点私有IP上的端口,用私有IP访问应用时使用,端口范围为30000-32767,建议选择“自动生成”。 自动生成:系统会自动分配端口号。 指定端口:指定固定的节点端口,默认取值范围为30000-32767。若指定端口时,请确保同个集群内的端口唯一性。 (可选)单击“展开高级配置”,设置工作负载高级配置。 升级策略:指定无状态负载的升级方式,包括整体替换升级和逐步滚动升级,详细参数说明请参见工作负载升级策略配置。 滚动升级:滚动升级将逐步用新版本的实例替换旧版本的实例,升级的过程中,业务流量会同时负载均衡分布到新的和旧的实例上,因此业务不会中断。 替换升级:先删除旧实例,再创建新实例。升级过程中业务会中断。 调度策略:您可设置亲和(affinity)与反亲和(anti-affinity)实现Pod的计划性调度,详细信息请参见调度策略(亲和与反亲和)。 标签与注解:您可以单击“添加”为Pod增加标签或注解,新增标签或注解的键不能与已有的重复。 容忍策略:当工作负载实例所在的节点不可用时,系统将实例重新调度到其它可用节点的时间窗,默认为300秒。 单击“下一步:调度与差异化”,对选择的集群进行调度与差异化配置。在选择可调度集群后,可对容器进行“差异化配置”。 集群调度策略: 调度方式: 集群权重:手动设置各集群的权重,工作负载在各集群的实例数将根据设置的权重比例进行分配。 自动均衡:工作负载将根据资源余量在可调度的集群中自动选择集群进行部署。 部署集群:选择工作负载可调度的集群,集群个数请您根据自身业务进行确定。 “集群权重”模式下,需手动设置各集群权重值,权重非0的集群将自动勾选为可调度集群,权重为0则表示该集群不可调度。状态非正常的集群无法设置权重。 “自动均衡”模式下,单击集群即可将其勾选为可调度集群。 差异化配置: 工作负载在不同的集群中部署可进行差异化的配置。在选择可调度集群后单击对应集群右上角,即可对每个集群进行差异化配置,差异化后的容器配置只对该集群生效。 具体参数说明请参见容器配置。 设置完成后,单击“创建工作负载”,完成创建后,可单击“返回工作负载列表”查看所创建的工作负载。
-
相关操作 通过MCP控制台,您还可以执行表2中的操作。 表2 相关操作 操作 说明 YAML创建 单击右上角“YAML创建”,可使用已有的YAML创建工作负载。 查看工作负载详情 单击已创建工作负载的名称,在“实例列表”页签下,可以查看Pod相关详情信息。 事件:可以设置查询条件,比如设置事件产生的时间段或搜索事件名称,查看相关事件。 容器列表:可以查看相应实例的容器名称、状态、镜像以及启停次数等。 查看YAML:可以查看相应实例的YAML文件。 编辑YAML 单击工作负载名称后的“编辑YAML”,可查看并编辑当前工作负载的YAML文件。 升级 单击工作负载名称后的“升级”。 更改工作负载信息,操作步骤与创建工作负载时一致。 单击“提交”,升级工作负载。 删除 单击工作负载名称后的“删除”,并单击“是”进行确认。 批量删除 勾选需要删除的工作负载。 单击左上角的“批量删除”。 单击“是”进行确认。
-
升级示例 Deployment的升级可以是声明式的,也就是说只需要修改Deployment的YAML定义即可,比如使用kubectl edit命令将上面Deployment中的镜像修改为nginx:alpine。修改完成后再查询ReplicaSet和Pod,发现创建了一个新的ReplicaSet,Pod也重新创建了。 $ kubectl edit deploy nginx$ kubectl get rsNAME DESIRED CURRENT READY AGEnginx-6f9f58dffd 2 2 2 1mnginx-7f98958cdf 0 0 0 48m$ kubectl get podsNAME READY STATUS RESTARTS AGEnginx-6f9f58dffd-tdmqk 1/1 Running 0 1mnginx-6f9f58dffd-tesqr 1/1 Running 0 1m Deployment可以通过maxSurge和maxUnavailable两个参数控制升级过程中同时重新创建Pod的比例,这在很多时候是非常有用,配置如下所示。 spec: strategy: rollingUpdate: maxSurge: 1 maxUnavailable: 0 type: RollingUpdate 在前面的例子中,由于spec.replicas是2,如果maxSurge和maxUnavailable都为默认值25%,那实际升级过程中,maxSurge允许最多3个Pod存在(向上取整,2*1.25=2.5,取整为3),而maxUnavailable则不允许有Pod Unavailable(向上取整,2*0.75=1.5,取整为2),也就是说在升级过程中,一直会有2个Pod处于运行状态,每次新建一个Pod,等这个Pod创建成功后再删掉一个旧Pod,直至Pod全部为新Pod。
-
回滚 回滚也称为回退,即当发现升级出现问题时,让应用回到老的版本。Deployment可以非常方便的回滚到老版本。 例如上面升级的新版镜像有问题,可以执行kubectl rollout undo命令进行回滚。 $ kubectl rollout undo deployment nginxdeployment.apps/nginx rolled back Deployment之所以能如此容易的做到回滚,是因为Deployment是通过ReplicaSet控制Pod的,升级后之前ReplicaSet都一直存在,Deployment回滚做的就是使用之前的ReplicaSet再次把Pod创建出来。Deployment中保存ReplicaSet的数量可以使用revisionHistoryLimit参数限制,默认值为10。
-
概述 集群控制台为用户提供独立的集群操作入口,支持对某个集群单独进行管理。 对于CCE集群,MCP中的集群控制台的功能体验与CCE控制台保持一致,集群控制台操作指导请参见CCE用户指南。 对于第三方集群,集群控制台提供基本的Kubernetes资源管理功能,例如节点、工作负载、服务与路由、容器存储、配置项与密钥、命名空间等资源。 通过集群控制台创建的资源属于集群资源而非MCP资源,两类资源的定义及区别请参见MCP资源说明。集群资源可以由用户直接创建、删除、修改,MCP对这类资源无感知,也无法对其进行多云化调度。 请尽量避免通过集群控制台直接对MCP自动创建的资源进行修改、删除。如需修改此类资源,请前往MCP控制台对集群进行差异化设置。 父主题: 集群控制台(第三方集群)
-
升级参数说明 最大浪涌(maxSurge) 与spec.replicas相比,可以有多少个Pod存在,默认值是25%,比如spec.replicas为 4,那升级过程中就不能超过5个Pod存在,即按1个的步伐升级,实际升级过程中会换算成数字,且换算会向上取整。这个值也可以直接设置成数字。 仅Deployment在“滚动升级”方式下支持配置。 最大无效实例数(maxUnavailable) 与spec.replicas相比,可以有多少个Pod失效,也就是删除的比例,默认值是25%,比如spec.replicas为4,那升级过程中就至少有3个Pod存在,即删除Pod的步伐是1。同样这个值也可以设置成数字。 仅Deployment、DaemonSet在“滚动升级”方式下支持配置。 实例可用最短时间(minReadySeconds) 指定新创建的 Pod 在没有任意容器崩溃情况下的最小就绪时间, 只有超出这个时间 Pod 才被视为可用。默认值为 0(Pod 在准备就绪后立即将被视为可用)。 仅Deployment、DaemonSet支持配置。 最大保留版本数(revisionHistoryLimit) 用来设定出于回滚目的所要保留的旧 ReplicaSet 数量。 这些旧 ReplicaSet 会消耗 etcd 中的资源,并占用 kubectl get rs 的输出。 每个工作负载修订版本的配置都存储在其 ReplicaSets 中;因此,一旦删除了旧的 ReplicaSet, 将失去回滚到工作负载的对应修订版本的能力。 默认情况下,系统保留 10 个旧 ReplicaSet,但其理想值取决于新工作负载的频率和稳定性。 升级最大时长(progressDeadlineSeconds) 指定系统在报告 Deployment 进展失败 之前等待 Deployment 取得进展的秒数。 这类报告会在资源状态中体现为 Type=Progressing、Status=False、 Reason=ProgressDeadlineExceeded。Deployment 控制器将持续重试 Deployment。 将来,一旦实现了自动回滚,Deployment 控制器将在探测到这样的条件时立即回滚 Deployment。 如果指定,则此字段值需要大于 .spec.minReadySeconds 取值。 仅Deployment支持配置。 缩容时间窗(terminationGracePeriodSeconds): 优雅删除时间,默认为30秒,删除Pod时发送SIGTERM终止信号,然后等待容器中的应用程序终止执行,如果在terminationGracePeriodSeconds时间内未能终止,则发送SIGKILL的系统信号强行终止。
-
创建守护进程集 登录MCP控制台,单击MCP实例名称,在左侧导航栏中选择“工作负载”,切换至“守护进程集”页签,并单击右上角“镜像创建”。 设置工作负载基本信息。 负载类型:选择“守护进程集”。 负载名称:新增工作负载的名称,命名必须唯一。 命名空间:选择工作负载所在命名空间。如需新建命名空间,请参见创建命名空间。 描述:工作负载的描述信息。 设置工作负载容器配置。 Pod中可以配置多个容器,您可以单击右侧“添加容器”为Pod配置多个容器并分别进行设置。 基本信息: 表1 基本信息参数说明 参数 说明 容器名称 为容器命名。 镜像名称 单击后方“选择镜像”,选择容器使用的镜像。 镜像版本 选择需要部署的镜像版本。 更新策略 镜像更新/拉取策略。勾选“总是拉取镜像”表示每次都从镜像仓库拉取镜像;如不勾选则优先使用节点已有的镜像,如果没有这个镜像再从镜像仓库拉取。 CPU配额 申请:容器需要使用的最小CPU值,默认0.25Core。 限制:允许容器使用的CPU最大值。建议设容器配额的最高限额,避免容器资源超额导致系统故障。 内存配额 申请:容器需要使用的内存最小值,默认512MiB。 限制:允许容器使用的内存最大值。如果超过,容器会被终止。 关于CPU/内存配额申请和限制的具体说明请参见设置容器规格。 初始化容器 选择容器是否作为初始化容器。 Init 容器是一种特殊容器,在 Pod 内的应用容器启动之前运行。详细说明请参见Init 容器。 生命周期:设置生命周期回调函数可在容器的特定阶段执行调用,比如容器在停止前希望执行某项操作,就可以设置相应的函数。目前提供的生命周期回调函数有启动命令、启动后处理、停止前处理,详情请参见设置容器生命周期。 健康检查:设置健康检查可以在容器运行过程中定时检查容器的健康状况,详情请参见设置容器健康检查。 环境变量:容器运行环境中设定的一个变量,通过环境变量设置的配置项不会随着Pod生命周期结束而变化,详情请参见设置环境变量。 数据存储:配置容器存储,可以使用本地存储和存储卷声明(PVC)。建议使用PVC将工作负载Pod数据存储在云存储上。若存储在本地磁盘上,节点异常无法恢复时,本地磁盘中的数据也将无法恢复。容器存储相关内容请参见容器存储。 安全设置:对容器权限进行设置,保护系统和其他容器不受其影响。请输入用户ID,容器将以当前用户权限运行。 镜像访问凭证:用于访问镜像仓库的凭证。该凭证仅访问私有镜像仓库时使用,如所选镜像为公开镜像,则无需选择密钥。密钥的创建方法请参见创建密钥。 (可选)单击服务配置栏的,进行工作负载服务配置。 若工作负载需要和其它服务互访,或需要被公网访问,您需要添加服务(Service),设置访问方式。工作负载访问的方式决定了这个工作负载的网络属性,不同访问方式的工作负载可以提供不同网络能力,操作详情请参见服务与路由。 您也可以在创建完工作负载之后再创建Service,参见集群内访问(ClusterIP)和节点访问(NodePort)。 Service名称:新增服务名称,用户可自定义,服务名称必须唯一。 访问类型: 集群内访问(ClusterIP):只能集群内访问服务。 节点访问(NodePort):可以通过集群内任意节点访问到服务。 服务亲和(仅节点访问设置): 集群级别:集群下所有节点的IP+访问端口均可以访问到此服务关联的负载,服务访问会因路由跳转导致一定性能损失,且无法获取到客户端源IP。 节点级别:只有通过负载所在节点的IP+访问端口才可以访问此服务关联的负载,服务访问没有因路由跳转导致的性能损失,且可以获取到客户端源IP。 端口配置: 协议:TCP或UDP,请根据业务的协议类型选择。 服务端口:容器端口映射到集群虚拟IP上的端口,用虚拟IP访问应用时使用,端口范围为1-65535,可任意指定。 容器端口:容器镜像中应用程序实际监听的端口,需用户确定。例如:nginx程序实际监听的端口为80。 节点端口(仅节点访问设置):容器端口映射到节点私有IP上的端口,用私有IP访问应用时使用,端口范围为30000-32767,建议选择“自动生成”。 自动生成:系统会自动分配端口号。 指定端口:指定固定的节点端口,默认取值范围为30000-32767。若指定端口时,请确保同个集群内的端口唯一性。 (可选)单击“展开高级配置”,设置工作负载高级配置。 升级策略:指定守护进程集的升级方式,包括整体替换升级和逐步滚动升级,详细参数说明请参见工作负载升级策略配置。 滚动升级:滚动升级将逐步用新版本的实例替换旧版本的实例,升级的过程中,业务流量会同时负载均衡分布到新的和旧的实例上,因此业务不会中断。 替换升级:守护进程集的替换升级,需要手动删除旧实例,再创建新实例。升级过程中业务会中断。 调度策略:您可设置亲和(affinity)与反亲和(anti-affinity)实现Pod的计划性调度,详细信息请参见调度策略(亲和与反亲和)。 标签与注解:您可以单击“添加”为Pod增加标签或注解,新增标签或注解的键不能与已有的重复。 单击“下一步”,对选择的集群进行调度与差异化配置。在选择可调度集群后,可对容器进行“差异化配置”。 调度策略: 调度策略: 复制分发:工作负载将在勾选的所有集群中进行部署。 部署集群:单击集群即可将其勾选为工作负载可调度的集群,集群个数请您根据自身业务进行确定。 差异化配置: 工作负载在不同的集群中部署可进行差异化的配置。在选择可调度集群后单击对应集群右上角,即可对每个集群进行差异化配置,差异化后的容器配置只对该集群生效。 具体参数说明请参见容器配置。 设置完成后,单击“创建工作负载”完成创建。
-
相关操作 通过MCP控制台,您还可以执行表2中的操作。 表2 相关操作 操作 说明 YAML创建 单击右上角“YAML创建”,可使用已有的YAML创建工作负载。 查看工作负载详情 单击已创建工作负载的名称,在“实例列表”页签下,可以查看Pod相关详情信息。 事件:可以设置查询条件,比如设置事件产生的时间段或搜索事件名称,查看相关事件。 容器列表:可以查看相应实例的容器名称、状态、镜像以及启停次数等。 查看YAML:可以查看相应实例的YAML文件。 编辑YAML 单击工作负载名称后的“编辑YAML”,可查看并编辑当前工作负载的YAML文件。 升级 单击工作负载名称后的“升级”。 更改工作负载信息,操作步骤与创建工作负载时一致。 单击“提交”,升级工作负载。 删除 单击工作负载名称后的“删除”,并单击“是”进行确认。 批量删除 勾选需要删除的工作负载。 单击左上角的“批量删除”。 单击“是”进行确认。
-
相关操作 通过MCP控制台,您还可以执行表2中的操作。 表2 相关操作 操作 说明 YAML创建 单击右上角“YAML创建”,可使用已有的YAML创建工作负载。 查看工作负载详情 单击已创建工作负载的名称,在“实例列表”页签下,可以查看Pod相关详情信息。 事件:可以设置查询条件,比如设置事件产生的时间段或搜索事件名称,查看相关事件。 容器列表:可以查看相应实例的容器名称、状态、镜像以及启停次数等。 查看YAML:可以查看相应实例的YAML文件。 编辑YAML 单击工作负载名称后的“编辑YAML”,可查看并编辑当前工作负载的YAML文件。 升级 单击工作负载名称后的“升级”。 更改工作负载信息,操作步骤与创建工作负载时一致。 单击“提交”,升级工作负载。 删除 单击工作负载名称后的“删除”,并单击“是”进行确认。 批量删除 勾选需要删除的工作负载。 单击左上角的“批量删除”。 单击“是”进行确认。
-
创建有状态负载 登录MCP控制台,单击MCP实例名称,在左侧导航栏中选择“工作负载”,切换至“有状态负载”页签,并单击右上角“镜像创建”。 设置工作负载基本信息。 负载类型:选择“有状态负载”。 负载名称:新增工作负载的名称,命名必须唯一。 命名空间:选择工作负载所在命名空间。如需新建命名空间,请参见创建命名空间。 描述:工作负载的描述信息。 实例数量:设置多集群的工作负载中各集群的实例数。用户可以设置具体实例个数,默认为2。每个工作负载实例都由相同的容器部署而成。在MCP中可以通过设置弹性扩缩容策略,根据工作负载资源使用情况,动态调整工作负载实例数。 设置工作负载容器配置。 Pod中可以配置多个容器,您可以单击右侧“添加容器”为Pod配置多个容器并分别进行设置。 基本信息: 表1 基本信息参数说明 参数 说明 容器名称 为容器命名。 镜像名称 单击后方“选择镜像”,选择容器使用的镜像。 镜像版本 选择需要部署的镜像版本。 更新策略 镜像更新/拉取策略。勾选“总是拉取镜像”表示每次都从镜像仓库拉取镜像;如不勾选则优先使用节点已有的镜像,如果没有这个镜像再从镜像仓库拉取。 CPU配额 申请:容器需要使用的最小CPU值,默认0.25Core。 限制:允许容器使用的CPU最大值。建议设容器配额的最高限额,避免容器资源超额导致系统故障。 内存配额 申请:容器需要使用的内存最小值,默认512MiB。 限制:允许容器使用的内存最大值。如果超过,容器会被终止。 关于CPU/内存配额申请和限制的具体说明请参见设置容器规格。 初始化容器 选择容器是否作为初始化容器。 Init 容器是一种特殊容器,在 Pod 内的应用容器启动之前运行。详细说明请参见Init 容器。 生命周期:设置生命周期回调函数可在容器的特定阶段执行调用,比如容器在停止前希望执行某项操作,就可以设置相应的函数。目前提供的生命周期回调函数有启动命令、启动后处理、停止前处理,详情请参见设置容器生命周期。 健康检查:设置健康检查可以在容器运行过程中定时检查容器的健康状况,详情请参见设置容器健康检查。 环境变量:容器运行环境中设定的一个变量,通过环境变量设置的配置项不会随着Pod生命周期结束而变化,详情请参见设置环境变量。 数据存储:配置容器存储,可以使用本地存储和存储卷声明(PVC)。建议使用PVC将工作负载Pod数据存储在云存储上。若存储在本地磁盘上,节点异常无法恢复时,本地磁盘中的数据也将无法恢复。容器存储相关内容请参见容器存储。 安全设置:对容器权限进行设置,保护系统和其他容器不受其影响。请输入用户ID,容器将以当前用户权限运行。 镜像访问凭证:用于访问镜像仓库的凭证。该凭证仅访问私有镜像仓库时使用,如所选镜像为公开镜像,则无需选择密钥。密钥的创建方法请参见创建密钥。 设置工作负载实例间发现服务配置。 StatefulSet实例间发现通过无头服务(Headless Service)实现,无头服务并不会分配 Cluster IP,并且查询会返回所有Pod的DNS记录,这样就可查询到所有Pod的IP地址。 Service名称:输入工作负载所对应的服务名称,用于集群内工作负载间的互相访问。该服务主要用于实例的内部发现,不需要有单独的IP地址,也不需要做负载均衡。 端口配置: 端口名称:端口名称用于给容器端口命名,通常以端口用途命名。 服务端口:输入服务端口。 容器端口:输入容器的监听端口。 (可选)单击服务配置栏的,进行工作负载服务配置。 若工作负载需要和其它服务互访,或需要被公网访问,您需要添加服务(Service),设置访问方式。工作负载访问的方式决定了这个工作负载的网络属性,不同访问方式的工作负载可以提供不同网络能力,操作详情请参见服务与路由。 您也可以在创建完工作负载之后再创建Service,参见集群内访问(ClusterIP)和节点访问(NodePort)。 Service名称:新增服务名称,用户可自定义,服务名称必须唯一。 访问类型: 集群内访问(ClusterIP):只能集群内访问服务。 节点访问(NodePort):可以通过集群内任意节点访问到服务。 服务亲和(仅节点访问设置): 集群级别:集群下所有节点的IP+访问端口均可以访问到此服务关联的负载,服务访问会因路由跳转导致一定性能损失,且无法获取到客户端源IP。 节点级别:只有通过负载所在节点的IP+访问端口才可以访问此服务关联的负载,服务访问没有因路由跳转导致的性能损失,且可以获取到客户端源IP。 端口配置: 协议:TCP或UDP,请根据业务的协议类型选择。 服务端口:容器端口映射到集群虚拟IP上的端口,用虚拟IP访问应用时使用,端口范围为1-65535,可任意指定。 容器端口:容器镜像中应用程序实际监听的端口,需用户确定。例如:nginx程序实际监听的端口为80。 节点端口(仅节点访问设置):容器端口映射到节点私有IP上的端口,用私有IP访问应用时使用,端口范围为30000-32767,建议选择“自动生成”。 自动生成:系统会自动分配端口号。 指定端口:指定固定的节点端口,默认取值范围为30000-32767。若指定端口时,请确保同个集群内的端口唯一性。 (可选)单击“展开高级配置”,设置工作负载高级配置。 升级策略:指定有状态负载的升级方式,包括整体替换升级和逐步滚动升级,详细参数说明请参见工作负载升级策略配置。 滚动升级:滚动升级将逐步用新版本的实例替换旧版本的实例,升级的过程中,业务流量会同时负载均衡分布到新的和旧的实例上,因此业务不会中断。 替换升级:有状态工作负载的替换升级,需要手动删除旧实例,再创建新实例。升级过程中业务会中断。 实例管理策略: 有序策略:默认实例管理策略,有状态负载会逐个的、按顺序的进行部署、删除、伸缩实例, 只有前一个实例部署Ready或者删除完成后,有状态负载才会操作后一个实例。 并行策略:支持有状态负载并行创建或者删除所有的实例,有状态负载发生变更时立刻在实例上生效。 调度策略:您可设置亲和(affinity)与反亲和(anti-affinity)实现Pod的计划性调度,详细信息请参见调度策略(亲和与反亲和)。 标签与注解:您可以单击“添加”为Pod增加标签或注解,新增标签或注解的键不能与已有的重复。 单击“下一步”,对选择的集群进行调度与差异化配置。在选择可调度集群后,可对容器进行“差异化配置”。 集群调度策略: 调度方式: 复制分发:工作负载将在勾选的所有集群中进行部署。 部署集群:单击集群即可将其勾选为工作负载可调度的集群,集群个数请您根据自身业务进行确定。 差异化配置: 工作负载在不同的集群中部署可进行差异化的配置。在选择可调度集群后单击对应集群右上角,即可对每个集群进行差异化配置,差异化后的容器配置只对该集群生效。 具体参数说明请参见容器配置。 设置完成后,单击“创建工作负载”完成创建。
-
配置说明 CPU配额: 表1 CPU配额说明 参数 说明 CPU申请 容器使用的最小CPU需求,作为容器调度时资源分配的判断依赖。只有当节点上可分配CPU总量 ≥ 容器CPU申请数时,才允许将容器调度到该节点。 CPU限制 容器能使用的CPU最大值。 建议配置方法: 节点的实际可用分配CPU量 ≥ 当前实例所有容器CPU限制值之和 ≥ 当前实例所有容器CPU申请值之和,节点的实际可用分配CPU量请在“集群管理”中对应集群的“节点管理”页面下查看。 内存配额: 表2 内存配额说明 参数 说明 内存申请 容器使用的最小内存需求,作为容器调度时资源分配的判断依赖。只有当节点上可分配内存总量 ≥ 容器内存申请数时,才允许将容器调度到该节点。 内存限制 容器能使用的内存最大值。当内存使用率超出设置的内存限制值时,该实例可能会被重启进而影响工作负载的正常使用。 建议配置方法: 节点的实际可用分配内存量 ≥ 当前节点所有容器内存限制值之和 ≥ 当前节点所有容器内存申请值之和,节点的实际可用分配内存量请在“集群管理”中对应集群的“节点管理”页面下查看。 可分配资源:可分配量按照实例请求值(request)计算,表示实例在该节点上可请求的资源上限,不代表节点实际可用资源。 计算公式为: 可分配CPU = CPU总量 - 所有实例的CPU请求值 - 其他资源CPU预留值 可分配内存 = 内存总量 - 所有实例的内存请求值 - 其他资源内存预留值
-
使用示例 以集群包含一个资源为4Core 8GB的节点为例,已经部署一个包含两个实例的工作负载到该集群上,并设置两个实例(实例1,实例2)的资源为{CPU申请,CPU限制,内存申请,内存限制}={1Core,2Core,2GB,2GB}。 那么节点上CPU和内存的资源使用情况如下: 节点CPU可分配量=4Core-(实例1申请的1Core+实例2申请的1Core)=2Core 节点内存可分配量=8GB-(实例1申请的2GB+实例2申请的2GB)=4GB 因此节点还剩余2Core 4GB的资源可供下一个新增的实例使用。
-
YAML样例 apiVersion: apps/v1kind: Deploymentmetadata: name: env-example namespace: defaultspec: replicas: 1 selector: matchLabels: app: env-example template: metadata: labels: app: env-example spec: containers: - name: container-1 image: nginx:alpine imagePullPolicy: Always resources: requests: cpu: 250m memory: 512Mi limits: cpu: 250m memory: 512Mi env: - name: key # 自定义 value: value - name: key1 # 配置项键值导入 valueFrom: configMapKeyRef: name: configmap-example key: key1 - name: key2 # 密钥键值导入 valueFrom: secretKeyRef: name: secret-example key: key2 - name: key3 # 变量引用,用Pod定义的字段作为环境变量的值 valueFrom: fieldRef: apiVersion: v1 fieldPath: metadata.name - name: key4 # 资源引用,用Container定义的字段作为环境变量的值 valueFrom: resourceFieldRef: containerName: container1 resource: limits.cpu divisor: 1 envFrom: - configMapRef: # 配置项导入 name: configmap-example - secretRef: # 密钥导入 name: secret-example imagePullSecrets: - name: default-secret
更多精彩内容
CDN加速
GaussDB
文字转换成语音
免费的服务器
如何创建网站
域名网站购买
私有云桌面
云主机哪个好
域名怎么备案
手机云电脑
SSL证书申请
云点播服务器
免费OCR是什么
电脑云桌面
域名备案怎么弄
语音转文字
文字图片识别
云桌面是什么
网址安全检测
网站建设搭建
国外CDN加速
SSL免费证书申请
短信批量发送
图片OCR识别
云数据库MySQL
个人域名购买
录音转文字
扫描图片识别文字
OCR图片识别
行驶证识别
虚拟电话号码
电话呼叫中心软件
怎么制作一个网站
Email注册网站
华为VNC
图像文字识别
企业网站制作
个人网站搭建
华为云计算
免费租用云托管
云桌面云服务器
ocr文字识别免费版
HTTPS证书申请
图片文字识别转换
国外域名注册商
使用免费虚拟主机
云电脑主机多少钱
鲲鹏云手机
短信验证码平台
OCR图片文字识别
SSL证书是什么
申请企业邮箱步骤
免费的企业用邮箱
云免流搭建教程
域名价格