华为云用户手册

  • 调用API 本章节仅提供请求地址和认证参数的配置指导,客户端的其他参数配置需要用户自行调整,如超时配置、SSL配置等。如果客户端参数配置错误会导致业务受损,建议参考业界标准进行配置。 配置请求地址相关参数。 API调用场景 API请求参数配置 使用 域名 调用API 使用服务分配的子域名或服务绑定的域名调用API,无需另外配置。 使用IP调用非DEFAULT分组的API 使用IP地址直接调用非DEFAULT分组下的非APP认证的API,需要在请求消息中添加Header参数“host”。 配置认证参数。 API认证方式 API请求参数配置 APP认证(签名认证) 使用获取的SDK对API请求进行签名,具体请参考使用APP认证调用API。 APP认证(简易认证) 在API请求中添加Header参数“X-Apig-AppCode”,参数值为获取API及文档中获取到的AppCode。具体请参考快速入门。 华为 IAM 认证(Token认证) 先获取云服务平台的认证Token,然后在API请求中携带Token进行认证,具体请参考Token认证。 华为IAM认证(AK/SK认证) 调用API时,使用获取的SDK对API请求进行签名,具体请参考AK/SK认证。 自定义认证 在API请求参数中携带认证信息进行认证。 无认证 无需认证,可直接调用API。
  • 实例计费方式更改 支持实例包周期和按需计费方式互换。注意包周期转按需计费生效的前提是包周期已到期。 在左侧导航栏单击“实例管理”。 在需要更改计费方式的实例上,单击“更多”,选择“转包周期”或“转按需”。 按需转包周期:选择续费时长,单击“去支付”,完成付款即可。 包周期转按需:包周期转按需生效的前提是包周期已到期,包周期转按需操作可在包周期到期前或包周期到期后的冻结期内执行。单击“转按需”即可。
  • APIG使用流程 API网关(API Gateway)是为您提供高性能、高可用、高安全的API托管服务,帮助您轻松构建、管理和部署任意规模的API。借助API网关的开放API和调用API功能,可以简单、快速、低成本、低风险地实现内部系统集成、业务能力开放。 开放API 企业或开发者通过API网关开放自身的服务与数据。 图1 API网关服务开放API 开放API的业务使用流程如下图所示。 图2 API网关服务开放API基本流程 创建实例 共享版无需购买实例,可直接进入共享版。 创建API分组 每个API都归属到某一个API分组下,在创建API前应提前创建API分组。 绑定域名 在开放API前,您需要为API分组绑定一个独立域名,供API调用者访问API使用。 在绑定独立域名前,您可以使用系统为API分配的默认子域名进行API调试,每天最多可以访问默认子域名1000次。 创建API 把已有后端服务封装为标准RESTFul API,并对外开放。 API创建成功后,您可根据业务需求对API设置访问策略: 流控控制 流量控制可限制单位时间内API的被调用次数,保护后端服务。 访问控制 访问API的IP地址和账户,您可以通过设置IP地址或账户的黑白名单来拒绝/允许某个IP地址或账户访问API。 签名密钥 签名密钥用于后端服务验证API网关的身份,在API网关请求后端服务时,保障后端服务的安全。 调试API 验证 API服务 的功能是否正常可用。 发布API 把API发布到环境中,API只有在发布到环境后,才支持被调用。 调用API 企业或开发者如何获取并调用他人在API网关开放的API,减少开发时间与成本。 图3 API网关服务调用API 调用API的业务使用流程如下图所示。 图4 API网关服务调用API基本流程 获取API 获取API的请求信息,包括访问域名、请求协议、请求方法、请求路径以及认证方式等信息。 创建应用 使用APP认证的API,需要在API网关中创建一个应用,以生成应用ID和密钥对(AppKey、AppSecret)。将创建的应用绑定API后,使用APP认证调用API。 获取SDK 可通过SDK对AK/SK生成签名,并调用API。 调用API 通过获取API及API访问地址,调用API。根据API使用认证方式的不同,调用API时需要进行不同的认证鉴权操作。 父主题: 共享版操作指导(仅存量用户使用)
  • 前提条件 已在API网关控制台创建签名密钥,并绑定API,具体请参见创建并使用签名密钥。 已获取签名密钥的Key和Secret,请参见签名前准备获取。 进入API网关控制台,参考《API网关用户指南》的“SDK”章节,进入SDK页面并下载SDK。或直接下载SDK的最新版本。 已获取apigateway-backend-signature-demo。 已安装IntelliJ IDEA 2018.3.5或以上版本,如果未安装,请至IntelliJ IDEA官方网站下载。 已安装Java Development Kit 1.8.111或以上版本,如果未安装,请至Oracle官方下载页面下载。暂不支持Java Development Kit 17或以上版本。
  • 操作场景 工作负载创建后,您可以对其执行升级、编辑YAML、日志、监控、回退、删除等操作。 表1 工作负载/任务管理 操作 描述 日志 可查看工作负载的日志信息。 升级 可以通过更换镜像或镜像版本实现无状态工作负载、有状态工作负载的快速升级,业务无中断。 编辑YAML 可通过在线YAML编辑窗对无状态工作负载、有状态工作负载、定时任务和容器组的YAML文件进行修改和下载。普通任务的YAML文件仅支持查看、复制和下载。 说明: 如果对已有的定时任务(CronJob)进行修改,修改之后运行的新Pod将使用新的配置,而已经运行的Pod将继续运行不会发生任何变化。 回退 无状态工作负载可以进行回退操作,仅无状态工作负载可用。 重新部署 工作负载可以进行重新部署操作,重新部署后将重启负载下的全部容器组Pod。 关闭/开启升级 无状态工作负载可以进行关闭/开启升级操作,仅无状态工作负载可用。 标签管理 标签是以key/value键值对的形式附加在工作负载上的。添加标签后,可通过标签对工作负载进行管理和选择。任务或定时任务无法使用标签管理功能。 删除 若工作负载无需再使用,您可以将工作负载或任务删除。工作负载或任务删除后,将无法恢复,请谨慎操作。 事件 查看具体实例的事件名称、事件类型、发生次数、Kubernetes事件、首次和最近发生的时间。 停止/启动 停止/启动一个定时任务,该功能仅定时任务可用。
  • 事件 本文以无状态工作负载为例说明如何使用事件功能。任务或定时任务中的事件功能可直接单击工作负载操作栏中的“事件”按钮查看。 登录CCE控制台,进入一个已有的集群,在左侧导航栏中选择“工作负载”。 选择“无状态负载”页签,单击工作负载名称,可在“实例列表”中单击某个实例的“事件”按钮,查看该工作负载或具体实例的事件名称、事件类型、发生次数、Kubernetes事件、首次和最近发生的时间。 事件保存时间为1小时,1小时后自动清除数据。
  • 升级 您可以通过CCE控制台实现无状态工作负载、有状态工作负载的快速升级。 本文以无状态工作负载为例说明如何进行升级。 若需要更换镜像或镜像版本,您需要提前将镜像上传到 容器镜像服务 ,上传方法请参见通过Docker客户端上传镜像。 登录CCE控制台,进入一个已有的集群,在左侧导航栏中选择“工作负载”。 选择“无状态负载”页签,单击待升级工作负载后的“升级”。 暂不支持批量升级多个工作负载。 有状态工作负载升级时,若升级类型为替换升级,需要用户手动删除实例后才能升级成功,否则界面会始终显示“处理中”。 请根据业务需求进行工作负载的升级,参数设置方法与创建工作负载时一致。 更新完成后,单击“升级工作负载”,并手动确认YAML文件差异后提交升级。
  • 配置访问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等方式发送。 父主题: 告警中心
  • 在StorageClass中设置挂载参数 在StorageClass中设置挂载参数同样可以通过mountOptions字段实现,如下所示,mountOptions支持挂载的字段请参见对象存储挂载参数。 使用kubectl连接集群,详情请参见通过kubectl连接集群。 创建自定义的StorageClass,示例如下: kind: StorageClass apiVersion: storage.k8s.io/v1 metadata: name: csi-obs-mount-option provisioner: everest-csi-provisioner parameters: csi.storage.k8s.io/csi-driver-name: obs.csi.everest.io csi.storage.k8s.io/fstype: s3fs everest.io/obs-volume-type: STANDARD reclaimPolicy: Delete volumeBindingMode: Immediate mountOptions: # 挂载参数 - umask=027 StorageClass设置好后,就可以使用这个StorageClass创建PVC,动态创建出的PV会默认带有StorageClass中设置的挂载参数,具体操作步骤请参见通过静态存储卷使用已有对象存储。
  • 对象存储挂载参数 CCE Autopilot在挂载对象存储时默认设置了表1和表2的参数,其中表1中的参数不可取消。除了这些参数外,您还可以设置其他的对象存储挂载参数,具体请参见挂载并行文件系统。 表1 默认使用且不可取消的挂载参数 参数 参数值 描述 use_ino 无需填写 使用该选项,由obsfs分配inode编号。读写模式下自动开启。 big_writes 无需填写 配置后可更改写缓存最大值大小 nonempty 无需填写 允许挂载目录非空 allow_other 无需填写 允许其他用户访问并行文件系统 no_check_certificate 无需填写 不校验服务端证书 sigv2 无需填写 签名版本。对象桶自动使用。 public_bucket 1 设置为1时匿名挂载公共桶。对象桶只读模式下自动使用。 表2 默认使用且可修改的挂载参数 参数 参数值 描述 max_write 131072 仅配置big_writes的情况下才生效,推荐使用128KB。 ssl_verify_hostname 0 不根据主机名验证SSL证书。 max_background 100 可配置后台最大等待请求数。并行文件系统自动使用。 umask 0 配置文件权限的掩码。 例如,如果umask值为022,而目录最大权限为777,则设置umask后该目录权限为777 - 022 = 755,即rwxr-xr-x。
  • 使用kubectl命令登录容器 使用kubectl连接集群,详情请参见通过kubectl连接集群。 执行以下命令,查看已创建的Pod。 kubectl get pod 示例输出如下: NAME READY STATUS RESTARTS AGE nginx-59d89cb66f-mhljr 1/1 Running 0 11m 查询该Pod中的容器名称。 kubectl get po nginx-59d89cb66f-mhljr -o jsonpath='{range .spec.containers[*]}{.name}{end}{"\n"}' 示例输出如下: container-1 执行以下命令,登录到nginx-59d89cb66f-mhljr这个Pod中名为container-1的容器。 kubectl exec -it nginx-59d89cb66f-mhljr -c container-1 -- /bin/sh 如需退出容器,可执行exit命令。
  • 验证数据持久化及共享性 查看部署的应用及文件。 执行以下命令,查看已创建的Pod。 kubectl get pod | grep web-demo 预期输出如下: web-demo-846b489584-mjhm9 1/1 Running 0 46s web-demo-846b489584-wvv5s 1/1 Running 0 46s 依次执行以下命令,查看Pod的/data路径下的文件。 kubectl exec web-demo-846b489584-mjhm9 -- ls /data kubectl exec web-demo-846b489584-wvv5s -- ls /data 两个Pod均无返回结果,说明/data路径下无文件。 执行以下命令,在/data路径下创建static文件。 kubectl exec web-demo-846b489584-mjhm9 -- touch /data/static 执行以下命令,查看/data路径下的文件。 kubectl exec web-demo-846b489584-mjhm9 -- ls /data 预期输出如下: static 验证数据持久化 执行以下命令,删除名称为web-demo-846b489584-mjhm9的Pod。 kubectl delete pod web-demo-846b489584-mjhm9 预期输出如下: pod "web-demo-846b489584-mjhm9" deleted 删除后,Deployment控制器会自动重新创建一个副本。 执行以下命令,查看已创建的Pod。 kubectl get pod | grep web-demo 预期输出如下,web-demo-846b489584-d4d4j为新建的Pod: web-demo-846b489584-d4d4j 1/1 Running 0 110s web-demo-846b489584-wvv5s 1/1 Running 0 7m50s 执行以下命令,验证新建的Pod中/data路径下的文件是否更改。 kubectl exec web-demo-846b489584-d4d4j -- ls /data 预期输出如下: static static文件仍然存在,则说明数据可持久化保存。 验证数据共享性 执行以下命令,查看已创建的Pod。 kubectl get pod | grep web-demo 预期输出如下: web-demo-846b489584-d4d4j 1/1 Running 0 7m web-demo-846b489584-wvv5s 1/1 Running 0 13m 执行以下命令,在任意一个Pod的/data路径下创建share文件。本例中选择名为web-demo-846b489584-d4d4j的Pod。 kubectl exec web-demo-846b489584-d4d4j -- touch /data/share 并查看该Pod中/data路径下的文件。 kubectl exec web-demo-846b489584-d4d4j -- ls /data 预期输出如下: share static 由于写入share文件的操作未在名为web-demo-846b489584-wvv5s的Pod中执行,在该Pod中查看/data路径下是否存在文件以验证数据共享性。 kubectl exec web-demo-846b489584-wvv5s -- ls /data 预期输出如下: share static 如果在任意一个Pod中的/data路径下创建文件,其他Pod下的/data路径下均存在此文件,则说明两个Pod共享一个存储卷。
  • 约束与限制 使用对象存储时,挂载点不支持修改属组和权限。 挂载普通桶时不支持硬链接(Hard Link)。 支持多个PV挂载同一个对象存储,但有如下限制: 多个不同的PVC/PV使用同一个底层对象存储卷时,如果挂载至同一Pod使用,会因为PV的volumeHandle参数值相同导致无法挂载,请避免该使用场景。 PV中persistentVolumeReclaimPolicy参数建议设置为Retain,否则可能存在一个PV删除时,级联删除底层卷,其他关联这个底层卷的PV会由于底层存储被删除导致使用出现异常。 重复用底层存储时,数据一致性由您自行维护。建议在应用层做好多读多写的隔离保护,合理规划文件使用时间,避免出现多个客户端写同一个文件的情况,防止产生数据覆盖和丢失。
  • 使用kubectl创建配置项 请参见通过kubectl连接集群配置kubectl命令。 创建并编辑cce-configmap.yaml文件。 vi cce-configmap.yaml apiVersion: v1 kind: ConfigMap metadata: name: cce-configmap data: SPECIAL_LEVEL: Hello SPECIAL_TYPE: CCE 表2 关键参数说明 参数 说明 apiVersion 固定值为v1。 kind 固定值为ConfigMap。 metadata.name 配置项名称,可自定义。 data 配置项的数据,需填写键值对形式。 创建配置项。 kubectl create -f cce-configmap.yaml 查看已创建的配置项。 kubectl get cm NAME DATA AGE cce-configmap 3 7m
  • 操作场景 配置项(ConfigMap)是一种用于存储工作负载所需配置信息的资源类型,内容由用户决定。配置项创建完成后,可在容器工作负载中作为文件或者环境变量使用。 配置项允许您将配置文件从容器镜像中解耦,从而增强容器工作负载的可移植性。 配置项价值如下: 使用配置项功能可以帮您管理不同环境、不同业务的配置。 方便您部署相同工作负载的不同环境,配置文件支持多版本,方便您进行更新和回滚工作负载。 方便您快速将您的配置以文件的形式导入到容器中。
  • 操作步骤 登录CCE控制台,单击集群名称进入集群。 在左侧导航栏中选择“配置与密钥”,在右上角单击“创建配置项”。 填写参数。 表1 新建配置参数说明 参数 参数说明 名称 新建的配置项名称,同一个命名空间里命名必须唯一。 命名空间 新建配置项所在的命名空间。若不选择,默认为default。 描述 配置项的描述信息。 配置数据 配置项的数据。 键值对形式,单击添加。其中值支持String、JSON和YAML格式。 标签 配置项的标签。键值对形式,输入键值对后单击“确认添加”。 配置完成后,单击“确定”。 工作负载配置列表中会出现新创建的工作负载配置。
  • 使用场景 根据使用场景不同,对象存储支持以下挂载方式: 通过静态存储卷使用已有对象存储:即静态创建的方式,需要先使用已有的对象存储创建PV,然后通过PVC在工作负载中挂载存储。适用于已有可用的底层存储或底层存储需要包周期的场景。 通过动态存储卷使用对象存储:即动态创建的方式,无需预先创建对象存储,在创建PVC时通过指定存储类(StorageClass),即可自动创建对象存储和对应的PV对象。适用于无可用的底层存储,需要新创建的场景。
  • 对象存储规格 对象存储提供了多种存储类别,从而满足客户业务对存储性能、成本的不同诉求。 对象桶:提供高可靠、高性能、高安全、低成本的数据存储能力,无文件数量限制、容量限制。 标准存储:访问时延低和吞吐量高,因而适用于有大量热点文件(平均一个月多次)或小文件(小于1MB),且需要频繁访问数据的业务场景,例如:大数据、移动应用、热点视频、社交图片等场景。 低频访问存储:适用于不频繁访问(平均一年少于12次)但在需要时也要求快速访问数据的业务场景,例如:文件同步/共享、企业备份等场景。与标准存储相比,低频访问存储有相同的数据持久性、吞吐量以及访问时延,且成本较低,但是可用性略低于标准存储。 并行文件系统:并行文件系统(Parallel File System)是 对象存储服务 的子产品,是经过优化的高性能文件语义系统,主要应用于大数据场景。详细介绍请参见什么是并行文件系统。 关于对象存储的详细介绍,请以对象存储类别为准。
  • 对象存储介绍 对象存储服务(Object Storage Service,OBS)提供海量、安全、高可靠、低成本的数据存储能力,可供用户存储任意类型和大小的数据。适合企业备份/归档、 视频点播 、视频监控等多种数据存储场景。 标准接口:具备标准Http Restful API接口,用户必须通过编程或第三方工具访问对象存储。 数据共享:服务器、嵌入式设备、IOT设备等所有调用相同路径,均可访问共享的对象存储数据。 公共/私有网络:对象存储数据允许在公网访问,满足互联网应用需求。 容量与性能:容量无限制,性能较高(IO读写时延10ms级)。 应用场景:适用于(基于OBS界面、OBS工具、OBS SDK等)的一次上传共享多读(ReadOnlyMany)的各种工作负载(Deployment/StatefulSet)和普通任务(Job)使用,主要面向大数据分析、静态网站托管、在线视频点播、基因测序、智能视频监控、备份归档、企业云盘(网盘)等场景。
共100000条