华为云用户手册

  • 标签管理 权限 对应API接口 授权项 IAM 项目 (Project) 企业项目 (Enterprise Project) 查询标签 GET /autoscaling-api/v1/{project_id}/{resource_type}/tags as:tags:list √ × 查询资源标签 GET /autoscaling-api/v1/{project_id}/{resource_type}/{resource_id}/tags as:tags:get √ × 更新或删除标签 POST /autoscaling-api/v1/{project_id}/{resource_type}/{resource_id}/tags/action as:tags:set √ × 查询资源实例 POST /autoscaling-api/v1/{project_id}/{resource_type}/resource_instances/action as:tagResources:list √ × 父主题: 权限和授权项
  • 时区表 表1 时区映射关系 参数值 时区信息 1 (GMT-12:00) Eniwetok, Kwajalein 2 (GMT-11:00) Midway Island, Samoa 3 (GMT-10:00) Hawaii 4 (GMT-09:00) Alaska 5 (GMT-08:00) Pacific Time(US&Canada);Tijuana 6 (GMT-07:00) Arizona 7 (GMT-07:00) Mountain Time(US&Canada) 8 (GMT-06:00) Central America 9 (GMT-06:00) Central Time(US&Canada) 10 (GMT-06:00) Mexico City 11 (GMT-06:00) Saskatchewan 12 (GMT-05:00) Bogota, Lima, Quito 13 (GMT-05:00) Eastern Time(US&Canada) 14 (GMT-05:00) Indiana(East) 15 (GMT-04:00) Atlantic time(Canada) 16 (GMT-04:00) Caracas, La Paz 17 (GMT-04:00) Santiago 18 (GMT-03:30) Newfoundland 19 (GMT-03:00) Brasilia 20 (GMT-03:00) Buenos Aires, Georgetown 21 (GMT-03:00) Greenland 22 (GMT-02:00) Mid-Atlantic 23 (GMT-01:00) Azores 24 (GMT-01:00) Cape Verde Is. 25 (GMT) Casablanca, Monrovia 26 (GMT) Greenwich Mean Time:Dublin, Edinburgh, Lisbon, London 27 (GMT+01:00) Amsterdam, Berlin, Bern, Rome, Stockholm, Vienna 28 (GMT+01:00) Belgrade, Bratislava, Budapest, Ljubljana, Prague 29 (GMT+01:00) Brussels, Copenhagen, Madrid, Paris 30 (GMT+01:00) Sarajevo, Skopje, Sofija, Warsaw, Zagreb 31 (GMT+01:00) West Central Africa 32 (GMT+02:00) Athens, Istanbul, Vilnius 33 (GMT+02:00) Bucharest 34 (GMT+02:00) Cairo 35 (GMT+02:00) Harare, Pretoria 36 (GMT+02:00) Helsinki, Riga, Tallinn 37 (GMT+02:00) Jerusalem 38 (GMT+03:00) Baghdad, Minsk 39 (GMT+03:00) Kuwait, Riyadh 40 (GMT+03:00) Moscow, St. Petersburg, Volgograd 41 (GMT+03:00) Nairobi 42 (GMT+03:30) Tehran 43 (GMT+04:00) Abu Dhabi, Muscat 44 (GMT+04:00) Baku, Tbilisi, Yerevan 45 (GMT+04:30) Kabul 46 (GMT+05:00) Ekaterinburg 47 (GMT+05:00) Islamabad, Karachi, Tashkent 48 (GMT+05:30) Calcutta, Chennai, Mumbai, New Delhi 49 (GMT+05:45) Kathmandu 50 (GMT+06:00) Almaty, Novosibirsk 51 (GMT+06:00) Astana, Dhaka 52 (GMT+06:00) Sri Jayawardenepura 53 (GMT+06:30) Rangoon 54 (GMT+07:00) Bangkok, Hanoi, Jakarta 55 (GMT+07:00) Krasnoyarsk 56 (GMT+08:00) Beijing, Chongqing, Hong Kong, Urumqi, Taipei 57 (GMT+08:00) Irkutsk, Ulaan Bataar 58 (GMT+08:00) Kuala Lumpur, Singapore 59 (GMT+08:00) Perth 60 (GMT+09:00) Osaka, Sapporo, Tokyo 61 (GMT+09:00) Seoul 62 (GMT+09:00) Yakutsk 63 (GMT+09:30) Adelaide 64 (GMT+09:30) Darwin 65 (GMT+10:00) Brisbane 66 (GMT+10:00) Canberra, Melbourne, Sydney 67 (GMT+10:00) Guam, Port Moresby 68 (GMT+10:00) Hobart 69 (GMT+10:00) Vladivostok 70 (GMT+11:00) Magadan, Solomon Is., New Caledonia 71 (GMT+12:00) Auckland, Welington 72 (GMT+12:00) Fiji 73 (GMT+13:00) Nuku'alofa 74 (GMT+09:00) Irkutsk 75 (GMT) Casablanca 76 (GMT+04:00) Baku 77 (GMT+12:00) Kamchatka, Marshall Is. 父主题: 附录
  • 新增特性及特性增强 Service的负载均衡IP模式(Alpha) 在Kubernetes1.29版本,Service的负载均衡IP模式以Alpha版本正式发布。其在Service的status中新增字段ipMode,用于配置集群内Service到Pod的流量转发模式。当设置为VIP时,目的地址为负载均衡IP和端口的流量将由kube-proxy重定向到目标节点,当设置为Proxy时,流量将被发送到负载均衡器,然后由负载均衡器转发到目标节点。这项特性将有助于解决流量绕过负载均衡器缩导致的负载均衡器功能缺失问题。更多使用细节请参考Service的负载均衡IP模式。 NFTables代理模式(Alpha) 在Kubernetes1.29版本,NFTables代理模式以Alpha版本正式发布。该特性允许kube-proxy运行在NFTables模式,在该模式下,kube-proxy使用内核netfilters子系统的nftables API来配置数据包转发规则。更多使用细节请参考NFTables代理模式。 未使用容器镜像的垃圾收集(Alpha) 在Kubernetes1.29版本,未使用容器镜像的垃圾收集以Alpha版本正式发布。该特性允许用户为每个节点配置本地镜像未被使用的最长时间,超过这个时间镜像将被垃圾回收。配置方法为使用kubelet配置文件中的ImageMaximumGCAge字段。更多使用细节请参考未使用容器镜像的垃圾收集。 PodLifecycleSleepAction(Alpha) 在Kubernetes1.29版本,PodLifecycleSleepAction以Alpha版本正式发布。该特性在容器生命周期回调中引入了Sleep回调程序,可以配置让容器在启动后和停止前暂停一段指定的时间。更多使用细节请参考PodLifecycleSleepAction。 KubeletSeparateDiskGC(Alpha) 在Kubernetes1.29版本,KubeletSeparateDiskGC以Alpha版本正式发布。该特性启用后,即使在容器镜像和容器位于独立文件系统的情况下,也能进行垃圾回收。 matchLabelKeys/mismatchLabelKeys(Alpha) 在Kubernetes1.29版本,matchLabelKeys/mismatchLabelKeys以Alpha版本正式发布。该特性启用后,在Pod的亲和/反亲和配置中新增了matchLabelKeys/mismatchLabelKeys字段,可配置更丰富的Pod间亲和/反亲和策略。更多使用细节请参考matchLabelKeys/mismatchLabelKeys。 clusterTrustBundle投射卷(Alpha) 在Kubernetes1.29版本,clusterTrustBundle投射卷以Alpha版本正式发布。该特性启用后,支持将ClusterTrustBundle对象以自动更新的文件的形式注入卷。更多使用细节请参考clusterTrustBundle投射卷。 基于运行时类的镜像拉取(Alpha) 在Kubernetes1.29版本中,基于运行时类的镜像拉取以Alpha版本正式发布。该特性启用后, kubelet 会通过一个元组(镜像名称,运行时处理程序)而不仅仅是镜像名称或镜像摘要来引用容器镜像。 你的容器运行时可能会根据选定的运行时处理程序调整其行为。基于运行时类来拉取镜像对于基于VM的容器会有帮助。更多使用细节请参考基于运行时类的镜像拉取。 PodReadyToStartContainers状况达到Beta 在Kubernetes1.29版本,PodReadyToStartContainers状况特性达到Beta版本。其在Pod的status中新增了一个名为PodReadyToStartContainers的Condition,该Condition为true表示Pod的沙箱已就绪,可以开始创建业务容器。该特性使得集群管理员可以更清晰和全面地查看 Pod 沙箱的创建完成和容器的就绪状态,增强了指标监控和故障排查能力。更多使用细节请参考PodReadyToStartContainersCondition。 Job相关特性 Pod更换策略达到Beta 在Kubernetes1.29版本,Pod更换策略特性达到Beta版本。该特性确保只有Pod达到Failed阶段(status.phase: Failed)才会被替换,而不是当删除时间戳不为空时,Pod仍处于删除过程中就重建Pod,以此避免出现2个Pod同时占用索引和节点资源。 逐索引的回退限制达到Beta 在Kubernetes1.29版本,逐索引的回退限制特性达到Beta版本。默认情况下,带索引的 Job(Indexed Job)的 Pod 失败情况会被统计下来,受 .spec.backoffLimit 字段所设置的全局重试次数限制。这意味着,如果存在某个索引值的 Pod 一直持续失败,则会 Pod 会被重新启动,直到重试次数达到限制值。 一旦达到限制值,整个 Job 将被标记为失败,并且对应某些索引的 Pod 甚至可能从不曾被启动。该特性可以在某些索引值的 Pod 失败的情况下,仍完成执行所有索引值的 Pod,并且通过避免对持续失败的、特定索引值的Pod进行不必要的重试,更好的利用计算资源。 原生边车容器达到Beta 在Kubernetes1.29版本,原生边车容器特性达到Beta版本。其在initContainers中新增了restartPolicy字段,当配置为Always时表示启用边车容器。边车容器和业务容器部署在同一个Pod中,但并不会延长Pod的生命周期。边车容器常用于网络代理、日志收集等场景。更多使用细节请参考边车容器。 传统ServiceAccount令牌清理器达到Beta 在Kubernetes1.29版本,传统ServiceAccount令牌清理器特性达到Beta版本。其作为kube-controller-manager的一部分运行,每24小时检查一次,查看是否有任何自动生成的传统ServiceAccount令牌在特定时间段内(默认为一年,通过--legacy-service-account-token-clean-up-period指定)未被使用。如果有的话,清理器会将这些令牌标记为无效,并添加kubernetes.io/legacy-token-invalid-since标签,其值为当前日期。如果一个无效的令牌在特定时间段(默认为1年,通过--legacy-service-account-token-clean-up-period指定)内未被使用,清理器将会删除它。更多使用细节请参考传统ServiceAccount令牌清理器。 DevicePluginCDIDevices达到Beta 在Kubernetes1.29版本,DevicePluginCDIDevices特性达到Beta版本。该特性在DeviceRunContainerOptions增加CDIDevices字段,使得设备插件开发者可以直接将CDI设备名称传递给支持CDI的容器运行时。 PodHostIPs达到Beta 在Kubernetes1.29版本中,PodHostIPs特性达到Beta版本。该特性在Pod和downward API的Status中增加hostIPs字段,用于将节点IP地址暴露给工作负载。该字段是hostIP的双栈协议版本,第一个IP始终与hostIP相同。 API优先级和公平性达到GA 在Kubernetes1.29版本,API优先级和公平性(APF)特性达到GA版本。APF以更细粒度的方式对请求进行分类和隔离,提升最大并发限制,并且它还引入了空间有限的排队机制,因此在非常短暂的突发情况下,API 服务器不会拒绝任何请求。 通过使用公平排队技术从队列中分发请求,这样,一个行为不佳的控制器就不会导致其他控制器异常 (即使优先级相同)。更多使用细节请参考API优先级和公平性。 APIListChunking达到GA 在Kubernetes1.29版本,APIListChunking特性达到GA版本。该特性允许客户端在List请求中进行分页,避免一次性返回过多数据而导致的性能问题。 ServiceNodePortStaticSubrange达到GA 在Kubernetes1.29版本,ServiceNodePortStaticSubrange特性达到GA版本。该特性kubelet会根据Nodeport范围计算出预留地址大小,并将Nodeport划分为静态段和动态段。在Nodeport自动分配时,优先分配在动态段,这有助于减小指定静态段分配时的端口冲突。更多使用细节请参考ServiceNodePortStaticSubrange PersistentVolume的阶段转换时间戳达到Beta 在Kubernetes1.29版本,PersistentVolume的阶段转换时间戳特性达到Beta版本。该特性在PV的status中添加了一个lastPhaseTransitionTime字段,表示PV上一次phase变化的时间。通过该字段,集群管理员可以跟踪PV上次转换到不同阶段的时间,从而实现更高效、更明智的资源管理。更多使用细节请参考PersistentVolume的阶段转换时间戳。 ReadWriteOncePod达到GA 在Kubernetes1.29版本中,ReadWriteOncePod特性达到GA版本。该特性允许用户在PVC中配置访问模式为ReadWriteOncePod,确保同时只有一个 Pod能够修改存储中的数据,以防止数据冲突或损坏。更多使用细节请参考ReadWriteOncePod。 CS INodeExpandSecret达到GA 在Kubernetes1.29版本中,CSINodeExpandSecret特性达到GA版本。该特性允许在添加节点时将Secret身份验证数据传递到CSI驱动以供后者使用。 CRD验证表达式语言达到GA 在Kubernetes1.29版本中,CRD验证表达式语言特性达到GA版本。该特性允许用户在CRD中使用通用表达式语言(CEL)定义校验规则,相比webhook更加高效。更多使用细节请参考CRD校验规则。
  • API变更与弃用 在Kubernetes1.29版本中,新创建的CronJob不再支持在.spec.schedule中通过TZ或者CRON_TZ配置时区,请使用.spec.timeZone替代。已经创建的CronJob不受此影响。 在Kubernetes1.29版本中,移除了alpha API ClusterCIDR。 在Kubernetes1.29版本中,kube-apiserver新增启动参数--authentication-config,用于指定AuthenticationConfiguration文件地址,该启动参数与--oidc-*启动参数互斥。 在Kubernetes1.29版本中,移除了KubeSchedulerConfiguration的API版本kubescheduler.config.k8s.io/v1beta3,请迁移至kubescheduler.config.k8s.io/v1。 在Kubernetes1.29版本中,将CEL表达式添加到v1alpha1 AuthenticationConfiguration中。 在Kubernetes1.29版本中,新增对象ServiceCIDR,允许用户动态配置集群分配Service的ClusterIP时所使用的地址范围。 在Kubernetes1.29版本中,kube-proxy新增启动参数--conntrack-udp-timeout、--conntrack-udp-timeout-stream,可对nf_conntrack_udp_timeout和nf_conntrack_udp_timeout_stream内核参数进行设置 。 在Kubernetes1.29版本中,将CEL表达式的支持添加到v1alpha1 AuthenticationConfiguration的WebhookMatchCondition中。 在Kubernetes1.29版本中,PVC.spec.Resource的类型由原先的ResourceRequirements替换为VolumeResourceRequirements。 在Kubernetes1.29版本中,将PodFailurePolicyRule中的OnPodConditions转变为可选字段。 在Kubernetes1.29版本中,FlowSchema与PriorityLevelConfiguration的API版本flowcontrol.apiserver.k8s.io/v1beta3已升级至flowcontrol.apiserver.k8s.io/v1,并进行了以下更改 PriorityLevelConfiguration:.spec.limited.nominalConcurrencyShares字段在省略时自动设为默认值30,并且为了确保与1.28兼容,在1.29中v1版本该字段不允许显示指定为0。在1.30中,将允许v1版本该字段显示指定为0。flowcontrol.apiserver.k8s.io/v1beta3已废弃,并在1.32中不再支持。 在Kubernetes1.29版本中, 优化了kube-proxy的命令行文档,kube-proxy实际上不会将任何socket绑定到由--bind-address启动参数指定的IP。 在Kubernetes1.29版本中,移除了selectorSpread调度器插件,使用podTopologySpread替代。 在Kubernetes1.29版本中,当CSI-Node-Driver没有在运行时,NodeStageVolume操作会重试。 在Kubernetes1.29版本中,ValidatingAdmissionPolicy支持对CRD资源进行校验。使用该特性需开启特性门控ValidatingAdmissionPolicy。 在Kubernetes1.29版本中,kube-proxy新增启动参数--nf-conntrack-tcp-be-liberal,可对内核参数nf_conntrack_tcp_be_liberal进行配置。 在Kubernetes1.29版本中,kube-proxy新增启动参数--init-only,设置后使kube-proxy的init容器在特权模式下运行,进行一些初始化配置,然后退出。 在Kubernetes1.29版本中,CRI的返回体中新增容器的fileSystem字段,表示容器的fileSystem使用信息,而原先只包含镜像的fileSystem。 在Kubernetes1.29版本中,所有内置的CloudProvider全部默认设置为关闭,如果仍需使用,可通过配置DisableCloudProviders和DisableKubeletCloudCredentialProvider特性门控来选择性关闭或者打开。 在Kubernetes1.29版本中,kubelet可通过--node-ips来设置双栈IP(kubelet设置--cloud-provider=external,此时可以使用--node-ips参数来设置节点地址(IPv4/IPv6)),使用该特性需开启特性门控CloudDualStackNodeIPs。
  • Helm v2与Helm v3的差异及适配方案 随着Helm v2 发布最终版本Helm 2.17.0,Helm v3 现在已是 Helm 开发者社区支持的唯一标准。为便于管理,建议用户尽快将模板切换至Helm v3格式。 当前社区从Helm v2演进到Helm v3,主要有以下变化: 移除tiller Helm v3 使用更加简单和灵活的架构,移除了 tiller,直接通过kubeconfig连接apiserver,简化安全模块,降低了用户的使用壁垒。 改进了升级策略,采用三路策略合并补丁 Helm v2 使用双路策略合并补丁。在升级过程中,会对比最近一次发布的chart manifest和本次发布的chart manifest的差异,来决定哪些更改会应用到Kubernetes资源中。如果更改是集群外带的(比如通过kubectl edit),则修改不会被Helm识别和考虑。结果就是资源不会回滚到之前的状态。 Helm v3 使用三路策略来合并补丁,Helm在生成一个补丁时,会考虑之前原来的manifest的活动状态。因此,Helm在使用原来的chart manifest生成新补丁时会考虑当前活动状态,并将其与之前原来的 manifest 进行比对,并再比对新的 manifest 是否有改动,并进行自动补全,以此来生成最终的更新补丁。 详情及示例请见Helm官方文档:https://v3.helm.sh/docs/faq/changes_since_helm2 默认存储驱动程序更改为secrets Helm v2 默认情况下使用 ConfigMaps 存储发行信息,而在 Helm v3 中默认使用 Secrets。 发布名称限制在namespace范围内 Helm v2 只使用tiller 的namespace 作为release信息的存储,这样全集群的release名字都不能重复。Helm v3只会在release安装的所在namespace记录对应的信息,这样release名称可在不同命名空间重用。应用和release命名空间一致。 校验方式改变 Helm v3 对模板格式的校验更加严格,如Helm v3 将chart.yaml的apiVersion从v1切换到v2,针对Helm v2的chart.yaml,强要求指定apiVersion为v1。可安装Helm v3客户端后,通过执行helm lint命令校验模板格式是否符合v3规范。 适配方案:根据Helm官方文档 https://helm.sh/docs/topics/charts/适配Helm v3模板,apiVersion字段必填。 废弃crd-install Helm v3删除了crd-install hook, 并用chart中的crds目录替换。需要注意的是,crds目录中的资源只有在release安装时会部署,升级时不会更新,删除时不会卸载crds目录中的资源。若crd已存在,则重复安装不会报错。 适配方案:根据Helm官方文档 https://helm.sh/docs/chart_best_practices/custom_resource_definitions/, 当前可使用crds目录或者将crd定义单独放入chart。考虑到目前不支持使用Helm升级或删除CRD,推荐分隔chart,将CRD定义放入chart中,然后将所有使用该CRD的资源放到另一个 chart中进行管理。 未通过helm创建的资源不强制update,releaes默认不强制升级 Helm v3强制升级逻辑变化,不再是升级失败后走删除重建,而是直接走put更新逻辑。因此当前CCE release升级默认使用非强制更新逻辑,无法通过Patch更新的资源将导致release升级失败。若环境存在同名资源且无Helm V3的归属标记app.kubernetes.io/managed-by: Helm,则会提示资源冲突。 适配方案:删除相关资源,并通过Helm创建。 Release history数量限制更新 为避免release 历史版本无限增加,当前release升级默认只保留最近10个历史版本。 更多变化和详细说明请参见Helm官方文档 Helm v2与Helm v3的区别:https://v3.helm.sh/docs/faq/changes_since_helm2 Helm v2如何迁移到Helm v3:https://helm.sh/docs/topics/v2_v3_migration 父主题: 模板(Helm Chart)
  • 升级备份说明 目前集群升级备份方式如下: 备份方式 备份对象 备份方式 备份时间 回滚时间 说明 etcd数据备份 etcd数据 升级流程中自动备份 1-5min 2h 必选备份,升级过程中自动进行,用户无需关注 CBR整机备份 Master节点磁盘,包括组件镜像、配置、日志以及etcd数据 通过页面一键备份(手动触发) 20min-2h(受当前区域云备份任务排队情况影响) 20min 该功能逐步由EVS快照备份替代 EVS快照备份 Master节点磁盘,包括组件镜像、配置、日志以及etcd数据 通过页面一键备份(手动触发) 1-5min 20min 该功能上线中 对于已上线的区域,EVS快照备份将替代CBR整机备份
  • 废弃API说明 随着Kubernetes API的演化,API会周期性地被重组或升级,部分API会被弃用并被最终删除。以下为各Kubernetes社区版本中被废弃的API,更多已废弃的API说明请参见已弃用 API 的迁移指南。 Kubernetes社区v1.27版本中废弃的API Kubernetes社区v1.25版本中废弃的API Kubernetes社区v1.22版本中废弃的API Kubernetes社区v1.16版本中废弃的API 当某API被废弃时,已经创建的资源对象不受影响,但新建或编辑该资源时将出现API版本被拦截的情况。 表2 Kubernetes社区v1.27版本中废弃的API 资源名称 废弃API版本 替代API版本 变更说明 CSIStorageCapacity storage.k8s.io/v1beta1 storage.k8s.io/v1 (该API从社区v1.24版本开始可用) - FlowSchema 和 PriorityLevelConfiguration flowcontrol.apiserver.k8s.io/v1beta1 flowcontrol.apiserver.k8s.io/v1beta3 (该API从社区v1.26版本开始可用) - HorizontalPodAutoscaler autoscaling/v2beta2 autoscaling/v2 (该API从社区v1.23版本开始可用) - 表3 Kubernetes社区v1.25版本中废弃的API 资源名称 废弃API版本 替代API版本 变更说明 CronJob batch/v1beta1 batch/v1 (该API从社区v1.21版本开始可用) - EndpointSlice discovery.k8s.io/v1beta1 discovery.k8s.io/v1 (该API从社区v1.21版本开始可用) 此次更新需注意以下变更: 每个Endpoint中,topology["kubernetes.io/hostname"]字段已被弃用,请使用nodeName字段代替。 每个Endpoint中,topology["kubernetes.io/zone"]字段已被弃用,请使用zone字段代替。 topology字段被替换为deprecatedTopology,并且在 v1 版本中不可写入。 Event events.k8s.io/v1beta1 events.k8s.io/v1 (该API从社区v1.19版本开始可用) 此次更新需注意以下变更: type 字段只能设置为 Normal 和 Warning 之一。 involvedObject 字段被更名为 regarding。 action、reason、reportingController 和 reportingInstance 字段 在创建新的 events.k8s.io/v1 版本 Event 时都是必需的字段。 使用 eventTime 而不是已被弃用的 firstTimestamp 字段 (该字段已被更名为 deprecatedFirstTimestamp,且不允许出现在新的 events.k8s.io/v1 Event 对象中)。 使用 series.lastObservedTime 而不是已被弃用的 lastTimestamp 字段 (该字段已被更名为 deprecatedLastTimestamp,且不允许出现在新的 events.k8s.io/v1 Event 对象中)。 使用 series.count 而不是已被弃用的 count 字段 (该字段已被更名为 deprecatedCount,且不允许出现在新的 events.k8s.io/v1 Event 对象中)。 使用 reportingController 而不是已被弃用的 source.component 字段 (该字段已被更名为 deprecatedSource.component,且不允许出现在新的 events.k8s.io/v1 Event 对象中)。 使用 reportingInstance 而不是已被弃用的 source.host 字段 (该字段已被更名为 deprecatedSource.host,且不允许出现在新的 events.k8s.io/v1 Event 对象中)。 HorizontalPodAutoscaler autoscaling/v2beta1 autoscaling/v2 (该API从社区v1.23版本开始可用) - PodDisruptionBudget policy/v1beta1 policy/v1 (该API从社区v1.21版本开始可用) 在 policy/v1 版本的 PodDisruptionBudget 中将 spec.selector 设置为空({})时会选择名字空间中的所有 Pod(在 policy/v1beta1 版本中,空的 spec.selector 不会选择任何 Pod)。如果 spec.selector 未设置,则在两个 API 版本下都不会选择任何 Pod。 PodSecurityPolicy policy/v1beta1 - 从社区v1.25版本开始,PodSecurityPolicy资源不再提供policy/v1beta1版本的API,并且PodSecurityPolicy准入控制器也会被删除。 请使用Pod Security Admission配置替代。 RuntimeClass node.k8s.io/v1beta1 node.k8s.io/v1(该API从社区v1.20版本开始可用) - 表4 Kubernetes社区v1.22版本中废弃的API 资源名称 废弃API版本 替代API版本 变更说明 MutatingWebhookConfiguration ValidatingWebhookConfiguration admissionregistration.k8s.io/v1beta1 admissionregistration.k8s.io/v1 (该API从社区v1.16版本开始可用) webhooks[*].failurePolicy 在 v1 版本中默认值从 Ignore 改为 Fail。 webhooks[*].matchPolicy 在 v1 版本中默认值从 Exact 改为 Equivalent。 webhooks[*].timeoutSeconds 在 v1 版本中默认值从 30s 改为 10s。 webhooks[*].sideEffects 的默认值被删除,并且该字段变为必须指定; 在 v1 版本中可选的值只能是 None 和 NoneOnDryRun 之一。 webhooks[*].admissionReviewVersions 的默认值被删除,在 v1 版本中此字段变为必须指定(AdmissionReview 的被支持版本包括 v1 和 v1beta1)。 webhooks[*].name 必须在通过 admissionregistration.k8s.io/v1 创建的对象列表中唯一。 CustomResourceDefinition apiextensions.k8s.io/v1beta1 apiextensions/v1 (该API从社区v1.16版本开始可用) spec.scope 的默认值不再是 Namespaced,该字段必须显式指定。 spec.version 在 v1 版本中被删除,应改用 spec.versions。 spec.validation 在 v1 版本中被删除,应改用 spec.versions[*].schema。 spec.subresources 在 v1 版本中被删除,应改用 spec.versions[*].subresources。 spec.additionalPrinterColumns 在 v1 版本中被删除,应改用 spec.versions[*].additionalPrinterColumns。 spec.conversion.webhookClientConfig 在 v1 版本中被移动到 spec.conversion.webhook.clientConfig 中。 spec.conversion.conversionReviewVersions 在 v1 版本中被移动到 spec.conversion.webhook.conversionReviewVersions spec.versions[*].schema.openAPIV3Schema 在创建 v1 版本的 CustomResourceDefinition 对象时变成必需字段,并且其取值必须是一个结构化的 Schema。 spec.preserveUnknownFields: true 在创建 v1 版本的 CustomResourceDefinition 对象时不允许指定;该配置必须在 Schema 定义中使用 x-kubernetes-preserve-unknown-fields: true 来设置。 在 v1 版本中,additionalPrinterColumns 的条目中的 JSONPath 字段被更名为 jsonPath(补丁 #66531)。 APIService apiregistration/v1beta1 apiregistration.k8s.io/v1 (该API从社区v1.10版本开始可用) - TokenReview authentication.k8s.io/v1beta1 authentication.k8s.io/v1 (该API从社区v1.6版本开始可用) - LocalSubjectAccessReview SelfSubjectAccessReview SubjectAccessReview SelfSubjectRulesReview authorization.k8s.io/v1beta1 authorization.k8s.io/v1 (该API从社区v1.16版本开始可用) spec.group 在 v1 版本中被更名为 spec.groups(补丁 #32709) CertificateSigningRequest certificates.k8s.io/v1beta1 certificates.k8s.io/v1 (该API从社区v1.19版本开始可用) certificates.k8s.io/v1 中需要额外注意的变更: 对于请求证书的 API 客户端而言: spec.signerName 现在变成必需字段(参阅 已知的 Kubernetes 签署者), 并且通过 certificates.k8s.io/v1 API 不可以创建签署者为 kubernetes.io/legacy-unknown 的请求。 spec.usages 现在变成必需字段,其中不可以包含重复的字符串值, 并且只能包含已知的用法字符串。 对于要批准或者签署证书的 API 客户端而言: status.conditions 中不可以包含重复的类型。 status.conditions[*].status 字段现在变为必需字段。 status.certificate 必须是 PEM 编码的,而且其中只能包含 CERTIFICATE 数据块。 Lease coordination.k8s.io/v1beta1 coordination.k8s.io/v1 (该API从社区v1.14版本开始可用) - Ingress networking.k8s.io/v1beta1 extensions/v1beta1 networking.k8s.io/v1 (该API从社区v1.19版本开始可用) spec.backend 字段被更名为 spec.defaultBackend。 后端的 serviceName 字段被更名为 service.name。 数值表示的后端 servicePort 字段被更名为 service.port.number。 字符串表示的后端 servicePort 字段被更名为 service.port.name。 对所有要指定的路径,pathType 都成为必需字段。 可选项为 Prefix、Exact 和 ImplementationSpecific。 要匹配 v1beta1 版本中未定义路径类型时的行为,可使用 ImplementationSpecific。 IngressClass networking.k8s.io/v1beta1 networking.k8s.io/v1 (该API从社区v1.19版本开始可用) - ClusterRole ClusterRoleBinding Role RoleBinding rbac.authorization.k8s.io/v1beta1 rbac.authorization.k8s.io/v1 (该API从社区v1.8版本开始可用) - PriorityClass scheduling.k8s.io/v1beta1 scheduling.k8s.io/v1 (该API从社区v1.14版本开始可用) - CSIDriver CSINode StorageClass VolumeAttachment storage.k8s.io/v1beta1 storage.k8s.io/v1 CSIDriver从社区v1.19版本开始在storage.k8s.io/v1中提供。 CSINode从社区v1.17版本开始在storage.k8s.io/v1中提供。 StorageClass从社区v1.6 版本开始在storage.k8s.io/v1中提供。 VolumeAttachment从社区v1.13版本开始在storage.k8s.io/v1中提供。 表5 Kubernetes社区v1.16版本中废弃的API 资源名称 废弃API版本 替代API版本 变更说明 NetworkPolicy extensions/v1beta1 networking.k8s.io/v1 (该API从社区v1.8版本开始可用) - DaemonSet extensions/v1beta1 apps/v1beta2 apps/v1 (该API从社区v1.9版本开始可用) spec.templateGeneration 字段被删除。 spec.selector 现在变成必需字段,并且在对象创建之后不可变更; 可以将现有模板的标签作为选择算符以实现无缝迁移。 spec.updateStrategy.type 的默认值变为 RollingUpdate (extensions/v1beta1 API 版本中的默认值是 OnDelete)。 Deployment extensions/v1beta1 apps/v1beta1 apps/v1beta2 apps/v1 (该API从社区v1.9版本开始可用) spec.rollbackTo 字段被删除。 spec.selector 字段现在变为必需字段,并且在 Deployment 创建之后不可变更; 可以使用现有的模板的标签作为选择算符以实现无缝迁移。 spec.progressDeadlineSeconds 的默认值变为 600 秒 (extensions/v1beta1 中的默认值是没有期限)。 spec.revisionHistoryLimit 的默认值变为 10 (apps/v1beta1 API 版本中此字段默认值为 2,在extensions/v1beta1 API 版本中的默认行为是保留所有历史记录)。 maxSurge 和 maxUnavailable 的默认值变为 25% (在 extensions/v1beta1 API 版本中,这些字段的默认值是 1)。 StatefulSet apps/v1beta1 apps/v1beta2 apps/v1 (该API从社区v1.9版本开始可用) spec.selector 字段现在变为必需字段,并且在 StatefulSet 创建之后不可变更; 可以使用现有的模板的标签作为选择算符以实现无缝迁移。 spec.updateStrategy.type 的默认值变为 RollingUpdate (apps/v1beta1 API 版本中的默认值是 OnDelete)。 ReplicaSet extensions/v1beta1 apps/v1beta1 apps/v1beta2 apps/v1 (该API从社区v1.9版本开始可用) spec.selector 现在变成必需字段,并且在对象创建之后不可变更; 可以将现有模板的标签作为选择算符以实现无缝迁移。 PodSecurityPolicy extensions/v1beta1 policy/v1beta1 (该API从社区v1.10版本开始可用) policy/v1beta1 API 版本的 PodSecurityPolicy 会在 v1.25 版本中移除。
  • 注意事项 升级集群前,您需要知晓以下事项: 请务必慎重并选择合适的时间段进行升级,以减少升级对您的业务带来的影响。 集群升级前,请参考Kubernetes版本发布说明了解每个集群版本发布的特性以及差异,否则可能因为应用不兼容新集群版本而导致升级后异常。例如,您需要检查集群中是否使用了目标版本废弃的API,否则可能导致升级后调用接口失败,详情请参见废弃API说明。 集群升级时,以下几点注意事项可能会对您的业务存在影响,请您关注: 集群升级过程中,不建议对集群进行任何操作。尤其是,请勿关机、重启或删除节点,否则会导致升级失败。 集群升级前,请确认集群中未执行高危操作,否则可能导致集群升级失败或升级后配置丢失。例如,常见的高危操作有本地修改集群节点的配置、通过ELB控制台修改CCE管理的监听器配置等。建议您通过CCE控制台修改相关配置,以便在升级时自动继承。 集群升级过程中,已运行工作负载业务不会中断,但API Server访问会短暂中断,如果业务需要访问API Server可能会受到影响。 集群升级过程中默认不限制应用调度。但下列旧版本集群升级过程中,仍然会给节点打上“node.kubernetes.io/upgrade”(效果为“NoSchedule”)的污点,并在集群升级完成后移除该污点。 所有v1.15集群 所有v1.17集群 补丁版本小于等于v1.19.16-r4的1.19集群 补丁版本小于等于v1.21.7-r0的1.21集群 补丁版本小于等于v1.23.5-r0的1.23集群
  • 版本差异说明 版本升级路径 版本差异 建议自检措施 v1.23/v1.25 升级至v1.27 容器运行时Docker不再被推荐使用,建议您使用Containerd进行替换,详情请参见容器引擎。 已纳入升级前检查。 v1.23升级至v1.25 在Kubernetes v1.25版本中, PodSecurityPolicy已被移除,并提供Pod安全性准入控制器(Pod Security Admission配置)作为PodSecurityPolicy的替代。 如果您需要将PodSecurityPolicy的相关能力迁移到Pod Security Admission中,需要参照以下步骤进行: 确认集群为CCE v1.23的最新版本。 迁移PodSecurityPolicy的相关能力迁移到Pod Security Admission,请参见Pod Security Admission配置。 确认迁移后功能正常,再升级为CCE v1.25版本。 如果您不再使用PodSecurityPolicy能力,则可以在删除集群中的PodSecurityPolicy后,直接升级为CCE v1.25版本。 v1.21/v1.19 升级至v1.23 社区较老版本的Nginx Ingress Controller来说(社区版本v0.49及以下,对应CCE插件版本v1.x.x),在创建Ingress时没有指定Ingress类别为nginx,即annotations中未添加kubernetes.io/ingress.class: nginx的情况,也可以被Nginx Ingress Controller纳管。但对于较新版本的Nginx Ingress Controller来说(社区版本v1.0.0及以上,对应CCE插件版本2.x.x),如果在创建Ingress时没有显示指定Ingress类别为nginx,该资源将被Nginx Ingress Controller忽略,Ingress规则失效,导致服务中断。 已纳入升级前检查,也可参照nginx-ingress插件升级检查进行自检。 v1.19升级至v1.21 Kubernetes v1.21集群版本修复 了exec probe timeouts不生效的BUG,在此修复之前,exec 探测器不考虑 timeoutSeconds 字段。相反,探测将无限期运行,甚至超过其配置的截止日期,直到返回结果。 若用户未配置,默认值为1秒。升级后此字段生效,如果探测时间超过1秒,可能会导致应用健康检查失败并频繁重启。 升级前检查您使用了exec probe的应用的probe timeouts是否合理。 CCE的v1.19及以上版本的kube-apiserver要求客户侧webhook server的证书必须配置Subject Alternative Names (SAN)字段。否则升级后kube-apiserver调用webhook server失败,容器无法正常启动。 根因:Go语言v1.15版本废弃了X.509 CommonName,CCE的v1.19版本的kube-apiserver编译的版本为v1.15,若客户的webhook证书没有Subject Alternative Names (SAN),kube-apiserver不再默认将X509证书的CommonName字段作为hostname处理,最终导致认证失败。 升级前检查您自建webhook server的证书是否配置了SAN字段。 若无自建webhook server则不涉及。 若未配置,建议您配置使用SAN字段指定证书支持的IP及 域名 。 v1.15升级至v1.19 CCE v1.19版本的控制面与v1.15版本的Kubelet存在兼容性问题。若Master节点升级成功后,节点升级失败或待升级节点发生重启,则节点有极大概率为NotReady状态。 主要原因为升级失败的节点有大概率重启kubelet而触发节点注册流程,v1.15 kubelet默认注册标签(failure-domain.beta.kubernetes.io/is-baremetal和kubernetes.io/availablezone)被v1.19版本kube-apiserver视为非法标签。 v1.19版本中对应的合法标签为node.kubernetes.io/baremetal和failure-domain.beta.kubernetes.io/zone。 正常升级流程不会触发此场景。 在Master升级完成后尽量避免使用暂停升级功能,快速升级完Node节点。 若Node节点升级失败且无法修复,请尽快驱逐此节点上的应用,请联系技术支持人员,跳过此节点升级,在整体升级完毕后,重置该节点。 CCE的v1.15版本集群及v1.19版本集群将docker的存储驱动文件系统由 xfs切换成ext4,可能会导致升级后的java应用Pod内的import包顺序异常,既而导致Pod异常。 升级前查看节点上docker配置文件/etc/docker/daemon.json。检查dm.fs配置项是否为xfs。 若为ext4或存储驱动为overlay则不涉及。 若为xfs则建议您在新版本集群预先部署应用,以测试应用与新版本集群是否兼容。 { "storage-driver": "devicemapper", "storage-opts": [ "dm.thinpooldev=/dev/mapper/vgpaas-thinpool", "dm.use_deferred_removal=true", "dm.fs=xfs", "dm.use_deferred_deletion=true" ] } CCE的v1.19及以上版本的kube-apiserver要求客户侧webhook server的证书必须配置Subject Alternative Names (SAN)字段。否则升级后kube-apiserver调用webhook server失败,容器无法正常启动。 根因:Go语言v1.15版本废弃了X.509 CommonName,CCE的v1.19版本的kube-apiserver编译的版本为v1.15。CommonName字段作为hostname处理,最终导致认证失败。 升级前检查您自建webhook server的证书是否配置了SAN字段。 若无自建webhook server则不涉及。 若未配置,建议您配置使用SAN字段指定证书支持的IP及域名。 须知: 为减弱此版本差异对集群升级的影响,v1.15升级至v1.19时,CCE会进行特殊处理,仍然会兼容支持证书不带SAN。但后续升级不再特殊处理,请尽快整改证书,以避免影响后续升级。 v1.17.17版本及以后的集群CCE自动给用户创建了PSP规则,限制了不安全配置的Pod的创建,如securityContext配置了sysctl的net.core.somaxconn的Pod。 升级后请参考资料按需开放非安全系统配置,具体请参见PodSecurityPolicy配置。 1.15版本集群原地升级,如果业务中存在initContainer或使用Istio的场景,则需要注意以下约束: 1.16及以上的kubelet统计QosClass和之前版本存在差异,1.15及以下版本仅统计spec.containers下的容器,1.16及以上的kubelet版本会同时统计spec.containers和spec.initContainers下的容器,升级前后会造成Pod的QosClass变化,从而造成Pod中容器重启。 建议参考表1在升级前修改业务容器的QosClass规避该问题。 v1.13升级至v1.15 vpc集群升级后,由于网络组件的升级,master节点会额外占一个网段。在Master占用了网段后,无可用容器网段时,新建节点无法分配到网段,调度在该节点的pod会无法运行。 一般集群内节点数量快占满容器网段场景下会出现该问题。例如,容器网段为10.0.0.0/16,可用IP数量为65536,VPC网络IP分配是分配固定大小的网段(使用掩码实现,确定每个节点最多分配多少容器IP),例如上限为128,则此时集群最多支撑65536/128=512个节点,然后去掉Master节点数量为509,此时是1.13集群支持的节点数。集群升级后,在此基础上3台Master节点会各占用1个网段,最终结果就是506台节点。 表1 1.15版本升级前后QosClass变化 init容器(根据spec.initContainers计算) 业务容器(根据spec.containers计算) Pod(根据spec.containers和spec.initContainers计算) 是否受影响 Guaranteed Besteffort Burstable 是 Guaranteed Burstable Burstable 否 Guaranteed Guaranteed Guaranteed 否 Besteffort Besteffort Besteffort 否 Besteffort Burstable Burstable 否 Besteffort Guaranteed Burstable 是 Burstable Besteffort Burstable 是 Burstable Burstable Burstable 否 Burstable Guaranteed Burstable 是
  • CCE集群中工作负载镜像的拉取策略有哪些? 容器在启动运行前,需要镜像。镜像的存储位置可能会在本地,也可能会在远程镜像仓库中。 Kubernetes配置文件中的imagePullPolicy属性是用于描述镜像的拉取策略的,如下: Always:总是拉取镜像。 imagePullPolicy: Always IfNotPresent:本地有则使用本地镜像,不拉取。 imagePullPolicy: IfNotPresent Never:只使用本地镜像,从不拉取,即使本地没有。 imagePullPolicy: Never 说明如下: 如果设置为Always ,则每次容器启动或者重启时,都会从远程仓库拉取镜像。 如果省略imagePullPolicy,策略默认为Always。 如果设置为IfNotPreset,有下面两种情况: 当本地不存在所需的镜像时,会从远程仓库中拉取。 如果需要的镜像和本地镜像内容相同,只不过重新打了tag。此tag镜像本地不存在,而远程仓库存在此tag镜像。这种情况下,Kubernetes并不会拉取新的镜像。 父主题: 其他
  • CCE与CCI两者的配合 通过安装Virtual-Kubelet插件,可以在在短时高负载场景时,将部署在CCE上的无状态工作负载(Deployment)、有状态工作负载(StatefulSet)、普通任务(Job)三种资源类型的容器实例(Pod),弹性创建到华为云云容器实例CCI服务上,以减少集群扩容带来的消耗。 具体功能如下: 支持容器实例实现秒级弹性伸缩:在集群资源不足时,无需新增节点,virtual-kubelet插件将自动为您在云容器实例CCI侧创建容器实例,减少运维成本。 无缝对接华为云 容器镜像服务 SWR,支持使用公用镜像和私有镜像。 支持CCI容器实例的事件同步、监控、日志、exec、查看状态等操作。 支持查看虚拟弹性节点的节点容量信息。 支持CCE和CCI两侧实例的service网络互通。 详情请参见CCE容器实例弹性伸缩到CCI服务。
  • 基本介绍 表1 CCE和CCI基本介绍 云容器引擎CCE 云容器实例CCI 云容器引擎(Cloud Container Engine,简称CCE)提供高度可扩展的、高性能的企业级Kubernetes集群,支持运行Docker容器,提供了Kubernetes集群管理、容器应用全生命周期管理、应用服务网格、Helm应用模板、插件管理、应用调度、监控与运维等容器全栈能力,为您提供一站式容器平台服务。借助云容器引擎,您可以在华为云上轻松部署、管理和扩展容器化应用程序。 详细介绍请查看什么是云容器引擎。 云容器实例(Cloud Container Instance, CCI)服务提供Serverless Container(无服务器容器)引擎,让您无需创建和管理服务器集群即可直接运行容器。通过CCI您只需要管理运行在Kubernetes上的容器化业务,无需管理集群和服务器即可在CCI上快速创建和运行容器负载,使容器应用零运维,使企业聚焦业务核心,为企业提供了Serverless化全新一代的体验和选择。 而Serverless是一种架构理念,是指不用创建和管理服务器、不用担心服务器的运行状态(服务器是否在工作等),只需动态申请应用需要的资源,把服务器留给专门的维护人员管理和维护,进而专注于应用开发,提升应用开发效率、节约企业IT成本。传统上使用Kubernetes运行容器,首先需要创建运行容器的Kubernetes服务器集群,然后再创建容器负载。 详细介绍请查看什么是云容器实例。
  • 创建方式 表2 创建方式不同 云容器引擎CCE 云容器实例CCI CCE是基于Kubernetes的托管式容器管理服务,可以提供原生Kubernetes体验,可以一键创建原生Kubernetes集群,与社区能力基本一致。 使用CCE,您需要创建集群和节点,简单、低成本、高可用,无需管理Master节点。 CCI提供 Serverless Container引擎,在华为云上部署容器时,您不需要购买和管理ECS,可以直接在华为云上运行容器和Pod,为您省去底层ECS的运维和管理工作。 使用CCI,您无需创建集群,无需创建和管理Master节点及Work节点,可直接启动应用程序。
  • 收费方式 表3 收费方式不同 维度 云容器引擎CCE 云容器实例CCI 定价 CCE在使用过程中会创建相关资源(如节点、带宽等),您需要为这些资源付费。 CCI实例资源包含CPU、内存、GPU等,根据使用的实际实例资源规格进行计费。 计费方式 支持按需计费、包年/包月两种计费模式 支持按需计费、购买套餐包两种计费模式 最小计价单位 按小时计费 按秒计费,以小时为出账周期 图1 CCE和CCI收费方式区别
  • 基础概念 云容器引擎(CCE) 云容器引擎(Cloud Container Engine,简称CCE)提供高度可扩展的、高性能的企业级Kubernetes集群,支持运行Docker容器,提供了Kubernetes集群管理、容器应用全生命周期管理、应用服务网格、Helm应用模板、插件管理、应用调度、监控与运维等容器全栈能力,为您提供一站式容器平台服务。借助云容器引擎,您可以在华为云上轻松部署、管理和扩展容器化应用程序。 应用管理与运维平台(ServiceStage) ServiceStage应用管理与运维平台是一个应用托管和微服务管理平台,可以帮助企业简化部署、监控、运维和治理等应用生命周期管理工作。ServiceStage面向企业提供微服务、移动和Web类应用开发的全栈解决方案,帮助您的各类应用轻松上云,聚焦业务创新,帮助企业数字化快速转型。
  • 个人数据说明 使用个人数据的场景 视频转码、转封装处理的音视频文件。 用户下发视频截图任务,截图后图片存储于用户自有OBS桶中。 收集的个人数据项 媒体处理 的音视频文件。 视频截图。 收集的来源和方式 最终用户访问。 媒体处理过程中,媒体处理服务从视频文件中获取。 使用的目的以及安全保护措施 用于视频转码处理,转码后文件存储到用户OBS桶。 存储在用户自有OBS桶中,用户可自行处理转码后文件,且用户可以根据实际需求配置OBS桶的安全机制。 截图后文件存储到用户OBS。 存储在用户自有OBS桶中,用户可自行处理截图文件,且用户可以根据实际需求配置OBS桶的安全机制。 存留期限与存留策略 系统缓存,异常场景下存留最大不超过24小时。 系统缓存,异常场景下存留最大不超过24小时。 销毁方式 系统自动删除缓存。 系统自动删除缓存。 导出方式 用户自行从OBS桶中下载导出。 用户自行从OBS桶中下载导出。 导出指导 请参见OBS用户指南导出。 请参见OBS用户指南导出。
  • 如何进行安全加固 登录CCE控制台。 在左侧导航栏中选择“集群管理”,单击要创建节点的集群进入集群控制台。 在集群控制台左侧导航栏中选择“节点管理”,切换至“节点”页签并单击右上角的“创建节点”,在节点配置步骤中设置节点参数。 以下为开启安全加固关键参数设置,其余参数请根据需求设置。 在“操作系统”中选择“Huawei Cloud EulerOS 2.0”。 在“安全加固”设置中选择“等保加固”。 图1 开启安全加固 其余节点参数设置完成后,单击“下一步:规格确认”。 确认完成后单击“提交”,开始创建节点。
  • 解决方法 2.3.3及以上版本的NGINX Ingress默认仅支持TLS v1.2及v1.3版本,如果需要支持更多TLS版本,您可以在NGINX Ingress控制器插件配置的ssl-ciphers参数中添加@SECLEVEL=0字段,以启用对更多TLS版本的支持。更多详情请参见TLS/HTTPS。 登录CCE控制台,进入集群,在左侧导航栏中选择“插件管理”,在“已安装插件”下,单击NGINX Ingress控制器下的“管理”。 单击对应控制器实例的“编辑”按钮。 在“nginx 配置参数”中添加以下配置。 { "ssl-ciphers": "@SECLEVEL=0 ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA20-POLY1305:DHE-RSA-AES128-GCM-SHA256:DHE-RSA-AES256-GCM-SHA384:DHE-RSA-CHACHA20-POLY1305:ECDHE-ECDSA-AES128-SHA256:ECDHE-RSA-AES128-SHA256:ECDHE-ECDSA-AES128-SHA:ECDHE-RSA-AES128-SHA:ECDHE-ECDSA-AES256-SHA384:ECDHE-RSA-AES256-SHA384:ECDHE-ECDSA-AES256-SHA:ECDHE-RSA-AES256-SHA:DHE-RSA-AES128-SHA256:DHE-RSA-AES256-SHA256:AES128-GCM-SHA256:AES256-GCM-SHA384:AES128-SHA256:AES256-SHA256:AES128-SHA:AES256-SHA:DES-CBC3-SHA", "ssl-protocols": "TLSv1 TLSv1.1 TLSv1.2 TLSv1.3" } 单击“确定”。 重新使用TLS v1.1进行访问,响应正常。
  • 修改云服务器的数据盘 待纳管云服务器的数据盘数量、大小、类型需修改成和节点池的数据盘配置相同。 数据盘数量 更多操作指导请参见ECS新增磁盘或ECS在线卸载磁盘。 登录ECS控制台。 单击目标云服务器名称,进入弹性云服务器详情页。 选择“云硬盘”页签。 如果待纳管节点的数据盘数量少于节点池配置中的数据盘数量,则需新增磁盘: 单击“新增磁盘”,设置新添加云硬盘的参数信息。云硬盘的参数信息配置请参考购买云硬盘。 配置新增磁盘时,磁盘规格及大小需和节点池中的磁盘配置保持一致,且高级配置中需勾选“SCSI”。 如果待纳管节点的数据盘数量多于节点池配置中的数据盘数量,则需卸载磁盘: 单击待卸载磁盘所在行的“卸载”,卸载云硬盘。 数据盘大小 更多操作指导请参见ECS扩容云硬盘。 登录ECS控制台。 单击目标云服务器名称,进入弹性云服务器详情页。 切换至“云硬盘”页签,单击待扩容云硬盘右侧的“扩容”,系统跳转至云硬盘控制台的“扩容磁盘”页面。 根据界面提示,设置“目标容量”。 设置完成后,单击“下一步”并根据界面提示完成订单提交。 数据盘类型 更多操作指导请参见变更云硬盘类型。 登录ECS控制台。 单击目标云服务器名称,进入弹性云服务器详情页。 切换至“云硬盘”页签,单击待扩容云硬盘右侧的“磁盘变配”。 根据界面提示,设置“磁盘类型”。 设置完成后,单击“提交”。
  • 响应示例 状态码: 200 请求已成功 { "ca_id" : "66504812-fedc-414a-9b7c-4c1836398524" } 状态码: 400 请求参数有误。 { "error_code" : "PCA.XXX", "error_msg" : "XXX" } 状态码: 401 被请求的页面需要鉴权。 { "error_code" : "PCA.XXX", "error_msg" : "XXX" } 状态码: 403 认证失败。 { "error_code" : "PCA.XXX", "error_msg" : "XXX" } 状态码: 404 资源不存在或资源未找到。 { "error_code" : "PCA.XXX", "error_msg" : "XXX" } 状态码: 500 服务内部错误。 { "error_code" : "PCA.XXX", "error_msg" : "XXX" }
  • 响应示例 状态码: 400 请求参数有误。 { "error_code" : "PCA.XXX", "error_msg" : "XXX" } 状态码: 401 被请求的页面需要鉴权。 { "error_code" : "PCA.XXX", "error_msg" : "XXX" } 状态码: 403 认证失败。 { "error_code" : "PCA.XXX", "error_msg" : "XXX" } 状态码: 404 资源不存在或资源未找到。 { "error_code" : "PCA.XXX", "error_msg" : "XXX" } 状态码: 500 服务内部错误。 { "error_code" : "PCA.XXX", "error_msg" : "XXX" }
  • 响应示例 状态码: 200 请求已成功 { "agency_id" : "078ade0fc20010004f8fc0034fad529d" } 状态码: 400 请求参数有误。 { "error_code" : "PCA.XXX", "error_msg" : "XXX" } 状态码: 401 被请求的页面需要鉴权。 { "error_code" : "PCA.XXX", "error_msg" : "XXX" } 状态码: 403 认证失败。 { "error_code" : "PCA.XXX", "error_msg" : "XXX" } 状态码: 404 资源不存在或资源未找到。 { "error_code" : "PCA.XXX", "error_msg" : "XXX" } 状态码: 500 服务内部错误。 { "error_code" : "PCA.XXX", "error_msg" : "XXX" }
  • 响应示例 状态码: 200 请求已成功 { "agency_granted" : "true" } 状态码: 400 请求参数有误。 { "error_code" : "PCA.XXX", "error_msg" : "XXX" } 状态码: 401 被请求的页面需要鉴权。 { "error_code" : "PCA.XXX", "error_msg" : "XXX" } 状态码: 403 认证失败。 { "error_code" : "PCA.XXX", "error_msg" : "XXX" } 状态码: 404 资源不存在或资源未找到。 { "error_code" : "PCA.XXX", "error_msg" : "XXX" } 状态码: 500 服务内部错误。 { "error_code" : "PCA.XXX", "error_msg" : "XXX" }
  • 准备用户 如果您是第一次使用LakeFormation,请参考LakeFormation准备工作章节,完成用户创建并授权使用LakeFormation等准备工作。 本入门示例,是为了演示使用LakeFormation的全流程,用户还需提前完成以下准备工作: 已在IAM服务中创建用于授权的IAM业务用户、用户组,用户已关联至用户组。 已在OBS服务中创建一个并行文件系统,并在文件系统中创建用于映射数据表的文件夹。 已创建对接LakeFormation所需的相关委托。例如,如果执行 MRS 对接LakeFormation,则参考MRS准备工作创建相关委托等。
  • CDN与其他服务间依赖关系 CDN对其他云服务有诸多依赖关系,因此在您开启IAM系统策略授权后,在CDN Console控制台的各项功能需要配置相应的服务权限后才能正常查看或使用,前提条件如下: 依赖服务的权限配置均基于您已设置了IAM系统策略授权的CDN FullAccess或CDN ReadOnlyAccess策略权限。 如果IAM用户需要在CDN Console控制台拥有相应功能的查看或使用权限,请确认已经对该用户所在的用户组设置了CDN Administrator、CDN FullAccess或CDN ReadOnlyAccess策略的集群权限,再按如下表3增加依赖服务的权限。 表3 CDN Console中依赖服务的角色或策略 Console控制台功能 依赖服务 需配置角色/策略 OBS委托授权 统一身份认证 服务 IAM 创建委托:iam:agencies:createAgency 查询指定条件下的委托列表:iam:agencies:listAgencies 查询委托详情:iam:agencies:getAgency 为委托授予项目服务权限:iam:permissions:grantRoleToAgencyOnProject 查询委托是否拥有项目服务权限:iam:permissions:checkRoleForAgencyOnProject 查询项目列表:iam:projects:listProjects 查询权限列表:iam:roles:listRoles 源站配置 源站是OBS桶域名 对象存储服务 OBS 列举全部桶:obs:bucket:ListAllMyBuckets 列举桶内对象:obs:bucket:ListBucket 判断桶是否存在并获取桶的元数据:obs:bucket:HeadBucket SCM证书 云证书管理服务 CCM 查询证书列表:scm:cert:list 导出证书:scm:cert:download 按照标签筛选域名 标签管理服务 TMS 查询预定义标签:tms:predefineTags:list 企业项目 企业管理 查询企业项目详情:eps:enterpriseProjects:get 查询企业项目列表:eps:enterpriseProjects:list
  • CDN权限 默认情况下,管理员创建的IAM用户没有任何权限,需要将其加入用户组,并给用户组授予策略或角色,才能使得用户组中的用户获得对应的权限,这一过程称为授权。授权后,用户就可以基于被授予的权限对云服务进行操作。 CDN部署时不区分物理区域,为全局级服务。授权时,在全局级服务中设置权限,访问CDN时,不需要切换区域。 根据授权精细程度分为角色和策略。 角色:IAM最初提供的一种根据用户的工作职能定义权限的粗粒度授权机制。该机制以服务为粒度,提供有限的服务相关角色用于授权。由于华为云各服务之间存在业务依赖关系,因此给用户授予角色时,可能需要一并授予依赖的其他角色,才能正确完成业务。角色并不能满足用户对精细化授权的要求,无法完全达到企业对权限最小化的安全管控要求。 策略:IAM最新提供的一种细粒度授权的能力,可以精确到具体服务的操作、资源以及请求条件等。基于策略的授权是一种更加灵活的授权方式,能够满足企业对权限最小化的安全管控要求。例如:针对ECS服务,管理员能够控制IAM用户仅能对某一类云服务器资源进行指定的管理操作。多数细粒度策略以API接口为粒度进行权限拆分,CDN支持的API授权项请参见权限及授权项说明。 策略是以JSON格式描述权限集的语言。默认情况下,新建的IAM用户没有任何权限,您需要将其加入用户组,并给用户组授予策略,才能使得用户组中的用户获得策略定义的权限,这一过程称为授权。授权后,用户就可以基于策略对云服务进行操作。IAM系统预置了各服务的常用权限,例如管理员权限、只读权限,您可以直接使用这些系统策略。 CDN部署时不区分物理区域,为全局级服务。授权时,在全局项目中设置策略,访问CDN时,不需要切换区域。 如表1所示,包括了CDN的所有系统策略。
  • 云耀云服务器与普通ECS、普通VPS(Virtual Private Server)功能对比 表2 云耀云服务器与普通ECS、普通VPS功能对比 产品 云耀云服务器 普通ECS 普通VPS 客户群体 中小企业、开发者、学生 大中型企业用户 有端到端技术实力的用户 应用场景 轻量级应用场景: 轻量企业OA、博客、论坛 云端开发测试环境 跨境电商管理,网站建设 架构复杂的应用场景: 高并发网站,复杂分布集群 大型游戏,大数据分析 视频解码,AI应用 各类自建应用: 轻量级场景 架构复杂的应用场景 自定义场景 技术能力要求 低 中 高 运维能力要求 低 中 高 建设成本 低 中 高 售卖方式 包含多种产品类型,可选择高性价比套餐,整体更优惠 灵活选配资源,独立叠加计费 购买全部资源 应用构建 部分场景开箱即用 手动搭建 全流程手动搭建 管理控制台 一站式整合,独立且简化 面向全业务,较多细节 全流程手动搭建 镜像配置 丰富的应用镜像 丰富的应用镜像 系统镜像 网络配置 自动创建 手动配置 全流程手动配置 华为生态 支持 支持 不支持
  • 到期与欠费 到期 包年/包月的 L实例 、旧版HECS使用时长结束后,即为到期。 欠费 包含按需计费资源的L实例、X实例,因按需付费的资源周期性结算费用,当账户余额不足时,账户将进入欠费状态。 L实例套餐中包含了固定的流量配额,流量配额使用完后,对超额流量按需计费。 HECS到期或欠费后的运行规则及影响 到期/欠费后阶段 影响 宽限期 HECS到期或欠费后进入宽限期。在宽限期内,您仍可正常访问及使用HECS。 保留期 宽限期到期后,若仍未续订HECS或按需资源仍未缴清欠款,将进入保留期。保留期内不能访问及使用HECS,但HECS仍予以保留。 资源进入宽限期/保留期后,华为云将会通过邮件、短信等方式向您发送提醒,提醒您续订或充值。保留期到期后,包年/包月资源仍未续订或按需资源仍未充值缴清欠款,所有资源将被释放。为避免对您的业务造成影响,请及时续费。
  • 计费项 华为云耀云服务器根据您选择的规格和使用时长计费。 标 * 的计费项为必选计费项。 表2 云耀云服务器L实例计费项 计费项 计费说明 计费模式 计费公式 * 云主机 不同的实例规格提供不同的计算和存储能力。 计费因子:vCPU和内存。 包年/包月 实例规格单价 * 购买时长 * 云硬盘(系统盘) 购买L实例时实例规格对应一个固定容量的系统盘。购买L实例成功后,将立即开始计费,计费与其是否被使用无关。 计费因子:系统盘容量。 说明: 不支持单独扩容系统盘,您可以通过升级实例规格扩容系统盘。 包年/包月 云硬盘单价 * 购买时长 * 流量包 套餐内包含每月固定流量包,出网业务流量优先抵扣流量包,流量包固定流量使用完后将产生超额流量。 计费因子:流量包。 说明: L实例仅对出网流量( 云服务器访问外网 的流量)计费,入网流量(外部访问云服务器的流量)不计费。 流量包使用周期为自购买日期起到下个月相同时间时段内。例如6月5日10:00:00购买L实例,当月流量包使用截止时间为7月5日23:59:59。 流量包当月剩余流量按月清零,不累计至下月流量配额中。 包年/包月 流量包单价 * 购买时长 超额流量 套餐内流量包使用完后将产生超额流量。超额流量以按流量计费的计费方式收取费用。超额流量的单价为0.8元/GB。 计费因子:超额流量。 按流量付费 流量单价*超额流量 * 镜像 L实例中仅Windows镜像计费,其他镜像免费。 为方便您操作,“系统镜像”页签下展示了非华为云自营的Windows操作系统镜像。 包年/包月 镜像单价*购买时长 数据盘 如有额外的存储需求,您需要购买数据盘。 计费因子:数据盘容量。 包年/包月 云硬盘单价 * 购买时长 主机安全 如有主机安全防护需求,您需要随L实例开启安全防护能力。 计费因子:主机安全基础版。 包年/包月 主机安全单价 * 购买时长 云备份 如有备份需求,您需要随L实例购买备份存储库,用来存放服务器产生的备份副本。 计费因子:存储库容量。 说明: L实例仅支持云服务器备份类型,如果您未随L实例购买云备份,您后续也可以在云备份控制台 购买云服务器 备份,对L实例备份数据。具体操作详见购买云服务器备份存储库。 在云备份控制台购买的云服务器备份支持包年/包月和按需计费方式。 包年/包月 存储库容量单价 * 购买时长 表3 云耀云服务器X实例计费项 计费项 计费项说明 适用的计费模式 计费公式 * 云服务器 不同规格的实例类型提供不同的计算和存储能力,您可根据实际需要选择合适的实例规格。 计费因子:vCPU和内存 包年/包月、按需计费 实例规格单价 * 购买时长 实例规格单价以控制台为准。 * 镜像 镜像计费模式和实例规格一致。 公共镜像:公共镜像由华为云提供,公共镜像免费。 Windows镜像为第三方收费镜像,为方便您操作,“公共镜像”页签下展示了第三方Windows镜像。 私有镜像: 系统盘镜像和数据盘镜像免费使用。 使用云服务器备份或云备份创建的整机镜像,收取云服务器备份或云备份涉及的存储、跨区域复制流量的按需费用。云备份费用详见云备份计费项。 如果私有镜像的镜像源来自市场镜像,则会根据云市场价格收取私有镜像费用。 共享镜像:来源于他人共享的系统盘镜像、数据盘镜像或整机镜像,属于私有镜像。计费规则同私有镜像。共享镜像为区域内共享,不涉及跨区域复制流量费用。 和实例规格一致,包年/包月、按需计费 镜像单价 * 购买时长 镜像单价以售卖页和云市场镜像显示的价格为准。 * 云硬盘(系统盘) 购买X实例时会默认购买40GiB的系统盘,您可以根据需要调整该容量。购买云硬盘成功后,将立即开始计费,计费与其是否被使用无关。 计费因子:云硬盘类型、容量。 包年/包月、按需计费 云硬盘单价 * 购买时长 云硬盘单价以控制台为准。 云硬盘(数据盘) 如有额外的存储需求,您需要购买数据盘。 计费因子:云硬盘类型、容量。 包年/包月、按需计费 云硬盘单价 * 购买时长 云硬盘单价以控制台为准。 带宽 如有互联网访问需求,您需要购买弹性公网IP。 计费因子:带宽费、流量费和IP保有费。 包年/包月计费模式支持按带宽计费方式,收取带宽费。 按需计费模式支持按带宽计费、按流量计费和加入共享带宽三种计费方式,分别收取带宽费+IP保有费、流量费+IP保有费、带宽费+IP保有费。 说明: 如果弹性公网IP已绑定至云服务器,则IP保有费为0。 包年/包月、按需计费 按固定带宽值采用阶梯计费 0Mbit/s~5Mbit/s(含):均为一个统一的单价 大于5Mbit/s:按每Mbit/s计费 公网带宽单价以控制台为准。 主机安全 如有主机安全防护需求,您需要开启安全防护能力,包含主机安全基础版和企业版。 可免费开启基础防护,开启后,将为您的主机提供四大安全防御能力:主机安全基础版防御(免费赠送一个月,超过一个月后自动取消)、账号破解防护、弱口令检测、恶意程序检测等功能。 包年/包月、按需计费 主机安全单价 * 购买时长 主机安全单价以控制台为准。 云备份 如有备份需求,您需要购买备份存储库,用来存放服务器产生的备份副本。 按照存储库容量计费,详细计费信息请参见云备份价格详情。 包年/包月、按需计费 云备份单价*购买时长 云备份单价以控制台为准。 表4 旧版HECS计费项 计费项 计费说明 计费模式 费用 旧版HECS实例 实例类型及规格(vCPU,内存),购买时长以及所购买的实例数量。 具体请参考云耀云服务器产品价格详情。 包年/包月 实例规格单价 * 购买时长 镜像 目前华为云中国站的公共镜像中,云耀云服务器使用的公共镜像暂时免费。如果选择市场镜像,以云商店价格为准。 说明: Windows操作系统为市场镜像,该服务由第三方提供。为方便用户选用,在公共镜像中提供入口。具体收费以镜像供应商提供的信息为准。 镜像单价 * 购买时长 系统盘(必选) 默认系统盘40GB~80GB(需购买),仅支持包周期购买方式,具体计费请参考云硬盘计费。建议云硬盘购买周期与云耀云服务器保持一致。 云硬盘单价 * 购买时长 数据盘(可选) 数据盘购支持包周期方式购买和添加,具体参考云硬盘计费。 带宽(可选) 按带宽计费,具体请参考带宽计费。 按固定带宽值采用阶梯计费 0Mbit/s~5Mbit/s(含):均为一个统一的单价 大于5Mbit/s:按每Mbit/s计费 主机安全 如有主机安全防护需求,您需要开启安全防护能力,免费提供主机安全基础防护。 - 免费
  • 性能测试结果 本章介绍GeminiDB Redis性能测试结果,根据上述测试方法操作,展示在各种数据模型、测试场景、Workload模型组合下的性能指标。当前性能白皮书仅呈现中小规格并发能力下的数据库性能数据,如需更高的并发能力,可水平或垂直升级数据库规格。 总数据量小于内存场景下的测试数据请参见表1。 总数据量大于内存场景下的测试数据请参见表2。 表1 总数据量小于内存场景测试数据 实例规格 测试模型 Workload模型 QPS(次/秒) Average Latency(毫秒) P99 Latency(毫秒) 4U*3节点 value_length=100字节 clients=90 100% Write 125590 0.66 1.85 value_length=100字节 clients=105 100% Read 139741 0.62 1.51 value_length=100字节 clients=90 50% Read+50% Write 125620 Read:0.56 Read:1.32 Write:0.55 Write:1.30 8U*3节点 value_length=100字节 clients=128 100% Write 216392 0.62 1.92 value_length=100字节 clients=128 100% Read 202970 0.62 1.89 value_length=100字节 clients=128 50% Read+50% Write 212052 Read:0.63 Read:1.94 Write:0.63 Write:1.92 表2 总数据量大于内存场景测试数据 实例规格 测试模型 Workload模型 QPS(次/秒) Average Latency(毫秒) P99 Latency(毫秒) 4U*3节点 value_length=100字节 clients=75 100% Write 123942 0.62 1.30 value_length=100字节 clients=96 100% Read 125351 0.63 1.54 value_length=100字节 clients=96 50% Read+50% Write 122485 Read:0.64 Read:1.65 Write:0.64 Write:1.61 8U*3节点 value_length=100字节 clients=120 100% Write 196596 0.62 2.02 value_length=100字节 clients=120 100% Read 187716 0.62 1.90 value_length=100字节 clients=120 50% Read+50% Write 197097 Read:0.62 Read:1.94 Write:0.62 Write:1.94 注:clients是连接数,对应memtier命令中t和c字段的乘积。 父主题: GeminiDB Redis接口通用性能数据
共100000条