云服务器内容精选

  • 升级 您可以通过CCE控制台实现无状态工作负载、有状态工作负载的快速升级。 本文以无状态工作负载为例说明如何进行升级。 若需要更换镜像或镜像版本,您需要提前将镜像上传到 容器镜像服务 ,上传方法请参见通过Docker客户端上传镜像。 登录CCE控制台,进入一个已有的集群,在左侧导航栏中选择“工作负载”。 选择“无状态负载”页签,单击待升级工作负载后的“升级”。 暂不支持批量升级多个工作负载。 有状态工作负载升级时,若升级类型为替换升级,需要用户手动删除实例后才能升级成功,否则界面会始终显示“处理中”。 请根据业务需求进行工作负载的升级,参数设置方法与创建工作负载时一致。 更新完成后,单击“升级工作负载”,并手动确认YAML文件差异后提交升级。
  • 事件 本文以无状态工作负载为例说明如何使用事件功能。任务或定时任务中的事件功能可直接单击工作负载操作栏中的“事件”按钮查看。 登录CCE控制台,进入一个已有的集群,在左侧导航栏中选择“工作负载”。 选择“无状态负载”页签,单击工作负载名称,可在“实例列表”中单击某个实例的“事件”按钮,查看该工作负载或具体实例的事件名称、事件类型、发生次数、Kubernetes事件、首次和最近发生的时间。 事件保存时间为1小时,1小时后自动清除数据。
  • 操作场景 工作负载创建后,您可以对其执行升级、编辑YAML、日志、监控、回退、删除等操作。 表1 工作负载/任务管理 操作 描述 日志 可查看工作负载的日志信息。 升级 可以通过更换镜像或镜像版本实现无状态工作负载、有状态工作负载的快速升级,业务无中断。 编辑YAML 可通过在线YAML编辑窗对无状态工作负载、有状态工作负载、定时任务和容器组的YAML文件进行修改和下载。普通任务的YAML文件仅支持查看、复制和下载。 说明: 如果对已有的定时任务(CronJob)进行修改,修改之后运行的新Pod将使用新的配置,而已经运行的Pod将继续运行不会发生任何变化。 回退 无状态工作负载可以进行回退操作,仅无状态工作负载可用。 重新部署 工作负载可以进行重新部署操作,重新部署后将重启负载下的全部容器组Pod。 关闭/开启升级 无状态工作负载可以进行关闭/开启升级操作,仅无状态工作负载可用。 标签管理 标签是以key/value键值对的形式附加在工作负载上的。添加标签后,可通过标签对工作负载进行管理和选择。任务或定时任务无法使用标签管理功能。 删除 若工作负载无需再使用,您可以将工作负载或任务删除。工作负载或任务删除后,将无法恢复,请谨慎操作。 事件 查看具体实例的事件名称、事件类型、发生次数、Kubernetes事件、首次和最近发生的时间。 停止/启动 停止/启动一个定时任务,该功能仅定时任务可用。
  • 配置访问OBS服务的 VPC终端节点 登录VPC终端节点控制台。 在“终端节点”页面,单击“购买终端节点”。 根据界面提示配置必选参数。 表3 终端节点配置参数 参数 说明 区域 终端节点所在区域,需要与Autopilot集群所在区域保持一致。 计费方式 此处选择按需计费。 服务类别 选择“按名称查找服务”。 服务名称 参考表4,根据集群所在区域填写,并单击“验证”。 虚拟私有云 需要选择Autopilot集群所在的虚拟私有云。 路由表 选择一个已有的路由表。 表4 OBS服务名称 区域 名称 华南-广州友好 cn-south-4.com.myhuaweicloud.v4.obsv2 西南-贵阳一 cn-southwest-2.com.myhuaweicloud.v4.obsv2 华南-广州 cn-south-1.com.myhuaweicloud.v4.obsv2 华东-上海一 cn-east-3.com.myhuaweicloud.v4.global.obsv2 华北-北京四 cn-north-4.com.myhuaweicloud.v4.obsv2 亚太-曼谷 ap-southeast-2.myhuaweicloud.v4.obsv2 亚太-新加坡 ap-southeast-3.com.myhuaweicloud.v4.obsv2 图3 创建OBS服务的VPC终端节点 参数配置完成,单击“立即购买”,进行规格确认。 规格确认无误,单击“提交”,任务提交成功。 参数信息配置有误,需要修改,单击“上一步”,修改参数,然后单击“提交”。 返回终端节点列表,如果终端节点状态为“已接受”,表示终端节点已成功连接至终端节点服务。
  • 配置访问SWR服务的VPC终端节点 登录VPC终端节点控制台。 在“终端节点”页面,单击“购买终端节点”。 根据界面提示配置必选参数。 表1 终端节点配置参数 参数 说明 区域 终端节点所在区域,需要与Autopilot集群所在区域保持一致。 计费方式 此处选择按需计费。 服务类别 选择“按名称查找服务”。 服务名称 参考表2,根据集群所在区域填写,并单击“验证”。 虚拟私有云 需要选择Autopilot集群所在的虚拟私有云。 子网 选择一个已有子网。 IPv4地址 默认可选择“自动分配IPv4地址”,您也可以根据需求选择“手动指定IP地址”。 表2 SWR服务名称 区域 名称 华南-广州友好 cn-south-4.SWR.f80386a2-ce16-4f92-9df9-20f7fc01e7a2 西南-贵阳一 com.myhuaweicloud.cn-southwest-2.swr 华南-广州 swr.cn-south-1.myhuaweicloud.com 华东-上海一 com.myhuaweicloud.cn-east-3.swr 华北-北京四 com.myhuaweicloud.cn-north-4.swr 亚太-曼谷 ap-southeast-2.SWR.ac7067e1-f8d1-4f5c-abe1-0f78960e5d4c 亚太-新加坡 com.myhuaweicloud.ap-southeast-3.swr 图2 创建SWR服务的VPC终端节点 参数配置完成,单击“立即购买”,进行规格确认。 规格确认无误,单击“提交”,任务提交成功。 参数信息配置有误,需要修改,单击“上一步”,修改参数,然后单击“提交”。 返回终端节点列表,如果终端节点状态为“已接受”,表示终端节点已成功连接至终端节点服务。
  • 升级前检查项 集群升级前,系统将自动进行全面的升级前检查,当集群不满足升级前检查条件时将无法继续升级。为了能够更好地避免升级风险,本文提供全量的升级前检查问题及解决方案,帮助您对可能存在的升级故障进行预处理。 表1 检查项列表 序号 检查项名称 检查项说明 1 升级管控检查异常处理 检查集群是否处于升级管控中。 2 插件检查 检查插件状态是否正常 检查插件是否支持目标版本 3 Helm模板检查异常处理 检查当前HelmRelease记录中是否含有目标集群版本不支持的K8s废弃API,可能导致升级后helm模板不可用。 4 Master节点SSH联通性检查异常处理 检查当前CCE是否能连接至您的Master节点。 5 K8s废弃资源检查异常处理 检查集群是否存在对应版本已经废弃的资源。 6 cce-hpa-controller插件限制检查异常处理 检查到目标cce-controller-hpa插件版本是否存在兼容性限制。 7 K8s废弃API检查 系统会扫描过去一天的审计日志,检查用户是否调用目标K8s版本已废弃的API。 说明: 由于审计日志的时间范围有限,该检查项仅作为辅助手段,集群中可能已使用即将废弃的API,但未在过去一天的审计日志中体现,请您充分排查。 8 HTTPS类型负载均衡证书一致性检查 检查HTTPS类型负载均衡所使用的证书,是否在ELB服务侧被修改。 父主题: 升级前检查异常问题排查
  • 通过控制台创建 登录CCE控制台。 单击集群名称进入集群,在左侧选择“工作负载”,在右上角单击“创建工作负载”。 配置工作负载的信息。 基本信息 负载类型:选择有状态工作负载StatefulSet。 负载名称:填写工作负载的名称。请输入1到63个字符的字符串,可以包含小写英文字母、数字和中划线(-),并以小写英文字母开头,小写英文字母或数字结尾。 命名空间:选择工作负载的命名空间,默认为default。您可以单击后面的“创建命名空间”,命名空间的详细介绍请参见创建命名空间。 实例数量:填写实例的数量,即工作负载Pod的数量。 容器配置 容器信息 Pod中可以配置多个容器,您可以单击右侧“添加容器”为Pod配置多个容器。 基本信息:配置容器的基本信息。 参数 说明 容器名称 为容器命名。 更新策略 镜像更新/拉取策略。可以勾选“总是拉取镜像”,表示每次都从镜像仓库拉取镜像;如不勾选则优使用节点已有的镜像,如果没有这个镜像再从镜像仓库拉取。 镜像名称 单击后方“选择镜像”,选择容器使用的镜像。 如果需要使用第三方镜像,请参见使用第三方镜像。 镜像版本 选择需要部署的镜像版本。 CPU配额 CPU资源限制值,即允许容器使用的CPU最大值,防止占用过多资源。 内存配额 内存资源限制值,即允许容器使用的内存最大值。如果超过,容器会被终止。 初始化容器(可选) 选择容器是否作为初始化(Init)容器。初始化(Init)容器不支持设置健康检查。 Init容器是一种特殊容器,可以在Pod中的其他应用容器启动之前运行。每个Pod中可以包含多个容器,同时Pod中也可以有一个或多个先于应用容器启动的Init容器,当所有的Init 容器运行完成时,Pod中的应用容器才会启动并运行。详细说明请参见Init容器。 生命周期(可选):在容器的生命周期的特定阶段配置需要执行的操作,例如启动命令、启动后处理和停止前处理,详情请参见设置容器生命周期。 健康检查(可选):根据需求选择是否设置存活探针、就绪探针及启动探针,详情请参见设置容器健康检查。 环境变量(可选):支持通过键值对的形式为容器运行环境设置变量,可用于把外部信息传递给Pod中运行的容器,可以在应用部署后灵活修改,详情请参见设置环境变量。 数据存储(可选):在容器内挂载本地存储或 云存储 ,不同类型的存储使用场景及挂载方式不同。 有状态负载支持“动态挂载”存储。 动态挂载通过volumeClaimTemplates字段实现,并依赖于StorageClass动态创建能力。有状态工作负载通过volumeClaimTemplates字段为每一个Pod关联了一个独有的PVC,而这个PVC又会和对应的PV绑定。因此当Pod被重新调度后,仍然能够根据该PVC名称挂载原有的数据。 负载创建完成后,动态挂载的存储不支持更新。 安全设置(可选):对容器权限进行设置,保护系统和其他容器不受其影响。请输入用户ID,容器将以当前用户权限运行。 镜像访问凭证:用于访问镜像仓库的凭证,默认取值为default-secret,使用default-secret可访问SWR镜像仓库的镜像。default-secret详细说明请参见default-secret。 实例间发现服务配置 Headless Service用于解决StatefulSet内Pod互相访问的问题,Headless Service给每个Pod提供固定的访问 域名 。具体请参见Headless Service。 服务配置(可选) 服务(Service)可为Pod提供外部访问。每个Service有一个固定IP地址,Service将访问流量转发给Pod,而且Service可以为这些Pod自动实现负载均衡。 您也可以在创建完工作负载之后再创建Service,不同类型的Service概念和使用方法请参见服务(Service)。 高级配置(可选) 升级策略:指定工作负载的升级方式及升级参数,支持滚动升级和替换升级,详情请参见设置工作负载升级策略。 实例管理策略(podManagementPolicy): 对于某些分布式系统来说,StatefulSet的顺序性保证是不必要和/或者不应该的。 这些系统仅仅要求唯一性和身份标志。 有序策略:默认实例管理策略,有状态负载会逐个的、按顺序的进行部署、删除、伸缩实例,只有前一个实例部署Ready或者删除完成后,有状态负载才会操作后一个实例。 并行策略:支持有状态负载并行创建或者删除所有的实例,有状态负载发生变更时立刻在实例上生效。 标签与注解:以键值对形式为工作负载Pod添加标签或注解,填写完成后需单击“确认添加”。关于标签与注解的作用及配置说明,请参见设置标签与注解。 DNS配置:为工作负载单独配置DNS策略,详情请参见工作负载DNS配置说明。 单击右下角“创建工作负载”。
  • 通过kubectl命令行创建 Autopilot集群暂不支持配置节点亲和与反亲和,所以当您使用kubectl命令行创建工作负载时,为避免Pod创建失败,请不要配置affinity字段。 请参见通过kubectl连接集群,使用kubectl连接集群。 创建一个名为nginx-statefulset.yaml的文件。 其中,nginx-statefulset.yaml为自定义名称,您可以随意命名。 vi nginx-statefulset.yaml 以下内容仅为示例,若需要了解statefulset的详细内容,请参考kubernetes官方文档。 apiVersion: apps/v1 kind: StatefulSet metadata: name: nginx spec: selector: matchLabels: app: nginx template: metadata: labels: app: nginx spec: containers: - name: container-1 image: nginx:latest imagePullPolicy: IfNotPresent resources: requests: cpu: 250m memory: 512Mi limits: cpu: 250m memory: 512Mi imagePullSecrets: - name: default-secret dnsPolicy: ClusterFirst serviceName: nginx-svc replicas: 2 updateStrategy: type: RollingUpdate vi nginx-headless.yaml apiVersion: v1 kind: Service metadata: name: nginx-svc namespace: default labels: app: nginx spec: selector: app: nginx version: v1 clusterIP: None ports: - name: nginx targetPort: 80 nodePort: 0 port: 80 protocol: TCP type: ClusterIP 创建工作负载以及对应headless服务。 kubectl create -f nginx-statefulset.yaml 回显如下,表示有状态工作负载(stateful)已创建成功。 statefulset.apps/nginx created kubectl create -f nginx-headless.yaml 回显如下,表示对应headless服务已创建成功。 service/nginx-svc created 若工作负载需要被访问(集群内访问或节点访问),您需要设置访问方式,具体请参见服务(Service)创建对应服务。
  • 开通监控中心 购买集群时开通 登录云容器引擎控制台,购买集群。 在“插件选择”页面,勾选云原生监控插件。 在“插件配置”页面,选择云原生监控插件需要对接的 AOM 实例。如AccessCode未创建,请先创建AccessCode。 图1 启用容器监控 在监控中心页面开通 在目标集群左侧导航栏选择“监控中心”。 单击“立即开通”,并选择指标上报的AOM实例。 图2 开通监控中心 开通成功后,等待3-5分钟,监控数据将上报至AOM实例,随即可以使用监控中心相关功能。 在插件管理页面开通 在目标集群左侧导航栏选择“插件中心”。 选择云原生监控插件,单击“安装”。 开启对接AOM开关,指标将上报至AOM实例。 图3 安装云原生监控插件 插件安装完成3-5分钟后,监控数据将上报至AOM实例,随即可以使用监控中心相关功能。 如需关闭监控中心,请前往CCE控制台“插件管理”页面卸载云原生监控插件,或关闭AOM对接,即可以停止使用该功能。
  • 使用模板时的API资源限制 资源 限制项 说明 推荐替代方案 namespaces - 支持 为安全起见,Autopilot 不允许在系统管理的命名空间(如 kube-system)中部署工作负载,不可进行任何资源的创建、修改、删除、exec等。 nodes - 支持 只支持查询,不支持增删改功能 persistentvolumeclaims - 支持 - persistentvolumes - 支持 - pods HostPath 限制挂载本地宿主机文件到容器中 使用emptyDir或云存储 HostNetwork 限制将宿主机端口映射到容器上 使用type=LoadBalancer的负载均衡 HostPID 限制容器可见宿主机PID空间 用户不感知节点,无需使用 HostIPC 限制容器进程和宿主机进程间通信 用户不感知节点,无需使用 NodeName 限制Pod调度到特定节点 用户不感知节点,无需使用 特权容器 不支持 - Linux capabilities 支持"SETPCAP", "MKNOD", "AUDIT_WRITE", "CHOWN", "DAC_OVERRIDE", "FOWNER", "FSETID", "KILL", "SETGID", "SETUID", "NET_BIND_SERVICE", "SYS_CHROOT", "SETFCAP", "SYS_PTRACE" 可以通过SecurityContext设置开启NET_RAW 、SYS_PTRACE 、NET_ADMIN 使用允许值 调度的节点亲和与打散规则 限制将Pod调度到指定节点或者具有某些标签的节点上,或者将一批Pod打散到具有某些标签的节点上。 Autopilot集群中应用指定节点亲和性或nodeSelector字段不生效。 无需指定节点调度,但可以指定Pod到某一个可用区 可以将一批Pod打散到多个可用区 Pod间亲和与反亲和配置 不生效 无需配置 allowPrivilegeEscalation是否允许特权升级 不支持 使用默认配置 RuntimeClassName 无需配置,上层应用(Pod除外)指定RuntimeClassName时后端将自动修改为系统默认支持的runc 无需配置 时区同步(会挂载主机/etc/localtime) 不支持 使用默认配置 serviceaccounts - 不支持修改系统配置、不允许绑定系统角色 使用默认配置 services - 限制nodeport,ELB只支持独享型 使用type=LoadBalancer的负载均衡 daemonsets apps 限制使用Daemonset类workload 通过Sidecar形式在Pod中部署多个镜像 deployments apps 支持,其中限制使用的字段与Pod一致 使用允许值 replicasets apps 支持,其中限制使用的字段与Pod一致 使用允许值 statefulsets apps 支持,其中限制使用的字段与Pod一致 使用允许值 cronjobs batch 支持,其中限制使用的字段与Pod一致 使用允许值 jobs batch 支持,其中限制使用的字段与Pod一致 使用允许值 clusterrolebindings rbac.authorization.k8s.io 支持,限制绑定系统组与系统用户,cce-service组 使用允许值 rolebindings rbac.authorization.k8s.io 支持,限制绑定系统组与系统用户,cce-service组 使用允许值 storageclasses storage.k8s.io 不支持创建obs、evs类型的storageclass;其他功能支持 使用允许值 父主题: 模板(Helm Chart)
  • 创建模板实例 登录CCE控制台,单击集群名称进入集群,在左侧导航栏中选择“应用模板”。 在“我的模板”页签中,单击目标模板下的“安装”。 参照表2设置安装工作负载参数。 表2 安装工作负载参数说明 参数 参数说明 实例名称 新建模板实例名称,命名必须唯一。 命名空间 指定部署的命名空间。 选择版本 选择模板的版本。 配置文件 用户可以导入values.yaml文件,导入后可替换模板包中的values.yaml文件;也可直接在配置框中在线编辑模板参数。 说明: 此处导入的values.yaml文件需符合yaml规范,即KEY:VALUE格式。对于文件中的字段不做任何限制。 导入的value.yaml的key值必须与所选的模板包的values.yaml保持一致,否则不会生效。即key不能修改。 单击“添加文件”。 选择对应的values.yaml文件,单击“打开”。 配置完成后,单击“安装”。 在“模板实例”页签下可以查看模板实例的安装情况。
  • 为API Server绑定EIP 登录CCE控制台,单击集群名称进入集群。 查看集群总览页,在右边“连接信息”下公网地址一栏,单击“绑定”。 选择一个已有的弹性公网IP。如果无可用IP,可单击“创建弹性IP”前往EIP控制台进行创建。 通过绑定EIP实现公网访问,集群存在风险,建议绑定的EIP配置 DDoS高防服务 或配置API Server访问策略。 绑定EIP将会短暂重启集群API Server并更新kubeconfig证书,请避免在此期间操作集群。 单击“确定”。
  • 删除集群 登录CCE控制台,在左侧导航栏中选择“集群管理”。 找到需要删除的集群,查看集群的更多操作,并单击“删除集群”。 在弹出的“删除集群”窗口中,根据系统提示,勾选删除集群时需要释放的资源。 删除集群下负载均衡ELB等网络资源(仅删除自动创建的ELB资源)。 其余关联创建的VPC级别的资源(如终端节点、NAT网关、SNAT出网EIP)在删除集群时默认保留,请确认其他集群或服务未重用该资源,并前往网络控制台进行删除。 单击“是”,开始执行删除集群操作。 删除集群需要花费1~3分钟,请耐心等候。
  • 注意事项 删除集群会删除集群下的工作负载与服务,相关业务将无法恢复。在执行操作前,请确保相关数据已完成备份或者迁移,删除完成后数据无法找回,请谨慎操作。 部分资源不会删除: Service和Ingress关联的已有ELB实例(仅删除自动创建的ELB实例) 关联创建的VPC级别的资源(如终端节点、NAT网关、SNAT出网EIP) 在集群非运行状态(例如冻结、不可用状态)时删除集群,会残留存储、网络等关联资源,请妥善处理。
  • 告警中心概述 云原生告警是可观测性体系里面比较重要的一环。在云原生告警中,除了传统的CPU、内存等资源使用量的告警以外,还有容器重启等事件告警、应用访问失败等自定义的监控指标告警。 CCE的云原生告警能力是由AOM服务提供的,支持指标和事件的告警。同时,CCE集群详情中增加了告警中心能力,能支持快速配置资源等常用告警和告警查看。 图1 告警中心架构 告警中心 基于AOM服务的告警能力实现,提供集群内的告警快速检索、告警快速配置的能力。用户可以通过告警中心一键配置常用的告警规则。 AOM服务 华为云 应用运维管理 服务,是云上应用的一站式立体化运维管理平台,是云上监控、告警的基础。 SMN 服务 华为云的 消息通知 服务,是云上应用发送告警或通知的依赖服务。在云原生场景中,在AOM服务触发的告警将通过SMN里面配置的短信、电子邮件、HTTP等方式发送。 父主题: 告警中心