华为云用户手册

  • 弃用和移除 Kubernetes 1.25版本 清理iptables链的所有权 Kubernetes通常创建iptables链来确保这些网络数据包到达, 这些iptables链及其名称属于Kubernetes内部实现的细节,仅供内部使用场景,目前有些组件依赖于这些内部实现细节,Kubernetes总体上不希望支持某些工具依赖这些内部实现细节。详细信息,请参见Kubernetes的iptables链不是API。 在Kubernetes 1.25版本后,Kubelet通过IPTablesCleanup特性门控分阶段完成迁移,是为了不在NAT表中创建iptables链,例如KUBE-MARK-DROP、KUBE-MARK-MASQ、KUBE-POSTROUTING。关于清理iptables链所有权的信息,请参见清理IPTables链的所有权。 存储驱动的弃用和移除,移除云服务厂商的in-tree卷驱动。 Kubernetes 1.24版本 在Kubernetes 1.24版本后,Service.Spec.LoadBalancerIP被弃用,因为它无法用于双栈协议。请使用自定义annotation。 在Kubernetes 1.24版本后,kube-apiserver移除参数--address、--insecure-bind-address、--port、--insecure-port=0。 在Kubernetes 1.24版本后,kube-controller-manager和kube-scheduler移除启动参数--port=0和--address。 在Kubernetes 1.24版本后,kube-apiserver --audit-log-version和--audit-webhook-version仅支持audit.k8s.io/v1,Kubernetes 1.24移除audit.k8s.io/v1[alpha|beta]1,只能使用audit.k8s.io/v1。 在Kubernetes 1.24版本后,kubelet移除启动参数--network-plugin,仅当容器运行环境设置为Docker时,此特定于Docker的参数才有效,并会随着Dockershim一起删除。 在Kubernetes 1.24版本后,动态日志清理功能已经被废弃,并在Kubernetes 1.24版本移除。该功能引入了一个日志过滤器,可以应用于所有Kubernetes系统组件的日志,以防止各种类型的敏感信息通过日志泄漏。此功能可能导致日志阻塞,所以废弃,更多信息请参见Dynamic log sanitization和 KEP-1753。 VolumeSnapshot v1beta1 CRD在Kubernetes 1.20版本中被废弃,在Kubernetes 1.24版本中移除,需改用v1版本。 在Kubernetes 1.24版本后,移除自1.11版本就废弃的service annotation tolerate-unready-endpoints,使用Service.spec.publishNotReadyAddresses代替。 在Kubernetes 1.24版本后,废弃metadata.clusterName字段,并将在下一个版本中删除。 Kubernetes 1.24及以后的版本,去除了kube-proxy监听NodePort的逻辑,在NodePort与内核net.ipv4.ip_local_port_range范围有冲突的情况下,可能会导致偶发的TCP无法连接的情况,导致健康检查失败、业务异常等问题。升级前,请确保集群没有NodePort端口与任意节点net.ipv4.ip_local_port_range范围存在冲突。更多信息,请参见Kubernetes社区PR。
  • 主要特性 Kubernetes 1.25版本 Pod Security Admission进入稳定阶段,并移除PodSecurityPolicy PodSecurityPolicy被废弃,并提供Pod Security Admission取代,具体的迁移方法可参见从PodSecurityPolicy迁移到内置的PodSecurity准入控制器。 Ephemeral Containers进入稳定阶段 临时容器是在现有的Pod中存在有限时间的容器。它对故障排除特别有用,特别是当需要检查另一个容器,但因为该容器已经崩溃或其镜像缺乏调试工具不能使用kubectl exec时。 对cgroups v2的支持进入稳定阶段 Kubernetes支持cgroups v2,与cgroups v1相比提供了一些改进,详情请参见cgroups v2。 SeccompDefault提升到Beta状态 如果要开启该特性,需要给kubelet增加启动参数为--seccomp-default=true,这样会默认开启seccomp为RuntimeDefault,提升整个系统的安全。1.25集群将不再支持使用注解“seccomp.security.alpha.kubernetes.io/pod”和“container.seccomp.security.alpha.kubernetes.io/annotation”来使用seccomp,请使用pod或container中“securityContext.seccompProfile”字段替代,详情请参见为Pod或容器配置安全上下文。 特性开启后可能应用所需的系统调用会被runtime限制,所以开启后应确保在测试环境调试,不会对应用造成影响。 网络策略中的EndPort进入稳定阶段 Network Policy中的EndPort已进入稳定状态,该特性于1.21版本合入。主要是在NetworkPolicy新增EndPort,可以指定一个Port范围,避免声明每一个Port。 本地临时容器存储容量隔离进入稳定阶段 本地临时存储容量隔离功能提供了对Pod之间本地临时存储容量隔离的支持,如EmptyDir。因此,如果一个Pod对本地临时存储容量的消耗超过该限制,就可以通过驱逐Pod来硬性限制其对共享资源的消耗。 CRD验证表达式语言升级为Beta阶段 CRD验证表达式语言已升级为 beta 版本, 这使得声明如何使用通用表达式语言(CEL)验证自定义资源成为可能。 请参考验证规则指导。 引入KMS v2 API 在Kubernetes 1.25版本,引入KMS v2 alpha1 API以提升性能,实现轮替与可观察性改进。 此API使用AES-GCM替代了AES-CBC,通过DEK实现静态 数据加密 (Kubernetes Secrets),此过程中无需您额外操作,且支持通过AES-GCM和AES-CBC进行读取。 更多信息,请参考使用 KMS provider进行数据加密指南。 Pod新增网络就绪状况 Kubernetes 1.25引入了对kubelet所管理的新的Pod状况PodHasNetwork的Alpha支持, 该状况位于Pod的status字段中 。详情请参见Pod网络就绪。 应用滚动上线所用的两个特性进入稳定阶段 在Kubernetes 1.25版本,StatefulSet的minReadySeconds进入稳定阶段,允许每个Pod等待一段预期时间来减缓StatefulSet的滚动上线。更多信息,请参见最短就绪秒数。 在Kubernetes 1.25版本,DaemonSet的maxSurge进入稳定阶段,允许DaemonSet工作负载在滚动上线期间在一个节点上运行同一 Pod的多个实例,有助于将DaemonSet的停机时间降到最低。DaemonSet不允许maxSurge和hostPort同时使用,因为两个活跃的Pod无法共享同一节点的相同端口。更多信息,请参见DaemonSet工作负载滚动上线。 对使用用户命名空间运行Pod提供Alpha支持 对使用user namespace运行Pod提供alpha支持,将Pod内的root用户映射到容器外的非零ID,使得从容器角度看是root身份运行,而从主机角度看是常规的非特权用户。目前尚处于内测阶段,需要开启特性门控UserNamespacesStatelessPodsSupport, 且要求容器运行时必须能够支持此功能。更多信息,请参见对使用user namespace运行Pod提供alpha支持。 Kubernetes 1.24版本 从kubelet中删除 Dockershim Dockershim自1.20版本被标废弃以来,在1.24版本正式从Kubelet代码中移除。如果还想使用Docker作为容器运行时的话,需要切换到cri-dockerd,或者使用其他支持CRI的运行时比如Containerd/CRI-O等。 从Docker Engine 切换到Containerd的流程请参见将节点容器引擎从Docker迁移到Containerd。 您需要注意排查是否有agent或者应用强依赖Docker Engine的,比如在代码中使用docker ps,docker run, docker inspect等,需要注意兼容多种runtime,以及切换到标准cri接口。 Beta APIs默认关闭 在社区移除一些长期Beta API的过程中发现,90%的集群管理员并没有关心Beta API默认开始,其实Beta特性是不推荐在生产环境中使用,但是因为默认的打开策略,导致这些API在生产环境中都被默认开启,这样会因为Beta特性的bug带来一些风险,以及升级的迁移的风险。所以在1.24版本开始,Beta API默认关闭,之前已经默认开启的Beta API会保持默认开启。 支持OpenAPI v3 在Kubernetes 1.24版本后,OpenAPI V3默认开启。 存储容量跟踪特性进入稳定阶段 在Kubernetes 1.24版本后, CS IStorageCapacity API支持显示当前可用的存储大小,确保Pod调度到足够存储容量的节点上,减少Volumes创建和挂载失败导致的Pod调度延迟,详细信息请参见存储容量。 gRPC 探针升级到Beta阶段 在Kubernetes 1.24版本后,gRPC探针进入Beta,默认可用特性门控参数GRPCContainerProbe,使用方式请参见配置探针。 特性门控LegacyServiceAccountTokenNoAutoGeneration默认启用 LegacyServiceAccountTokenNoAutoGeneration特性门控进入beta状态,默认为开启状态,开启后将不再为Service Account自动生成Secret Token。如果需要使用永不过期的Token,需要自己新建Secrets并挂载,详情请参见服务账号令牌Secret。 避免 IP 分配给服务的冲突 Kubernetes 1.24引入了一项新功能,允许为服务的静态IP地址分配软保留范围。 通过手动启用此功能,集群将从服务IP地址池中自动分配IP,从而降低冲突风险。 基于Go 1.18编译 在Kubernetes 1.24版本后,Kubernetes基于Go 1.18编译,默认不再支持SHA-1哈希算法验证证书签名,例如SHA1WithRSA、ECDSAWithSHA1算法,推荐使用SHA256算法生成的证书进行认证。 StatefulSet支持设置最大不可用副本数 在Kubernetes 1.24版本后,StatefulSets支持可配置maxUnavailable参数,使得滚动更新时可以更快地停止Pods。 节点非体面关闭进入Alpha阶段 在Kubernetes 1.24中,节点非体面关闭特性是Alpha版。当kubelet的节点关闭管理器可以检测到即将到来的节点关闭操作时,节点关闭才被认为是体面的。详情请参见处理节点非体面关闭。
  • 漏洞处理方案 目前RedHat、Ubuntu、Debian、SUSE等各大Linux厂商均已发布补丁版本修复了该漏洞,请受影响的用户升级到安全版本,若无法及时升级,可参考厂商官方提供的建议进行缓解。 RedHat、Ubuntu、Debian、SUSE EulerOS已发布补丁,升级polkit rpm包即可。 升级方法如下 yum clean all yum makecache yum update polkit rpm -qa | grep polkit 检查是否已经修复为对应版本 EulerOS 2.10 修复版本为polkit-0.116-6.h4 EulerOS 2.9 修复版本为polkit-0.116-5.h7 EulerOS 2.8 修复版本为polkit-0.115-2.h14 EulerOS 2.5 修复版本为polkit-0.112-14.h15 若系统没有可用的补丁,可通过将pkexec中的SUID-bit删除进行临时规避,命令如:# chmod 0755 /usr/bin/pkexec 注:修复漏洞前请将资料备份,并进行充分测试。
  • 漏洞详情 国外安全研究团队披露在polkit的pkexec程序中存在一处权限提升漏洞(CVE-2021-4034,亦称PwnKit),攻击者通过在其默认配置中利用此漏洞实现用任何非特权用户获取易受攻击主机的完全root权限,目前漏洞POC/EXP已公开,风险较高。 Polkit(PolicyKit)是一个用于在类Unix操作系统中控制系统范围权限的组件。pkexec是Plokit框架中的一部分,执行具有提升权限的命令,是sudo的替代方案。请使用Polkit的用户及时安排自检并做好安全加固。 参考链接:https://www.qualys.com/2022/01/25/cve-2021-4034/pwnkit.txt 表1 漏洞信息 漏洞类型 CVE-ID 漏洞级别 披露/发现时间 权限提升 CVE-2021-4034 高 2022-01-28
  • 集群版本与操作系统对应关系 如下为当前已经发布的集群版本与操作系统版本的对应关系,请参考: 表1 弹性云服务器-虚拟机节点操作系统 操作系统 集群版本 CCE Standard集群 CCE Turbo 集群 最新内核信息 VPC网络模型 容器隧道网络模型 云原生网络2.0 Huawei Cloud EulerOS 2.0 v1.31 √ √ √ 5.10.0-182.0.0.95.r2220_156.hce2.x86_64 v1.30 √ √ √ 5.10.0-182.0.0.95.r2220_156.hce2.x86_64 v1.29 √ √ √ 5.10.0-182.0.0.95.r2220_156.hce2.x86_64 v1.28 √ √ √ 5.10.0-182.0.0.95.r2220_156.hce2.x86_64 v1.27 √ v1.27.3-r0及以上版本支持 √ 5.10.0-182.0.0.95.r2220_156.hce2.x86_64 v1.25(停止维护) √ v1.25.6-r0及以上版本支持 √ v1.25.3-r0及以上集群版本: 5.10.0-182.0.0.95.r2220_156.hce2.x86_64 v1.25.3-r0以下集群版本: 5.10.0-60.18.0.50.r865_35.hce2.x86_64 v1.23(停止维护) √ v1.23.11-r0及以上版本支持 √ v1.23.8-r0及以上集群版本: 5.10.0-182.0.0.95.r2220_156.hce2.aarch64 v1.23.8-r0以下集群版本: 5.10.0-60.18.0.50.r865_35.hce2.x86_64 Huawei Cloud EulerOS 2.0 (ARM) v1.31 √ √ √ 5.10.0-182.0.0.95.r2220_156.hce2.aarch64 v1.30 √ √ √ 5.10.0-182.0.0.95.r2220_156.hce2.aarch64 v1.29 √ √ √ 5.10.0-182.0.0.95.r2220_156.hce2.aarch64 v1.28 √ √ √ 5.10.0-182.0.0.95.r2220_156.hce2.aarch64 v1.27 √ v1.27.3-r0及以上版本支持 √ 5.10.0-182.0.0.95.r2220_156.hce2.aarch64 v1.25(停止维护) v1.25.3-r0及以上版本支持 v1.25.6-r0及以上版本支持 v1.25.3-r0及以上版本支持 5.10.0-182.0.0.95.r2220_156.hce2.aarch64 v1.23(停止维护) v1.23.6-r0及以上版本支持 v1.23.11-r0及以上版本支持 v1.23.6-r0及以上版本支持 v1.23.8-r0及以上集群版本: 5.10.0-182.0.0.95.r2220_156.hce2.aarch64 v1.23.6-r0至v1.23.7-r0集群版本: 5.10.0-60.18.0.50.r865_35.hce2.aarch64 Ubuntu 22.04 v1.31 √ × √ 5.15.0-126-generic v1.30 √ × √ 5.15.0-126-generic v1.29 √ × √ 5.15.0-126-generic v1.28 √ × √ 5.15.0-126-generic v1.27 √ × √ v1.27.3-r0及以上集群版本: 5.15.0-126-generic v1.27.3-r0以下集群版本: 5.15.0-86-generic v1.25(停止维护) v1.25.3-r0及以上版本支持 × v1.25.3-r0及以上版本支持 v1.25.6-r0及以上集群版本: 5.15.0-126-generic v1.25.6-r0以下集群版本: 5.15.0-86-generic v1.23(停止维护) v1.23.8-r0及以上版本支持 × v1.23.8-r0及以上版本支持 v1.23.11-r0及以上集群版本: 5.15.0-126-generic v1.23.11-r0以下集群版本: 5.15.0-86-generic Huawei Cloud EulerOS 1.1 v1.31 √ √ √ 3.10.0-1160.76.2.hce1c.x86_64 v1.30 √ √ √ 3.10.0-1160.76.2.hce1c.x86_64 v1.29 √ √ √ 3.10.0-1160.76.2.hce1c.x86_64 v1.28 √ √ √ 3.10.0-1160.76.2.hce1c.x86_64 v1.27 √ √ √ 3.10.0-1160.76.2.hce1c.x86_64 v1.25(停止维护) √ √ √ 3.10.0-1160.76.2.hce1c.x86_64 v1.23(停止维护) √ √ √ 3.10.0-1160.76.2.hce1c.x86_64 v1.21(停止维护) √ √ √ 3.10.0-1160.76.2.hce1c.x86_64 EulerOS release 2.9 v1.31 √ √ √ 4.18.0-147.5.1.6.h1447.eulerosv2r9.x86_64 v1.30 √ √ √ 4.18.0-147.5.1.6.h1447.eulerosv2r9.x86_64 v1.29 √ √ √ 4.18.0-147.5.1.6.h1447.eulerosv2r9.x86_64 v1.28 √ √ √ 4.18.0-147.5.1.6.h1447.eulerosv2r9.x86_64 v1.27 √ √ √ 4.18.0-147.5.1.6.h1447.eulerosv2r9.x86_64 v1.25(停止维护) √ √ √ 4.18.0-147.5.1.6.h1447.eulerosv2r9.x86_64 v1.23(停止维护) √ √ √ v1.23.5-r0及以上集群版本: 4.18.0-147.5.1.6.h1447.eulerosv2r9.x86_64 v1.23.5-r0以下集群版本: 4.18.0-147.5.1.6.h1017.eulerosv2r9.x86_64 v1.21(停止维护) √ √ √ v1.21.7-r0及以上集群版本: 4.18.0-147.5.1.6.h1447.eulerosv2r9.x86_64 v1.21.7-r0以下集群版本: 4.18.0-147.5.1.6.h1017.eulerosv2r9.x86_64 v1.19(停止维护) √ √ √ 4.18.0-147.5.1.6.h1152.eulerosv2r9.x86_64 EulerOS release 2.9 (ARM) v1.31 √ √ √ 4.19.90-vhulk2103.1.0.h1380.eulerosv2r9.aarch64 v1.30 √ √ √ 4.19.90-vhulk2103.1.0.h1380.eulerosv2r9.aarch64 v1.29 √ √ √ 4.19.90-vhulk2103.1.0.h1380.eulerosv2r9.aarch64 v1.28 √ √ √ 4.19.90-vhulk2103.1.0.h1380.eulerosv2r9.aarch64 v1.27 √ √ √ 4.19.90-vhulk2103.1.0.h1380.eulerosv2r9.aarch64 v1.25(停止维护) √ √ √ 4.19.90-vhulk2103.1.0.h1380.eulerosv2r9.aarch64 v1.23(停止维护) √ √ √ v1.23.5-r0及以上集群版本: 4.19.90-vhulk2103.1.0.h1380.eulerosv2r9.aarch64 v1.23.5-r0以下集群版本: 4.19.90-vhulk2103.1.0.h990.eulerosv2r9.aarch64 v1.21(停止维护) √ √ √ v1.21.7-r0及以上集群版本: 4.19.90-vhulk2103.1.0.h1380.eulerosv2r9.aarch64 v1.21.7-r0以下集群版本: 4.19.90-vhulk2103.1.0.h990.eulerosv2r9.aarch64 v1.19(停止维护) √ √ √ 4.19.90-vhulk2103.1.0.h1144.eulerosv2r9.aarch64 EulerOS release 2.8(ARM)(停止维护) v1.27及以上 × × × - v1.25(停止维护) √ √ √ 4.19.36-vhulk1907.1.0.h1350.eulerosv2r8.aarch64 v1.23(停止维护) √ √ √ 4.19.36-vhulk1907.1.0.h1350.eulerosv2r8.aarch64 v1.21(停止维护) √ √ √ 4.19.36-vhulk1907.1.0.h1350.eulerosv2r8.aarch64 v1.19.16(停止维护) √ √ √ 4.19.36-vhulk1907.1.0.h1350.eulerosv2r8.aarch64 v1.19.10(停止维护) √ √ √ 4.19.36-vhulk1907.1.0.h962.eulerosv2r8.aarch64 v1.17.17(停止维护) √ √ √ 4.19.36-vhulk1907.1.0.h962.eulerosv2r8.aarch64 v1.15.11(停止维护) √ √ √ 4.19.36-vhulk1907.1.0.h702.eulerosv2r8.aarch64 EulerOS release 2.5(停止维护) v1.27及以上 × × × - v1.25(停止维护) √ √ √ 3.10.0-862.14.1.5.h687.eulerosv2r7.x86_64 v1.23(停止维护) √ √ √ 3.10.0-862.14.1.5.h687.eulerosv2r7.x86_64 v1.21(停止维护) √ √ √ 3.10.0-862.14.1.5.h687.eulerosv2r7.x86_64 v1.19.16(停止维护) √ √ √ 3.10.0-862.14.1.5.h687.eulerosv2r7.x86_64 v1.19.10(停止维护) √ √ √ 3.10.0-862.14.1.5.h520.eulerosv2r7.x86_64 v1.19.8(停止维护) √ √ √ 3.10.0-862.14.1.5.h520.eulerosv2r7.x86_64 v1.17.17(停止维护) √ √ √ 3.10.0-862.14.1.5.h470.eulerosv2r7.x86_64 v1.17.9(停止维护) √ √ √ 3.10.0-862.14.1.5.h428.eulerosv2r7.x86_64 v1.15.11(停止维护) √ √ √ 3.10.0-862.14.1.5.h428.eulerosv2r7.x86_64 v1.15.6-r1(停止维护) √ √ √ 3.10.0-862.14.1.5.h328.eulerosv2r7.x86_64 v1.13.10-r1(停止维护) √ √ √ 3.10.0-862.14.1.2.h249.eulerosv2r7.x86_64 v1.13.7-r0(停止维护) √ √ √ 3.10.0-862.14.1.0.h197.eulerosv2r7.x86_64 CentOS Linux release 7.6(停止维护) v1.31 √ √ √ 3.10.0-1160.119.1.el7.x86 64 v1.30 √ √ √ 3.10.0-1160.119.1.el7.x86 64 v1.29 √ √ √ 3.10.0-1160.119.1.el7.x86 64 v1.28 √ √ √ 3.10.0-1160.119.1.el7.x86 64 v1.27 √ √ √ 3.10.0-1160.119.1.el7.x86 64 v1.25(停止维护) √ √ √ 3.10.0-1160.119.1.el7.x86 64 v1.23(停止维护) √ √ √ v1.23.3-r0及以上集群版本: 3.10.0-1160.119.1.el7.x86 64 v1.23.3-r0以下集群版本: 3.10.0-1160.66.1.el7.x86_64 v1.21(停止维护) √ √ √ v1.21.5-r0及以上集群版本: 3.10.0-1160.119.1.el7.x86_64 v1.21.4-r0集群版本: 3.10.0-1160.66.1.el7.x86_64 v1.21.4-r0以下集群版本: 3.10.0-1160.25.1.el7.x86_64 v1.19(停止维护) √ √ √ 3.10.0-1160.108.1.el7.x86_64 v1.17.17(停止维护) √ √ √ 3.10.0-1160.15.2.el7.x86_64 v1.17.9(停止维护) √ √ √ 3.10.0-1062.12.1.el7.x86_64 v1.15.11(停止维护) √ √ √ 3.10.0-1062.12.1.el7.x86_64 v1.15.6-r1(停止维护) √ √ √ 3.10.0-1062.1.1.el7.x86_64 v1.13.10-r1(停止维护) √ √ √ 3.10.0-957.21.3.el7.x86_64 v1.13.7-r0(停止维护) √ √ √ 3.10.0-957.21.3.el7.x86_64 Ubuntu 18.04 server 64bit(停止维护) v1.27及以上 × × × - v1.25(停止维护) √ × √ 4.15.0-171-generic v1.23(停止维护) √ × √ 4.15.0-171-generic v1.21(停止维护) √ × √ 4.15.0-171-generic v1.19.16(停止维护) √ × √ 4.15.0-171-generic v1.19.8(停止维护) √ × √ 4.15.0-136-generic v1.17.17(停止维护) √ × √ 4.15.0-136-generic 表2 弹性云服务器-物理机节点操作系统 操作系统 集群版本 CCE Standard集群 CCE Turbo集群 最新内核信息 VPC网络模型 容器隧道网络模型 云原生网络2.0 EulerOS release 2.10 v1.31 √ √ √ 4.18.0-147.5.2.15.h1109.eulerosv2r10.x86_64 v1.30 √ √ √ 4.18.0-147.5.2.15.h1109.eulerosv2r10.x86_64 v1.29 √ √ √ 4.18.0-147.5.2.15.h1109.eulerosv2r10.x86_64 v1.28 √ √ √ 4.18.0-147.5.2.15.h1109.eulerosv2r10.x86_64 v1.27 √ √ √ 4.18.0-147.5.2.15.h1109.eulerosv2r10.x86_64 v1.25 √ √ √ 4.18.0-147.5.2.15.h1109.eulerosv2r10.x86_64 v1.23 √ √ √ 4.18.0-147.5.2.15.h1109.eulerosv2r10.x86_64 v1.21(停止维护) √ √ √ 4.18.0-147.5.2.15.h1109.eulerosv2r10.x86_64 v1.19.16(停止维护) √ √ √ 4.18.0-147.5.2.15.h1109.eulerosv2r10.x86_64 表3 裸金属服务器节点操作系统 操作系统 集群版本 CCE Standard集群 CCE Turbo集群 最新内核信息 VPC网络模型 容器隧道网络模型 云原生网络2.0 Huawei Cloud EulerOS 2.0(部分局点及机型支持,请以控制台呈现为准) v1.31 √ √ × 5.10.0-60.18.0.50.r1083_58.hce2.x86_64 v1.30 √ √ × 5.10.0-60.18.0.50.r1083_58.hce2.x86_64 v1.29 √ √ × 5.10.0-60.18.0.50.r1083_58.hce2.x86_64 v1.28 √ √ × 5.10.0-60.18.0.50.r1083_58.hce2.x86_64 v1.27 √ √ × 5.10.0-60.18.0.50.r1083_58.hce2.x86_64 v1.25 √ √ × 5.10.0-60.18.0.50.r1083_58.hce2.x86_64 v1.23 √ √ × 5.10.0-60.18.0.50.r1083_58.hce2.x86_64 EulerOS release 2.9(受限使用,请提交工单确认) v1.31 √ √ × 4.18.0-147.5.1.6.h841.eulerosv2r9.x86_64 v1.30 √ √ × 4.18.0-147.5.1.6.h841.eulerosv2r9.x86_64 v1.29 √ √ × 4.18.0-147.5.1.6.h841.eulerosv2r9.x86_64 v1.28 √ √ × 4.18.0-147.5.1.6.h841.eulerosv2r9.x86_64 v1.27 √ √ × 4.18.0-147.5.1.6.h841.eulerosv2r9.x86_64 v1.25 √ √ × 4.18.0-147.5.1.6.h841.eulerosv2r9.x86_64 v1.23 √ √ × 4.18.0-147.5.1.6.h841.eulerosv2r9.x86_64 v1.21(停止维护) √ √ × 4.18.0-147.5.1.6.h841.eulerosv2r9.x86_64 v1.19(停止维护) √ √ × 4.18.0-147.5.1.6.h841.eulerosv2r9.x86_64 EulerOS release 2.3(停止维护) v1.27及以上 × × × - v1.25(停止维护) √ √ × 3.10.0-514.41.4.28.h62.x86_64 v1.23(停止维护) √ √ × 3.10.0-514.41.4.28.h62.x86_64 v1.21(停止维护) √ √ × 3.10.0-514.41.4.28.h62.x86_64 v1.19(停止维护) √ √ × 3.10.0-514.41.4.28.h62.x86_64 v1.17(停止维护) √ √ × 3.10.0-514.41.4.28.h62.x86_64 v1.15.11(停止维护) √ √ × 3.10.0-514.41.4.28.h62.x86_64
  • 使用案例 案例场景 因数据规整要求,需要周期性地将多组 DLI 源数据表数据导入到对应的DLI目的表,如表1所示。 表1 需要导入的列表情况 源数据表名 目的表名 a_new a b_2 b c_3 c d_1 d c_5 e b_1 f 如果通过SQL节点分别执行导入脚本,需要开发大量脚本和节点,导致重复性工作。在这种情况下,我们可以使用For Each节点进行循环作业,节省开发工作量。 配置方法 准备源表和目的表。为了便于后续作业运行验证,需要先创建DLI源数据表和目的表,并给源数据表插入数据。 创建DLI表。您可以在 DataArts Studio 数据开发中,新建DLI SQL脚本执行以下SQL命令,也可以在 数据湖探索 (DLI)服务控制台中的SQL编辑器中执行以下SQL命令: /* 创建数据表 */ CREATE TABLE a_new (name STRING, score INT) STORED AS PARQUET; CREATE TABLE b_2 (name STRING, score INT) STORED AS PARQUET; CREATE TABLE c_3 (name STRING, score INT) STORED AS PARQUET; CREATE TABLE d_1 (name STRING, score INT) STORED AS PARQUET; CREATE TABLE c_5 (name STRING, score INT) STORED AS PARQUET; CREATE TABLE b_1 (name STRING, score INT) STORED AS PARQUET; CREATE TABLE a (name STRING, score INT) STORED AS PARQUET; CREATE TABLE b (name STRING, score INT) STORED AS PARQUET; CREATE TABLE c (name STRING, score INT) STORED AS PARQUET; CREATE TABLE d (name STRING, score INT) STORED AS PARQUET; CREATE TABLE e (name STRING, score INT) STORED AS PARQUET; CREATE TABLE f (name STRING, score INT) STORED AS PARQUET; 给源数据表插入数据。您可以在DataArts Studio数据开发模块中,新建DLI SQL脚本执行以下SQL命令,也可以在 数据湖 探索(DLI)服务控制台中的SQL编辑器中执行以下SQL命令: /* 源数据表插入数据 */ INSERT INTO a_new VALUES ('ZHAO','90'),('QIAN','88'),('SUN','93'); INSERT INTO b_2 VALUES ('LI','94'),('ZHOU','85'); INSERT INTO c_3 VALUES ('WU','79'); INSERT INTO d_1 VALUES ('ZHENG','87'),('WANG','97'); INSERT INTO c_5 VALUES ('FENG','83'); INSERT INTO b_1 VALUES ('CEHN','99'); 准备数据集数据。您可以通过以下方式之一获取数据集: 您可以将表1数据导入到DLI表中,然后将SQL脚本读取的结果作为数据集。 您可以将表1数据保存在OBS的CSV文件中,然后通过DLI SQL或DWS SQL创建OBS外表关联这个CSV文件,然后将OBS外表查询的结果作为数据集。DLI创建外表请参见OBS输入流,DWS创建外表请参见创建外表。 您可以将表1数据保存在HDFS的CSV文件中,然后通过HIVE SQL创建Hive外表关联这个CSV文件,然后将HIVE外表查询的结果作为数据集。 MRS 创建外表请参见创建表。 本例以方式1进行说明,将表1中的数据导入到DLI表(Table_List)中。您可以在DataArts Studio数据开发模块中,新建DLI SQL脚本执行以下SQL命令导入数据,也可以在数据湖探索(DLI)服务控制台中的SQL编辑器中执行以下SQL命令: /* 创建数据表TABLE_LIST,然后插入表1数据,最后查看生成的表数据 */ CREATE TABLE Table_List (Source STRING, Destination STRING) STORED AS PARQUET; INSERT INTO Table_List VALUES ('a_new','a'),('b_2','b'),('c_3','c'),('d_1','d'),('c_5','e'),('b_1','f'); SELECT * FROM Table_List; 生成的Table_List表数据如下: 图2 Table_List表数据 创建要循环运行的子作业ForeachDemo。在本次操作中,定义循环执行的是一个包含了DLI SQL节点的任务。 进入DataArts Studio数据开发模块选择“作业开发”页面,新建作业ForeachDemo,然后选择DLI SQL节点,编排图3所示的作业。 DLI SQL的语句中把要替换的变量配成${}这种参数的形式。在下面的SQL语句中,所做的操作是把${Source}表中的数据全部导入${Destination}中,${fromTable}、${toTable} 就是要替换的变量参数。SQL语句为: INSERT INTO ${Destination} select * from ${Source}; 此处不能使用EL表达式#{Job.getParam("job_param_name")} ,因为此表达式只能直接获取当前作业里配置的参数的value,并不能获取到父作业传递过来的参数值,也不能获取到工作空间里面配置的全局变量,作用域仅为本作业。 而表达式${job_param_name},既可以获取到父作业传递过来的参数值,也可以获取到全局配置的变量。 图3 循环执行子作业 配置完成SQL语句后,在子作业中配置作业参数。此处仅需要配置参数名,用于主作业ForeachDemo_master中的For Each节点识别子作业参数;参数值无需填写。 图4 配置子作业参数 配置完成后保存作业。 创建For Each节点所在的主作业ForeachDemo_master。 进入DataArts Studio数据开发模块选择“作业开发”页面,新建数据开发主作业ForeachDemo_master。选择DLI SQL节点和For Each节点,选中连线图标并拖动,编排图5所示的作业。 图5 编排作业 配置DLI SQL节点属性,此处配置为SQL语句,语句内容如下所示。DLI SQL节点负责读取DLI表Table_List中的内容作为数据集。 SELECT * FROM Table_List; 图6 DLI SQL节点配置 配置For Each节点属性。 子作业:子作业选择步骤2已经开发完成的子作业“ForeachDemo”。 数据集:数据集就是DLI SQL节点的Select语句的执行结果。使用EL表达式#{Job.getNodeOutput('preDLI')},其中preDLI为前一个节点的名称。 子作业参数:用于将数据集中的数据传递到子作业以供使用。Source对应的是数据集Table_List表的第一列,Destination是第二列,所以配置的EL表达式分别为#{Loop.current[0]}、#{Loop.current[1]}。 图7 配置For Each节点 配置完成后保存作业。 测试运行主作业。 单击主作业画布上方的“测试运行”按钮,测试作业运行情况。主作业运行后,会通过For Each节点自动调用运行子作业。 单击左侧导航栏中的“实例监控”,进入实例监控中查看作业运行情况。等待作业运行成功后,就能查看For Each节点生成的子作业实例,由于数据集中有6行数据,所以这里就对应产生了6个子作业实例。 图8 查看作业实例 查看对应的6个DLI目的表中是否已被插入预期的数据。您可以在DataArts Studio数据开发模块中,新建DLI SQL脚本执行以下SQL命令导入数据,也可以在数据湖探索(DLI)服务控制台中的SQL编辑器中执行以下SQL命令: /* 查看表a数据,其他表数据请修改命令后运行 */ SELECT * FROM a; 将查询到的表数据与给源数据表插入数据步骤中的数据进行对比,可以发现数据插入符合预期。 图9 目的表数据
  • 适用场景 当您进行作业开发时,如果某些任务的参数有差异、但处理逻辑全部一致,在这种情况下您可以通过For Each节点避免重复开发作业。 For Each节点可指定一个子作业循环执行,并通过数据集对子作业中的参数进行循环替换。关键参数如下: 子作业:选择需要循环执行的作业。 数据集:即不同子任务的参数值的集合。可以是给定的数据集,如“[['1'],['3'],['2']]”;也可以是EL表达式如“#{Job.getNodeOutput('preNodeName')}”,即前一个节点的输出值。 子作业参数:参数名即子作业中定义的变量;参数值一般配置为数据集中的某组数据,每次运行中会将参数值传递到子作业以供使用。例如参数值填写为:#{Loop.current[0]},即将数据集中每行数据的第一个数值遍历传递给子作业。 For Each节点举例如图1所示 。从图中可以看出,子作业“foreach”中的参数名为“result”,参数值为一维数组数据集“[['1'],['3'],['2']] ”的遍历(即第一次循环为1,第二次循环为3,第三次循环为2)。 图1 for each节点
  • For Each节点与EL表达式 要想使用好For Each节点,您必须对EL表达式有所了解。EL表达式用法请参考EL表达式。 下面为您展示For Each节点常用的一些EL表达式。 #{Loop.dataArray} :For循环节点输入的数据集,是一个二维数组。 #{Loop.current}:由于For循环节点在处理数据集的时候,是一行一行进行处理的,那Loop.current就表示当前处理到的某行数据,Loop.current是一个一维数组,一般定义格式为#{Loop.current[0]}、#{Loop.current[1]}或其他,0表示遍历到当前行的第一个值。 #{Loop.offset}:For循环节点在处理数据集时当前的偏移量,从0开始。 #{Job.getNodeOutput('preNodeName')}:获取前面节点的输出。
  • 方式三:通过YAML使用profile控制pod调度到CCI 登录集群节点,配置profile资源。 vi profile.yaml 限制CCE集群最大负载数,配置local maxNum和scaleDownPriority的profile模板示例如下: apiVersion: scheduling.cci.io/v1 kind: ScheduleProfile metadata: name: test-cci-profile namespace: default spec: objectLabels: matchLabels: app: nginx strategy: localPrefer location: local: maxNum: 20 # 当前暂不支持local/cci同时配置maxNum scaleDownPriority: 10 cci: {} 限制CCI集群最大负载数,配置cci maxNum和scaleDownPriority的profile的模板示例如下: apiVersion: scheduling.cci.io/v1 kind: ScheduleProfile metadata: name: test-cci-profile namespace: default spec: objectLabels: matchLabels: app: nginx strategy: localPrefer location: local: {} cci: maxNum: 20 # 当前暂不支持local/cci同时配置maxNum scaleDownPriority: 10 表3 关键参数说明 参数 类型 描述 strategy String 表示CCE集群工作负载弹性调度到CCI策略,取值如下: enforce,CCE工作负载强制弹性到CCI。 auto,根据用户集群调度器实际打分决定是否弹性到CCI。 localPrefer,工作负载优先调度到CCE集群,集群资源不足时工作负载弹性到CCI。 maxNum int 表示pod最大数量配置。 取值范围[0~int32]。 scaleDownPriority int 表示缩容优先级配置,数值越大越先缩容。 取值范围[-100, 100]。 location配置local字段(CCE侧)和cci字段(CCI侧)控制pod数量和缩容优先级。 local字段和cci字段不可以同时设置maxNum。 缩容优先级为非必填项参数,如果不配置缩容优先级,默认值将为空。 在CCE集群中创建profile资源。 kubectl apply -f profile.yaml 创建无状态负载,使用selector方式选择含有“app:nginx”的pod,关联上文创建的profile。 kind: Deployment apiVersion: apps/v1 metadata: name: nginx spec: replicas: 10 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 表4 特殊场景使用说明 特殊使用场景 使用说明 pod同时使用label和profile控制调度CCI 使用label控制调度CCI的方式优先级高于使用profile控制调度CCI的方式。 例如label中策略为off,profile的策略为enforce,最终pod不会调度到CCI。 pod同时被多个profile关联 pod有且仅有一个关联profile。当pod被多个profile关联,根据profile匹配pod的label的数量,选出最大关联profile,存在多个时,选择字典序小的profile关联。 pod最终被profileA关联
  • 简介 对于使用CCE集群和CCI的使用场景,用户可以按需将工作负载调度到CCE集群节点或者对接CCI的虚拟节点,本文详细介绍如何将CCE集群的工作负载调度到CCI上。 bursting插件当前提供了以下方式管理CCE集群的pod,使其能够调度到CCI: 方式一:通过配置labels控制pod调度到CCI 方式二:通过控制台使用profile控制pod调度到CCI 方式三:通过YAML使用profile控制pod调度到CCI
  • 方式一:通过配置labels控制pod调度到CCI 通过CCE集群控制台(console)创建pod调度到CCI。通过CCE集群创建工作负载时,选择CCI弹性承载策略配置,选择“不开启”以外的任意策略。 在CCE集群控制台(console)创建工作负载时,CCI弹性承载支持勾选“bursting-node”或者“virtual-kubelet”,如果使用CCI 1.0请勾选“virtual-kubelet”,如果使用CCI 2.0请勾选“bursting-node”。目前CCI 2.0仅对白名单用户开放,如需使用CCI 2.0服务,请提交工单申请开启CCI 2.0服务。 通过yaml文件在CCE集群节点创建pod调度CCI。成功安装bursting插件后,登录CCE集群节点,在工作负载的yaml文件中添加virtual-kubelet.io/burst-to-cci标签。 apiVersion: apps/v1 kind: Deployment metadata: name: test namespace: default labels: virtual-kubelet.io/burst-to-cci: 'auto' # 弹性到CCI spec: replicas: 2 selector: matchLabels: app: test template: metadata: labels: app: test spec: containers: - image: 'nginx:perl' name: container-0 resources: requests: cpu: 250m memory: 512Mi limits: cpu: 250m memory: 512Mi volumeMounts: [] imagePullSecrets: - name: default-secret 表1 关键参数说明 参数 类型 描述 virtual-kubelet.io/burst-to-cci String 表示CCE集群工作负载弹性调度到CCI策略,取值如下: enforce,CCE工作负载强制弹性到CCI。 auto,根据用户集群调度器实际打分决定是否弹性到CCI。 localPrefer,工作负载优先调度到CCE集群,集群资源不足时工作负载弹性到CCI。 off,工作负载不会弹性到CCI。
  • EG最佳实践汇总 本文汇总了基于事件网格服务(EG,EventGrid)常见应用场景的操作实践,为每个实践提供详细的方案描述和操作指导,帮助用户轻松构建基于EG的业务。 表1 EG最佳实践一览表 最佳实践 说明 基于事件订阅将OBS应用事件源消息路由至分布式消息服务Kafka版 本章节介绍如何通过事件网格服务的事件订阅功能将OBS应用事件源产生的事件路由至分布式消息服务Kafka版。 基于Serverless版事件流实现Kafka实例之间的数据同步 本章节介绍如何通过事件网格服务的事件流功能实现分布式消息服务Kafka版实例间的数据同步。 基于EventGrid事件订阅和FunctionGraph实现OBS桶数据同步 本章节介绍如何通过事件网格服务的事件订阅和 函数工作流 服务实现OBS桶的数据同步。 基于Serverless版事件流实现RocketMQ推送事件至函数工作流服务 本章节介绍如何通过事件网格服务的事件流功能将RocketMQ产生的事件推送至函数工作流服务。
  • 操作步骤 登录事件网格控制台。 在左侧导航栏选择“事件流>专业版事件流作业”,进入“专业版事件流作业”页面。 右上角单击“创建作业”,进入“基础配置”。 配置“基本配置”信息,以下内容将以非白名单账号举例介绍。 表1 作业基本配置参数说明 参数 说明 集群 选择已创建的集群,如未创建,请参见专业版事件流集群。 作业名称 请输入作业名称。 场景类型 可选“同步”或“迁移”。 同步:实现数据源之间的数据实时同步,支持正向和反向的长期单向数据同步。 迁移:适用于业务割接期数据的整体搬迁上云,只支持短期单向同步。 描述 请输入对本作业的描述。 单击“下一步:源和目标对象配置”,进入“源和目标对象配置”页面。 图1 源数据和目标数据配置 表2 源数据和目标数据配置参数说明 参数 说明 配置类型 默认为“Rocketmq实例”。 说明: 配置类型根据实例类型变更。 实例别名 请输入实例别名。 用于标识源端和目标端实例,建议同一个源端或目标端实例只设置一个别名。 区域 请选择资源所在区域。 项目 请选择项目。 Rocketmq实例 请选择Rocketmq实例。 用户名 请输入用户名。 密钥 请输入密钥。 单击“下一步:高级配置”,进入“高级配置”页面。 图2 高级配置 表3 作业对象配置参数说明 参数 说明 Topic匹配类型 选择“正则匹配”或“精确匹配”。 说明: 当选择“正则匹配”时需在下方输入“Topic正则”。示例:.* 表示匹配所有Topic,topic.* 表示匹配所有以topic为前缀的Topic。 当选择“精确匹配”时需选择“Topics”。 同步消费进度 请选择是否打开。 说明: 开启时表示将消息消费进度同步到目标Rocketmq。 启动偏移量 请选择为“最早”、“最新”或“自定义”。 压缩算法 请选择压缩算法为“none”、“lz4”、“zstd”或“zlib”。 单击“下一步:预检查”,进入“预检查”页面,完成后单击“完成配置”。 图3 预检查 返回专业版事件流作业列表,单击刚才创建的事件流名称,进入“基本信息”页面,选择“作业管理”,可以查看“同步进展详情”。 表4 参数说明 参数名称 说明 Topic名称 创建RocketMQ实例时的Topic。 队列数 创建Topic时设置的队列个数。 待同步数 当前Topic队列数中未同步的消息数量。
  • 前提条件 业务有自己的源RocketMQ和目标RocketMQ。 源RocketMQ和目标RocketMQ实例支持的版本:4.x、5.x。 源RocketMQ和目标RocketMQ实例的规格、Broker数量、存储空间需保持一致。 确保vpc、子网、RocketMQ等资源充足。 确保源端和目标端实例与用户创建事件流集群时选择的VPC网络互通。 创建VPC和子网的操作指导请参考创建虚拟私有云和子网。
  • 操作步骤 登录事件网格控制台。 在左侧导航栏选择“事件流>专业版事件流作业”,进入“专业版事件流作业”页面。 右上角单击“创建作业”,进入“基础配置”。 配置“基本配置”信息,以下内容将以非白名单账号举例介绍。 表1 作业基本配置参数说明 参数 说明 集群 选择已创建的集群,如未创建,请参见专业版事件流集群。 作业名称 请输入作业名称。 场景类型 可选“同步”或“迁移”。 同步:实现数据源之间的数据实时同步,支持正向和反向的长期单向数据同步。 迁移:适用于业务割接期数据的整体搬迁上云,只支持短期单向同步。 描述 请输入对本作业的描述。 单击“下一步:源和目标对象配置”,进入“源和目标对象配置”页面。 “源数据”和“目标数据”中选择好Kafka实例后,单击“测试连通性”,检查通过后,进入步骤6。 图1 源数据和目标数据配置 表2 源数据和目标数据配置参数说明 参数 说明 配置类型 默认为“Kafka实例”。 说明: 配置类型根据实例类型变更。 实例别名 请输入实例别名。 用于标识源端和目标端实例,建议同一个源端或目标端实例只设置一个别名。 区域 请选择资源所在区域。 项目 请选择项目。 Kafka实例 请选择Kafka实例。 接入方式 支持“明文接入”或“密文接入”。 安全协议 当选择明文接入时,安全协议为“PLAINTEXT”。 当选择“密文接入”时,安全协议可选择“SASL_SSL”或“SASL_PLAINTEXT”;认证机制可选择“SC RAM -SHA-512”或“PLAIN”。 用户名 请输入用户名。 当接入方式选择“密文接入”时需配置。 密码 请输入密码。 当接入方式选择“密文接入”时需配置。 单击“下一步:高级配置”,进入“高级配置”页面。 图2 高级配置 表3 作业对象配置参数说明 参数 说明 Topic匹配类型 选择“正则匹配”或“精确匹配”。 说明: 当选择“正则匹配”时需在下方输入“Topic正则”。示例:.* 表示匹配所有Topic,topic.* 表示匹配所有以topic为前缀的Topic。 当选择“精确匹配”时需选择“Topics”。 副本数 请配置副本数。 自动创建的Topic副本数,不能超过目标端Kafka的Broker数量。 同步消费进度 请选择是否打开。 开启时表示将消息消费进度同步到目标Kafka。 启动偏移量 请选择为“最早”或“最新”。 压缩算法 请选择压缩算法为“none”、“gzip”、“snappy”、“lz4”或“zstd”。 单击“下一步:预检查”,进入“预检查”页面,完成后单击“完成配置”。 图3 预检查 返回专业版事件流作业列表,单击刚才创建的事件流名称,进入“基本信息”页面,选择“作业管理”,可以查看“同步进展详情”。 表4 参数说明 参数名称 说明 Topic名称 创建Kafka实例时的Topic。 分区数 创建Topic时设置的分区数,分区数越大消费的并发度越大。 待同步数 当前Topic分区数中未同步的消息数量。 同步速率:当前作业同步消息时的速率,单击“限流”可跳转至源端Kafka实例的“流控列表”页面,用户可通过配置流控进而实现限流目的。
  • 约束与限制 当前DCS的专业版事件流作业需开通白名单,使用前请提交工单申请。开通后默认支持“同步”场景作业,“迁移”场景需额外开通白名单。 “同步”场景的约束与限制: 仅支持Redis 5.0版本的单机、主备和Cluster集群。 源端和目标端Redis实例的实例规格、实例类型、存储空间需保持一致,否则不支持同步事件流。 源端和目标端Redis实例需要打开eventLog配置、关闭appendonly(Redis单机实例无该参数)配置。 确保源端和目标端Redis实例已关闭客户端的IP透传功能。 “迁移”场景的约束与限制: 源端仅支持4.0、5.0、6.0版本Redis,目标端仅支持DCS服务的Redis 4.0、5.0、6.0版本单机、主备和Cluster集群类型实例。 如果源端Redis禁用了SYNC和PSYNC命令,请务必放通后再执行在线迁移,否则会导致在线迁移失败。 如果源端为DCS的Redis实例,需要配置eventlog参数为no;目标端Redis实例需要配置eventlog参数为no。 建议将源端Redis的repl-timeout参数配置为300秒,client-output-buffer-limit参数配置为源端Redis最大内存的20%。 开启了SSL的源端和目标端Redis不支持数据迁移,需要关闭Redis的SSL后再进行迁移。 如果源端和目标端Redis连接密码中包含单引号('),则不支持进行迁移,需要修改密码后再进行迁移。 如果是支持多DB的Redis迁移,请确保目标端的DB数量可支持源端有数据的最大DB序号。例如,源端有DB0到DB127,有数据最大DB序号为DB99,则目标端需要有100个DB及以上。
  • 操作步骤 登录事件网格控制台。 在左侧导航栏选择“事件流>专业版事件流作业”,进入“专业版事件流作业”页面。 右上角单击“创建作业”,进入“基础配置”。 配置“基本配置”信息。 表1 作业基本配置参数说明 参数 说明 集群 选择已创建的集群,如未创建,请参见专业版事件流集群。 作业名称 请输入作业名称。 场景类型 可选“同步”或“迁移”。 同步:实现数据源之间的数据实时同步,支持正向和反向的长期单向数据同步。 迁移:适用于业务割接期数据的整体搬迁上云,只支持短期单向同步。 描述 请输入对本作业的描述。 单击“下一步:源和目标对象配置”,进入“源和目标对象配置”页面。 “源数据”和“目标数据”中选择好DCS实例后,单击“测试连通性”,检查通过后,进入步骤6。 图1 源数据和目标数据配置 表2 源数据和目标数据配置参数说明 参数 说明 配置类型 默认为“DCS实例”。 说明: 配置类型根据实例类型变更。 区域 请选择资源所在区域。 项目 请选择项目。 DCS实例 请选择DCS实例。 单击“下一步:高级配置”,进入“高级配置”页面。 表3 场景类型为“同步”配置参数说明 参数 说明 同步类型 默认为“全量+增量”。 是否限制同步速率 默认开启。 同步速率(MB/s) 请设置同步速率。 输入值必须在1到20之间。 使用Slave节点 默认开启。 表4 场景类型为“迁移”配置参数说明 参数 说明 同步类型 默认为“全量+增量”。 重试策略 选择重试策略。 立即重试:巡检任务发现任务出错后立即尝试重试。 定时重试:巡检任务发现任务错后,在指定时间窗内尝试重试。 限制无法连接后的重试时间 重试策略选择“立即重试”时需配置。 开启时可设置无法连接后的重试时间,关闭时出现无法连接问题后将一直重试。 无法连接后的重试时间(分) 重试策略选择“立即重试”时需配置。 配置无法连接后的重试时间。 限制出现其他问题后的重试时间 重试策略选择“立即重试”时需配置。 开启时可设置出现其他问题后的重试时间,关闭时出现其他问题后将一直重试。 出现其他问题后的重试时间(分) 重试策略选择“立即重试”时需配置。 配置出现其他问题后的重试时间。 无法连接后的重试开始时间 重试策略选择“定时重试”时需配置。 配置无法连接后的重试开始时间。 无法连接后的重试结束时间 重试策略选择“定时重试”时需配置。 配置无法连接后的重试结束时间。 出现其他问题后的重试开始时间 重试策略选择“定时重试”时需配置。 配置出现其他问题后的重试开始时间。 出现其他问题后的重试结束时间 重试策略选择“定时重试”时需配置。 配置出现其他问题后的重试结束时间。 使用Slave节点 默认开启。 在迁移任务启动后,若事件流集群到源端或目标端实例出现连接失败问题,支持按照配置策略进行重试操作。如果在配置的时间内重新连接上源端、目标端实例,迁移任务将自动恢复。否则,迁移任务将失败。 连接问题可能出现的场景举例: 源端或者目标端实例下电、关机、重启等; 事件流集群到源端或者目标端实例的网络连接异常; 源端或者目标端节点或者分片故障,无法对外提供访问。 在迁移任务启动后,若源端或目标端实例出现除连接失败外的其他问题,支持按照配置策略进行重试操作。如果在配置的时间内数据迁移操作恢复正常,迁移任务将自动恢复。否则,迁移任务将失败。 非连接问题可能出现的场景举例: 源端未开启psync; 源端当前状态无法迁移数据,如源端重启后初始化加载RDB阶段; 源端Redis命令迁移失败,如源端Redis命令在目的端上不支持; 源端或者目标端密码修改。 单击“下一步:预检查”,进入“预检查”页面,完成后单击“完成配置”。 图2 预检查 返回专业版事件流作业列表,单击刚才创建的事件流名称,进入“基本信息”页面,选择“作业管理”,可以查看“同步进展详情”。 表5 参数说明 参数名称 说明 源节点 源数据中DCS实例的地址。 目标节点 目标数据中DCS实例的地址。 状态 DCS事件流同步进展执行情况。 同步进度 DCS事件流同步进展执行进度。 同步阶段 分为全量、增量和全量+增量。 源端已执行事务数 源端的数据数量。 目标端已执行事务数 目标端同步后的数据数量。
  • 修改事件源 登录事件网格控制台。 在左侧导航栏选择“事件订阅”,进入“事件订阅”页面。 单击待修改事件源参数的订阅名称,进入订阅详情页。 单击已有事件源模块,弹出“事件源”对话框。 修改事件源配置参数。 当提供方为“云服务”时,设置如表1所示参数。 表1 云服务事件源参数说明 参数名称 说明 事件源 选择云服务事件源。 事件类型(可选) 选择事件网格预定义的事件类型。 过滤规则 输入事件过滤规则。 事件源产生的事件与过滤规则进行匹配,匹配成功后事件才会被路由到与过滤规则关联的事件目标。如果需要了解更多过滤规则的信息,请参考过滤规则参数说明和过滤规则示例。 图1 云服务事件源配置参数 当提供方为“自定义”时,设置如表2所示参数。 表2 自定义事件源参数说明 参数名称 说明 通道 在下拉列表中选择一个已创建的自定义事件通道,例如:channel。 事件源 输入或选择一个已关联自定义事件通道(即“通道配置”中选择的自定义通道,例如:channel)的自定义事件源。 过滤规则 输入事件过滤规则。 事件源产生的事件与过滤规则进行匹配,匹配成功后事件才会被路由到与过滤规则关联的事件目标。如果需要了解更多过滤规则的信息,请参考过滤规则参数说明和过滤规则示例。 图2 自定义事件源参数配置 单击“确定”。 单击“保存”,完成事件源的修改。
  • 使用限制 单账号跟踪的事件可以通过 云审计 控制台查询。多账号的事件只能在账号自己的事件列表页面去查看,或者到组织追踪器配置的OBS桶中查看,也可以到组织追踪器配置的 CTS /system日志流下面去查看。 用户通过云审计控制台只能查询最近7天的操作记录。如果需要查询超过7天的操作记录,您必须配置转储到 对象存储服务 (OBS)或 云日志 服务(LTS),才可在OBS桶或LTS日志组里面查看历史事件信息。否则,您将无法追溯7天以前的操作记录。 云上操作后,1分钟内可以通过云审计控制台查询管理类事件操作记录,5分钟后才可通过云审计控制台查询数据类事件操作记录。 CTS新版事件列表不显示数据类审计事件,您需要在旧版事件列表查看数据类审计事件。 云审计控制台对用户的操作事件日志保留7天,过期自动删除,不支持人工删除。
  • Serverless版事件流概述 随着业务系统的扩展,数据源生成的数据流不仅数量激增,而且速度也显著加快,这就要求采用更加高效的方式来分析和处理这些数据。 事件流对事件源产生的事件实时拉取、过滤及转换,并路由至事件目标,是一种更为实时、轻量和高效的端到端的流式数据处理场景。 如下图所示,事件源与事件目标之间的交互不再依赖于传统的事件订阅机制,而是直接通过事件流的形式进行无缝传输,确保了信息传递的即时性和准确性。 图1 事件流示意图 父主题: 事件流
  • 功能简介 引导式同步 使用EG专业版事件流秒变同步专家。 场景化选择 预设使用场景,让数据同步更少配置、更简单。 网络与安全 支持SSL等加密和认证机制,让数据同步更安全。 多种同步模式 支持对象选择、全量+增量同步和多种压缩模式,满足不同同步诉求。 预检查 预检查支持提前识别同步是否满足成功条件,提供失败原因、失败详情和处理建议信息。用户可以根据失败信息和处理建议的指导,调整环境,以确保同步成功。 同步监控 全面可观测/可维护性,支持流控,同步情况,尽在掌握之中。
  • 支持的高级特性 分布式消息服务RocketMQ版支持4种高级特性。 消息过滤:消费者根据分布式消息服务RocketMQ版设置的标签对已订阅Topic中的消息进行过滤,达到只消费需要的消息的目的。 消息重试:消费者消费某条消息失败后,分布式消息服务RocketMQ版根据重试机制将消息重新发送给消费者进行消费。如果重试次数到达设定的最大值时,消息尚未被成功消费,此消息将被发送到死信队列。 分布式消息服务RocketMQ版的重试机制如表1所示。 表1 消息重试机制 消费类型 重试时间间隔 最大重试次数 顺序消费 通过suspendTimeMillis设置重试时间间隔。 默认值为1000ms,即1s。 通过消费者的setMaxReconsumeTimes函数配置最大重试次数。若未设置参数值,默认为无限重试。 普通消费 重试时间间隔根据重试次数阶梯变化,如表2所示。 创建消费组时设置。 取值范围:1-16。 表2 普通消费重试时间间隔 重试次数 与上次的间隔时间 重试次数 与上次的间隔时间 1 10s 9 7min 2 30s 10 8min 3 1min 11 9min 4 2min 12 10min 5 3min 13 20min 6 4min 14 30min 7 5min 15 1h 8 6min 16 2h 延时消息:生产者生产消息到分布式消息服务RocketMQ版后,消息不会立即被消费,而是延迟固定时间后才会发送给消费者进行消费。生产者可以指定18个延时等级,每个延时等级对应的时间如表3所示。 表3 延时等级 延时等级 延时时间 延时等级 延时时间 1 1s 10 6min 2 5s 11 7min 3 10s 12 8min 4 30s 13 9min 5 1min 14 10min 6 2min 15 20min 7 3min 16 30min 8 4min 17 1h 9 5min 18 2h 定时消息:生产者生产消息到分布式消息服务RocketMQ版后,消息不会立即被消费,而是延迟到设定的时间点后才会发送给消费者进行消费。分布式消息服务RocketMQ版支持任意时间的定时消息,最大推迟时间可达到1年。同时也支持定时消息的取消。 2022年3月30日及以后购买的实例支持定时消息功能,在此之前购买的实例不支持此功能。
  • 支持的消息类型 分布式消息服务RocketMQ版支持4种消息类型。 普通消息:没有特殊功能的消息,区别于延迟消息、顺序消息和事务消息。 延迟消息/定时消息:生产者生产消息到分布式消息服务RocketMQ版后,消息不会立即被消费,而是延迟到特定时间后才会发送给消费者进行消费。 顺序消息:消费者按照消息发送的顺序来消费消息。 事务消息:提供类似X/Open XA的分布事务功能,通过事务消息能达到分布式事务的最终一致。
  • 产品架构 图1 产品架构示意图(以4.8.0版本为例) 示意图说明: Broker:负责接收和存储Producer发送的消息,或者转发消息到Consumer。一个Broker由一个主节点和两个备节点组成。 NameServer:负责接收和存储Broker中的元数据。 Producer:从NameServer获取元数据,然后将消息发送到Broker。 Consumer:从NameServer获取元数据,然后从Broker拉取消息。
  • 分布式消息服务RocketMQ版5.x专业版规格 专业版目前还处于公测阶段。 分布式消息服务RocketMQ版5.x专业版产品规格由以下七个维度定义: 资源规格:定义使用的弹性云服务器的规格类型。 磁盘类型:定义存储空间的磁盘类型,包含高I/O、超高I/O、通用型SSD和极速型SSD。 存储容量:定义实例可以保存的存储容量。 实例TPS:定义实例的TPS性能。 弹性TPS:定义实例的弹性TPS。 实例Topic数上限:定义实例可以创建的Topic数量。 实例消费组数上限:定义实例可以创建的消费组数量。 分布式消息服务RocketMQ版5.x专业版支持的产品规格如表4和表5所示。下表中TPS是指以普通消息类型、4KB消息大小为基准计算的每秒收发消息的总条数。如果消息类型为定时消息/延时消息/事务消息,发送消息的调用次数需要在普通消息基础上乘以5,接收消息的调用次数不需要乘以5。例如:每秒发送一条普通消息,TPS为1次/秒。每秒发送一条事务消息,TPS=1*5=5次/秒。 表4 实例规格说明(分布式消息服务RocketMQ版5.x专业版单机) 资源规格 存储容量(GB) 实例TPS 实例Topic数上限 实例消费组数上限 rocketmq.p1.large.1 100 ~ 30000 500 200 500 表5 实例规格说明(分布式消息服务RocketMQ版5.x专业版集群) 资源规格 存储容量(GB) 实例TPS 弹性TPS 实例Topic数上限 实例消费组数上限 rocketmq.p2.large.8 200 ~ 60000 4000 2000 400 1500 rocketmq.p2.large.12 200 ~ 60000 6000 3000 400 1500 rocketmq.p2.large.20 200 ~ 60000 10000 5000 800 1500 rocketmq.p2.large.40 400 ~ 120000 20000 10000 800 1500 rocketmq.p2.large.100 400 ~ 120000 50000 25000 1000 2000 rocketmq.p2.large.150 400 ~ 120000 75000 37500 1000 2000 rocketmq.p2.large.200 800 ~ 240000 100000 50000 1500 4000 rocketmq.p2.large.300 800 ~ 240000 150000 50000 1500 4000
  • 分布式消息服务RocketMQ版4.8.0规格 分布式消息服务RocketMQ版4.8.0产品规格由以下七个维度定义: 资源规格:定义使用的弹性云服务器的规格类型。 代理个数:定义实例的规模。 磁盘类型:定义存储空间的磁盘类型,包含高I/O、超高I/O、通用型SSD和极速型SSD。 存储容量:定义单个代理可以保存的存储容量。 单个代理TPS:定义单个代理的TPS性能。 单个代理Topic数上限:定义单个代理可以创建的Topic数量。 单个代理消费组数上限:定义单个代理可以创建的消费组数量。 分布式消息服务RocketMQ版4.8.0支持的产品规格如表1所示。 TPS(Transaction per second)是指每秒可以生产消息和消费消息的总次数,可以理解为对应规格每秒生产消息和消费消息的总吞吐量。 表1 实例规格说明(分布式消息服务RocketMQ版4.8.0) 资源规格 代理(个) 存储容量(GB/代理) 单个代理TPS 单个代理Topic数上限 单个代理消费组数上限 rocketmq.4u8g.cluster.small 1 ~ 10 300 ~ 30000 15000 2000 2000 rocketmq.4u8g.cluster 1 ~ 10 300 ~ 60000 20000 4000 4000 rocketmq.8u16g.cluster 1 ~ 10 300 ~ 90000 25000 8000 8000 rocketmq.12u24g.cluster 1 ~ 10 300 ~ 90000 28000 12000 12000 rocketmq.16u32g.cluster 1 ~ 10 300 ~ 90000 30000 16000 16000
  • 分布式消息服务RocketMQ版5.x基础版规格 分布式消息服务RocketMQ版5.x基础版产品规格由以下六个维度定义: 资源规格:定义使用的弹性云服务器的规格类型。 磁盘类型:定义存储空间的磁盘类型,包含高I/O、超高I/O、通用型SSD和极速型SSD。 存储容量:定义实例可以保存的存储容量。 实例TPS:定义实例的TPS性能。 实例Topic数上限:定义实例可以创建的Topic数量。 实例消费组数上限:定义实例可以创建的消费组数量。 分布式消息服务RocketMQ版5.x基础版支持的产品规格如表2和表3所示。下表中TPS是指以普通消息类型、4KB消息大小为基准计算的每秒收发消息的总条数。如果消息类型为定时消息/延时消息/事务消息,发送消息的调用次数需要在普通消息基础上乘以5,接收消息的调用次数不需要乘以5。例如:每秒发送一条普通消息,TPS为1次/秒。每秒发送一条事务消息,TPS=1*5=5次/秒。 表2 实例规格说明(分布式消息服务RocketMQ版5.x基础版单机) 资源规格 存储容量(GB) 实例TPS 实例Topic数上限 实例消费组数上限 rocketmq.b1.large.1 100 ~ 30000 500 50 500 表3 实例规格说明(分布式消息服务RocketMQ版5.x基础版集群) 资源规格 存储容量(GB) 实例TPS 实例Topic数上限 实例消费组数上限 实例连接数上限 rocketmq.b2.large.4 200 ~ 60000 2000 100 1000 4000 rocketmq.b2.large.8 200 ~ 60000 4000 100 1000 4000 rocketmq.b2.large.12 200 ~ 60000 6000 100 1000 6000
  • 细粒度授权 使用自定义细粒度策略,请使用管理员用户登录 IAM 控制台,按需选择DMS的细粒度权限进行授权操作。DMS for RocketMQ细粒度权限依赖说明请参见表3。 表3 DMS for RocketMQ细粒度权限依赖说明 权限名称 权限描述 权限依赖 dms:instance:list 查看实例列表 无 dms:instance:get 查看实例详情信息 无 dms:instance:create 创建实例 vpc:vpcs:get vpc:ports:create vpc:securityGroups:get vpc:ports:get vpc:subnets:get vpc:vpcs:list vpc:publicIps:get vpc:publicIps:list vpc:ports:update vpc:publicIps:update vpc:ports:delete dms:instance:getBackgroundTask 查看实例后台任务详情 无 dms:instance:deleteBackgroundTask 删除实例后台任务 无 dms:instance:modify 修改实例 vpc:vpcs:get vpc:ports:create vpc:securityGroups:get vpc:ports:get vpc:subnets:get vpc:vpcs:list vpc:publicIps:get vpc:publicIps:list vpc:ports:update vpc:publicIps:update vpc:ports:delete dms:instance:delete 删除实例 无
  • DMS for RocketMQ权限 默认情况下,管理员创建的IAM用户没有任何权限,需要将其加入用户组,并给用户组授予策略或角色,才能使得用户组中的用户获得对应的权限,这一过程称为授权。授权后,用户就可以基于被授予的权限对云服务进行操作。 DMS for RocketMQ部署时通过物理区域划分,为项目级服务。授权时,“作用范围”需要选择“区域级项目”,然后在指定区域(如华北-北京1)对应的项目(cn-north-1)中设置相关权限,并且该权限仅对此项目生效;如果在“所有项目”中设置权限,则该权限在所有区域项目中都生效。访问DMS for RocketMQ时,需要先切换至授权区域。 权限根据授权精细程度分为角色和策略。 角色:IAM最初提供的一种根据用户的工作职能定义权限的粗粒度授权机制。该机制以服务为粒度,提供有限的服务相关角色用于授权。由于华为云各服务之间存在业务依赖关系,因此给用户授予角色时,可能需要一并授予依赖的其他角色,才能正确完成业务。角色并不能满足用户对精细化授权的要求,无法完全达到企业对权限最小化的安全管控要求。 策略:IAM最新提供的一种细粒度授权的能力,可以精确到具体服务的操作、资源以及请求条件等。基于策略的授权是一种更加灵活的授权方式,能够满足企业对权限最小化的安全管控要求。例如:针对DMS for RocketMQ服务,管理员能够控制IAM用户仅能对实例进行指定的管理操作。多数细粒度策略以API接口为粒度进行权限拆分,DMS for RocketMQ支持的API授权项请参见细粒度策略支持的授权项。 如表1所示,包括了DMS for RocketMQ的所有系统权限。 表1 DMS for RocketMQ系统权限 系统角色/策略名称 描述 类别 依赖关系 DMS FullAccess 分布式消息服务管理员权限,拥有该权限的用户可以操作所有分布式消息服务的功能。 系统策略 无 DMS UserAccess 分布式消息服务普通用户权限(没有实例创建、修改、删除、扩容)。 系统策略 无 DMS ReadOnlyAccess 分布式消息服务的只读权限,拥有该权限的用户仅能查看分布式消息服务数据。 系统策略 无 DMS VPCAccess 分布式消息服务租户委托时需要授权的VPC操作权限。 系统策略 无 DMS KMSAccess 分布式消息服务租户委托时需要授权的KMS操作权限。 系统策略 无 DMS Administrator 分布式消息服务的管理员权限。 系统角色 依赖Tenant Guest和VPC Administrator。 DMS ELBAccess 分布式消息服务租户委托时需要授权的ELB操作权限。 系统策略 无 DMS VPCEndpointAccess 分布式消息服务租户委托时需要授权的VPCEndpoint操作权限。 系统策略 无 DMSAgencyCheckAccessPolicy 分布式消息服务检查租户委托权限需要授权的IAM操作权限。 系统策略 无 表2列出了DMS for RocketMQ常用操作与系统策略的授权关系,您可以参照该表选择合适的系统策略。 表2 常用操作与系统策略的关系 操作 DMS FullAccess DMS UserAccess DMS ReadOnlyAccess DMS VPCAccess DMS KMSAccess DMS ELBAccess DMS VPCEndpointAccess DMSAgencyCheckAccessPolicy 创建实例 √ × × × × × × × 修改实例 √ × × × × × × × 删除实例 √ × × × × × × × 变更实例规格 √ × × × × × × × 查询实例信息 √ √ √ × × × × ×
  • 消息 表4 消息约束与限制 限制项 约束与限制 消息存储时长 消息默认保留时间为48小时,支持修改,最大存储时长为720小时,超过保留时间会被自动删除。 消息大小 生产消息的最大长度为4MB,其中,消息属性(即消息本身的信息,比如Topic名称、消息类型、消息ID、消息发送时间等)大小均不能超过16KB。消息大小不支持修改。 消息大小超过限制会导致消息发送失败。 定时消息的延时时长 最大延时时长为1年,不支持修改。 支持1年内任意时间的定时消息。
共100000条
提示

您即将访问非华为云网站,请注意账号财产安全