华为云用户手册

  • 可用区部署策略 优先模式:以拓扑域topology.kubernetes.io/zone为key做多实例副本软的反亲和部署。优先将插件的容器实例调度到不同可用区的节点上,如集群下节点不满足多可用区,插件实例将调度到单可用区下的不同节点。 强制模式:以拓扑域topology.kubernetes.io/zone为key做多实例副本硬反亲和部署。插件容器实例强制调度到不同可用区的节点上,如集群下节点支持的可用区数目小于实例数,插件实例将无法全部运行。 参数名 取值范围 默认值 是否允许修改 作用范围 availability-zone 优先模式/强制模式 优先模式 允许 CCE Standard/CCE Turbo 配置建议: 优先模式
  • 企业项目 集群所归属的企业项目。企业项目是一种云资源管理方式,企业项目管理服务提供统一的云资源按项目管理,以及项目内的资源管理、成员管理。 参数名 取值范围 默认值 是否允许修改 作用范围 enterpriseProjectId 租户下已存在的企业项目ID default 在企业项目管理界面支持变更 CCE Standard/CCE Turbo 用户需要开通企业项目功能后才可配置企业项目。 集群所属的企业项目与集群下所关联的其他云服务资源所属的企业项目尽量保持一致 配置建议: 与资源标签用途类似,用户可以按照管理需求,将不同归属的集群规划到不同企业项目下进行治理,常见的划分维度包括业务领域、部门、环境归属(生产环境、测试环境)等
  • 集群控制节点操作系统架构 集群控制节点架构 参数名 取值范围 默认值 是否允许修改 作用范围 type VirtualMachine BareMetal Windows ARM64 VirtualMachine 支持初始化时配置,不支持后续修改 CCE Standard/CCE Turbo VirtualMachine:Master节点为x86架构服务器 ARM64: Master节点为鲲鹏(ARM架构)服务器
  • 集群描述 集群描述,对于集群使用目的的描述,可根据实际情况自定义,默认为空。 参数名 取值范围 默认值 是否允许修改 作用范围 description 仅支持utf-8编码 支持200个字符以内 无 允许 CCE Standard/CCE Turbo 集群描述,对于集群使用目的的描述,可根据实际情况自定义,默认为空。集群创建成功后可通过接口更新指定的集群来做出修改,也可在CCE控制台中对应集群的“集群详情”下的“描述”处进行修改。 配置建议: 用户根据实际情况自行定义
  • 集群CPU管理策略 提供的CPU管理策略为应用分配独占的CPU核(即CPU绑核),提升应用性能,减少应用的调度延迟。 参数名 取值范围 默认值 是否允许修改 作用范围 kubernetes.io/cpuManagerPolicy none/static 无 支持初始化时配置,不支持后续修改 CCE Standard/CCE Turbo 集群CPU管理策略。取值为none(或空值)或static,默认为none(或空值)。 none(或空值):关闭工作负载实例独占CPU核的功能,优点是CPU共享池的可分配核数较多 static:支持给节点上的工作负载实例配置CPU独占,适用于对CPU缓存和调度延迟敏感的工作负载,Turbo集群下仅对普通容器节点有效,安全容器节点无效。
  • 集群资源标签 为集群添加TMS资源标签,便于按照相应维度对集群资源和其他云服务资源进行统一检索和管理 参数名 取值范围 默认值 是否允许修改 作用范围 clusterTags 标签以key=value的形式赋值,其中key:最大长度36字符,由小写字母、数字、中划线(-)、下划线(_)组成 value:最大长度43字符,由小写字母、数字、中划线(-)、下划线(_)组成 无 允许 CCE Standard/CCE Turbo 每个集群最多支持添加20个标签 配置建议: 用户可以按照管理需求,将资源划分的维度以标签形式进行抽象,常见的划分维度包括业务领域、部门、环境归属(生产环境、测试环境)等
  • 容器网络固定IP池掩码位数 容器网络固定IP池掩码位数,仅vpc-router网络支持。 该参数决定节点可分配容器IP数量,与创建节点时设置的maxPods参数共同决定节点最多可以创建多少个Pod 参数名 取值范围 默认值 是否允许修改 作用范围 alpha.cce/fixPoolMask 24 ~ 28 无 允许 CCE Standard/CCE Turbo 容器网络固定IP池掩码位数,仅vpc-router网络支持。 该参数决定节点可分配容器IP数量,与创建节点时设置的maxPods参数共同决定节点最多可以创建多少个Pod
  • 集群规模 集群支持管理的最大节点数量,请根据业务场景选择。创建完成后支持扩容,不支持缩容。 参数名 取值范围 默认值 是否允许修改 作用范围 flavor cce.s1.small: 小规模单控制节点CCE集群(最大50节点) cce.s1.medium: 中等规模单控制节点CCE集群(最大200节点) cce.s2.small: 小规模多控制节点CCE集群(最大50节点) cce.s2.medium: 中等规模多控制节点CCE集群(最大200节点) cce.s2.large: 大规模多控制节点CCE集群(最大1000节点) cce.s2.xlarge: 超大规模多控制节点CCE集群(最大2000节点) cce.s1.small 不支持直接修改,仅支持通过集群规格变更修改 CCE Standard/CCE Turbo s1:单控制节点CCE集群。 s2:多控制节点CCE集群。 最大节点数:当前集群支持管理的最大节点规模,请根据业务需求选择。 单控制节点集群:普通集群是单控制节点,控制节点故障后,集群将不可用,但已运行工作负载不受影响。 多控制节点集群:即高可用集群,当某个控制节点故障时,集群仍然可用。 配置建议: 除用于试验性用途用户可以视情况选择单控制节点规格外,凡是对可靠性有要求的应用场景请务必选择多控制节点集群规格。 请结合业务最大预期规模选择合适的集群规格,同时预留一定的buffer(如业务规模评估在50节点规模左右,那么请选择50上一档位的规格,即200节点规格),集群使用过程中建议保持对集群管理面资源占用情况的监控跟踪,观察到资源存在压力时及时调整集群规格进行扩容,避免集群过载风险
  • 集群控制节点指定可用区 集群控制节点所处的可用区,以下两个参数不可同时指定。 参数名 取值范围 默认值 是否允许修改 作用范围 masters availabilityZone列表,用于指定master节点的可用区,该列表长度与集群的master节点数有关。例如3个master节点的集群示例如下: [ {"availabilityZone": "AZ1"}, {"availabilityZone": "AZ2"}, {"availabilityZone": "AZ3"} ] 无 支持初始化时配置,不支持后续修改 CCE Standard/CCE Turbo clusterAZ multi_az:随机多可用区,仅使用高可用集群时才可以配置多可用区。 指定AZ名称:例如“cn-east-3a”,表示将全部控制节点创建在该可用区下。 无 允许 CCE Standard/CCE Turbo
  • 集群平台版本号 CCE集群平台版本号,表示集群版本(version)下的内部版本。用于跟踪某一集群版本内的迭代,集群版本内唯一,跨集群版本重新计数。不支持用户指定,集群创建时自动选择对应集群版本的最新平台版本。 参数名 取值范围 默认值 是否允许修改 作用范围 platformVersion platformVersion格式为:cce.X.Y X: 表示内部特性版本。集群版本中特性或者补丁修复,或者OS支持等变更场景。其值从1开始单调递增。 Y: 表示内部特性版本的补丁版本。仅用于特性版本上线后的软件包更新,不涉及其他修改。其值从0开始单调递增。 无 允许 CCE Standard/CCE Turbo CCE集群平台版本号,表示集群版本(version)下的内部版本。用于跟踪某一集群版本内的迭代,集群版本内唯一,跨集群版本重新计数。不支持用户指定,集群创建时自动选择对应集群版本的最新平台版本。 配置建议: 推荐使用最新的集群小版本
  • 集群显示名称 集群显示名称 参数名 取值范围 默认值 是否允许修改 作用范围 alias 以小写字母开头,由小写字母、数字、中划线(-)组成,长度范围4-128位,且不能以中划线(-)结尾 集群显示名不指定时,默认继承集群名称的取值 更新集群时支持修改 CCE Standard/CCE Turbo 集群显示名,用于在 CCE 界面显示,该名称创建后可修改 配置建议: 按照集群资源归属(如一般集群还是GPU集群)、应用场景(测试集群还是生产集群)等维度命名,方便区分和管理
  • 集群版本 集群版本,与Kubernetes社区基线版本保持一致,建议选择最新版本。 参数名 取值范围 默认值 是否允许修改 作用范围 version 在维版本 最新的商用版本 仅支持创建集群时自定义版本,集群创建完成后不支持修改,此时可以通过升级集群变更版本号 CCE Standard/CCE Turbo 若不配置,默认创建最新版本的集群。 若指定集群基线版本但是不指定具体r版本,则系统默认选择对应集群版本的最新r版本。建议不指定具体r版本由系统选择最新版本。 Turbo集群支持1.19及以上版本商用。 配置建议: 推荐使用最新的商用版本。
  • 集群类别 集群类别 参数名 取值范围 默认值 是否允许修改 作用范围 category CCE:表示CCE Standard集群 Turbo:表示CCE Turbo集群 无 支持初始化时配置,不支持后续修改 CCE Standard/CCE Turbo CCE:CCE Standard集群。CCE Standard集群支持虚拟机与裸金属服务器混合、GPU、NPU等异构节点的混合部署,基于高性能网络模型提供全方位、多场景、安全稳定的容器运行环境。 Turbo: CCE Turbo集群。 全面基于云原生基础设施构建的云原生2.0的容器引擎服务,具备软硬协同、网络无损、安全可靠、调度智能的优势,为用户提供一站式、高性价比的全新容器服务体验。
  • 计费模式 包年包月是预付费模式,按订单的购买周期计费,适用于可预估资源使用周期的场景,价格比按需计费模式更优惠。 按需计费是后付费模式,按资源的实际使用时长计费,可以随时开通/删除资源。 参数名 取值范围 默认值 是否允许修改 作用范围 billingMode 0: 按需计费 1: 包周期 0 按需计费的集群支持变更为包周期集群,包周期集群无法变更为按需计费模式。 CCE Standard/CCE Turbo 集群转包时支持勾选归属集群的计算节点一并转包;同时,发起转包后需要完成订单付费操作才能生效,请按照前端引导进行操作 配置建议: 长期稳定使用的集群可以考虑选择包周期模式,有助于降低成本
  • 自定义集群API Server证书SAN 集群的API Server服务端证书中的自定义SAN(Subject Alternative Name)字段,遵从SSL标准X509定义的格式规范。 参数名 取值范围 默认值 是否允许修改 作用范围 customSan 不允许出现同名重复。 格式符合IP和域名格式。 无 允许 CCE Standard/CCE Turbo SAN通常在TLS握手阶段被用于客户端校验服务端的合法性:服务端证书是否被客户端信任的CA所签发,且证书中的SAN是否与客户端实际访问的IP地址或DNS域名匹配。 当客户端无法直接访问集群内网私有IP地址或者公网弹性IP地址时,您可以将客户端可直接访问的IP地址或者DNS域名签入集群服务端证书,以支持客户端开启双向认证,提高安全性。典型场景例如DNAT访问、域名访问等特殊场景。 配置建议: 域名访问场景的典型使用方式如下: 客户端配置Host域名指定DNS域名地址,或者客户端主机配置/etc/hosts,添加响应域名映射。 云上内网使用,云解析服务DNS支持配置集群弹性IP与自定义域名的映射关系。后续更新弹性IP可以继续使用双向认证+自定义域名访问集群,无需重新下载kubeconfig.json配置文件。 自建DNS服务器,自行添加A记录。
  • ELB企业项目ID 服务对接的负载均衡实例所属的企业项目ID 参数名 取值范围 默认值 是否允许修改 作用范围 k8s annotation: kubernetes.io/elb.enterpriseID 无 无 允许 CCE Standard/CCE Turbo 仅自动创建ELB的场景:选填。 v1.15及以上版本的集群支持此字段,v1.15以下版本默认创建到default项目下。 为ELB企业项目ID,选择后可以直接创建在具体的ELB企业项目下。 该字段不传(或传为字符串'0'),则将资源绑定给默认企业项目。
  • 负载均衡器IP 服务对接的负载均衡器实例EIP地址 参数名 取值范围 默认值 是否允许修改 作用范围 k8s annotation: kubernetes.io/elb.ip 无 无 允许 CCE Standard/CCE Turbo 指定使用已有的ELB实例IP,若已填写kubernetes.io/elb.id,则以id为准;若只填写了此字段,elb.id会由系统自动填充 配置建议: 建议配置正确的elb的IP信息
  • 负载均衡器类型 服务对接的负载均衡器类型,支持对接共享型ELB实例和独享性ELB实例,并且支持自动创建ELB实例 参数名 取值范围 默认值 是否允许修改 作用范围 k8s annotation: kubernetes.io/elb.class 支持elbv3局点:performance 不支持elbv3局点:union performance 允许 CCE Standard/CCE Turbo 请根据不同的应用场景和功能需求选择合适的负载均衡器类型。 取值如下: union:共享型负载均衡。 performance:独享型负载均衡,仅支持1.17及以上集群(推荐) 配置建议: 推荐配置为performance,独享性ELB实例支持原地址保持,直通容器等高级特性 共享型ELB不支持源地址保持,在CCE Turbo场景下不支持直通网络,只支持对接nodeport类型服务
  • 终止状态pod触发回收的数量阈值 集群中可保留的终止状态Pod数量,超出该数量终止状态Pod将会被删除回收 参数名 取值范围 默认值 是否允许修改 作用范围 terminated-pod-gc-threshold 10-12500 集群版本为v1.21.11-r40、v1.23.8-r0、v1.25.6-r0、v1.27.3-r0及以上时,取值范围调整为0-100000 说明: 该参数设置为0时,表示保留所有终止状态的Pod。 1000 允许 CCE Standard/CCE Turbo 配置建议: 1000 配置过大集群可能存在大量终止状态的Pod,影响相关List查询请求性能,产生集群过载风险
  • 计费项 使用UCS服务时,会产生UCS服务管理费用,具体内容如表1所示。 表1 UCS计费项 计费项 说明 适用的计费模式 计费公式 UCS集群管理服务 UCS集群管理服务费用由集群类型(包括华为云集群、本地集群、附着集群、多云集群和伙伴云集群)、集群vCPU容量和购买时长决定。 UCS服务管理费用不包括任何资源(例如计算节点、网络服务等)相关的费用。 包年/包月、按需计费 集群规模 *规格单价 *购买时长 具体定价请参见UCS价格详情。
  • 计费模式 UCS提供包年/包月和按需计费两种计费模式,以满足不同场景下的用户需求。 包年/包月:一种预付费模式,即先付费再使用,按照订单的购买周期进行结算。购买周期越长,享受的折扣越大。一般适用于接入集群规模长期稳定的成熟业务。 按需计费:一种后付费模式,即先使用再付费,按照UCS实际使用时长计费,按小时结算。按需计费模式允许您根据实际业务需求灵活地调整服务使用,无需提前购买付费,灵活性高。一般适用于接入集群规模较小的业务场景。
  • 如何获取访问密钥AK/SK? 在注册多云集群时,您需要获取访问密钥AK/SK(Access Key ID/Secret Access Key),以便在AWS账户中创建与多云集群相关的资源(如EC2实例、安全组、弹性IP和负载均衡器等)。本文将为您提供获取访问密钥AK/SK的方法。 该密钥将被加密妥善保存,您无需担心信息泄露的风险。 使用AWS 账户 ID 或账户别名、您的 IAM 用户名和密码登录到 IAM 控制台。 要获取 AWS 账户 ID,请联系您 AWS 账户的管理员。 在右上角的导航栏中,选择您的用户名,然后选择“安全凭据”。 图1 选择“安全凭据” 在“访问密钥”区域中,单击“创建访问密钥”。如果您已经有两个访问密钥,则此按钮将被停用,您必须先删除一个访问密钥,然后才能创建新的访问密钥。您也可以使用已有的密钥来创建UCS on AWS集群。 图2 创建访问密钥 在“检索访问密钥”页面上,单击“显示”获取用户的秘密访问密钥的值,或单击“下载 .csv 文件”按钮。这是您保存秘密访问密钥的唯一机会。将秘密访问密钥保存在安全位置后,请单击“完成”。 图3 获取秘密访问密钥 在您使用UCS on AWS期间,在对应的集群被删除之前,请不要轮转、停用或者删除该密钥,否则会影响集群的后续更新和删除操作。 父主题: 多云集群
  • 解决方案 管理员需要为用户授予UCS控制台各功能的权限,通过IAM系统策略(包括UCS FullAccess、UCS CommonOperations、UCS CIAOperations和UCS ReadOnlyAccess)来界定用户的权限范围。 表1 UCS系统权限 系统角色/策略名称 描述 类别 UCS FullAccess UCS服务管理员权限,拥有该权限的用户拥有服务的所有权限(包含制定权限策略、安全策略等)。 系统策略 UCS CommonOperations UCS服务基本操作权限,拥有该权限的用户可以执行创建工作负载、流量分发等操作。 系统策略 UCS CIAOperations UCS服务容器智能分析管理员权限。 系统策略 UCS ReadOnlyAccess UCS服务只读权限(除容器智能分析只读权限)。 系统策略 另外,华为云各服务之间存在业务交互关系,UCS也依赖其他云服务实现一些功能(如镜像仓库、域名解析),因此,上述几种系统策略经常和其他云服务的角色或策略结合使用,以达到精细化授权的目的。管理员在为IAM用户授权时,应该遵循权限最小化的安全实践原则,表2列举了UCS各功能管理员、操作、只读权限所需要的最小权限。 授予用户IAM系统策略的详细操作请参见UCS服务资源权限;授予用户UCS RBAC权限的详细操作请参见集群中Kubernetes资源权限。 表2 UCS功能所需的最小权限 功能 权限类型 权限范围 最小权限 容器舰队 管理员权限 创建、删除舰队 注册华为云集群(CCE集群、CCE Turbo集群)、本地集群或附着集群 注销集群 将集群加入、移出舰队 为集群或舰队关联权限 开通集群联邦、联邦管理相关操作(如创建联邦工作负载、创建域名访问等) UCS FullAccess 只读权限 查询集群、舰队的列表或详情 UCS ReadOnlyAccess 华为云集群 管理员权限 对华为云集群及集群下所有Kubernetes资源对象(包含节点、工作负载、任务、服务等)的读写权限。 UCS FullAccess + CCE Administrator 操作权限 对华为云集群及集群下大多数Kubernetes资源对象的读写权限,对命名空间、资源配额等Kubernetes资源对象的只读权限。 UCS CommonOperations + CCE Administrator 只读权限 对华为云集群及集群下所有Kubernetes资源对象(包含节点、工作负载、任务、服务等)的只读权限。 UCS ReadOnlyAccess + CCE Administrator 本地/附着/多云/伙伴云集群 管理员权限 本地/附着/多云/伙伴云集群及集群下所有Kubernetes资源对象(包含节点、工作负载、任务、服务等)的读写权限。 UCS FullAccess 操作权限 本地/附着/多云/伙伴云集群及集群下大多数Kubernetes资源对象的读写权限,对命名空间、资源配额等Kubernetes资源对象的只读权限。 UCS CommonOperations + UCS RBAC权限(需要包含namespaces资源对象的list权限) 只读权限 本地/附着/多云/伙伴云集群及集群下所有Kubernetes资源对象(包含节点、工作负载、任务、服务等)的只读权限。 UCS ReadOnlyAccess + UCS RBAC权限(需要包含namespaces资源对象的list权限) 镜像仓库 管理员权限 容器镜像服务的所有权限,包括创建组织、上传镜像、查看镜像列表或详情、下载镜像等操作。 SWR Administrator 权限管理 管理员权限 创建、删除权限 查看权限列表或详情 说明: 创建权限需要同时授予子用户IAM ReadOnlyAccess权限(IAM服务的只读权限),用于获取IAM用户列表。 UCS FullAccess + IAM ReadOnlyAccess 只读权限 查看权限列表或详情 UCS ReadOnlyAccess + IAM ReadOnlyAccess 策略中心 管理员权限 启用策略中心 创建、停用策略实例 查看策略列表 查看策略实施详情 UCS FullAccess 只读权限 对于已启用策略中心的舰队和集群,拥有该权限的用户可以查看策略列表和查看策略实施详情。 UCS CommonOperations 或 UCS ReadOnlyAccess 服务网格 管理员权限 应用服务网格的所有权限,包括创建网格、添加集群、sidecar注入、查看网格列表或详情、卸载网格等。 CCE Administrator 流量分发 管理员权限 创建流量策略、暂停调度策略、删除调度策略等操作。 (推荐)UCS CommonOperations + DNS Administrator 或 UCS FullAccess + DNS Administrator 只读权限 查看流量策略列表或详情 UCS ReadOnlyAccess + DNS Administrator 容器智能分析 管理员权限 接入、取消接入集群 查看基础设施、应用负载等多维度监控数据 UCS CIAOperations 云原生服务中心 管理员权限 云原生服务中心的所有权限,包括订阅服务、查看服务列表或详情、创建服务实例、查看实例列表或详情、删除服务实例、退订服务等操作。 UCS FullAccess 只读权限 云原生服务中心的只读权限,包括查看服务列表或详情、查看实例列表或详情等操作。 UCS ReadOnlyAccess
  • 现象一:提示clusterrole、clusterrolebinding已存在 问题原因:一个集群不能同时加入两个或两个以上的联邦。有这个报错提示,说明当前集群已经添加到联邦中,或者曾经加入过联邦但是存在资源残留。 解决方案:手工清理残留资源。 操作步骤: 获取报错集群的kubeconfig配置文件,并准备kubectl及运行节点,将kubeconfig文件放在运行节点/tmp目录。 执行如下命令,清理残留资源。 alias kubectl='kubectl --kubeconfig=/tmp/kubeconfig' kubectl delete clusterrolebinding `kubectl get clusterrolebinding |grep karmada-controller-manager | awk '{print $1}'` kubectl delete clusterrole `kubectl get clusterrole |grep karmada-controller-manager | awk '{print $1}'` kubectl delete namespace `kubectl get namespace |egrep 'karmada-[0-9a-f]{8}-([0-9a-f]{4}-){3}[0-9a-f]{12}' |awk '{print $1}'`
  • 现象三:CCE集群已绑定EIP,集群加入联邦仍失败,报错:network in cluster is stable, please retry it later 问题原因:联邦需要访问CCE集群的5443端口,但是CCE集群的控制面安全组入方向规则不允许124.70.21.61(源地址)访问CCE集群的5443端口。 解决方案:修改CCE控制面入方向安全组,允许124.70.21.61(源地址)访问CCE集群的5443端口。
  • 操作步骤 使用管理员账号登录IAM控制台。 在左侧导航栏选择“委托”。 选择“ucs_admin_trust”委托,单击操作列的“删除”,在弹出的确认窗口中单击“是”。 在左侧导航栏选择“委托”。 ucs_admin_trust委托已经删除的情况下不需要执行本步骤。其他误修改的操作(例如删除了其中的Tenant Administrator权限)均需要删除当前委托,以便创建新的委托。 进入UCS控制台,在弹出的“授权说明”对话框,单击“确认”,UCS会重新创建ucs_admin_trust委托,恢复业务。
  • 如何使用Istio API配置网关路由规则 ASM支持使用Istio API(Gateway, VirtualService, DestinationRule)配置网关、路由规则策略。本文介绍如何通过YAML创建资源对象启用该能力。 使用以下内容,保存为deployment.yaml文件,创建istio-ingressgateway deployment工作负载。 kind: Deployment apiVersion: apps/v1 metadata: name: istio-ingressgateway namespace: default # 命名空间名称,按需替换 spec: replicas: 1 # 工作负载实例数,按需替换 selector: matchLabels: app: istio-ingressgateway istio: ingressgateway template: metadata: labels: app: istio-ingressgateway istio: ingressgateway istio.io/rev: default service.istio.io/canonical-name: istio-ingressgateway service.istio.io/canonical-revision: latest sidecar.istio.io/inject: 'false' annotations: sidecar.istio.io/inject: 'false' spec: volumes: - name: workload-socket emptyDir: {} - name: credential-socket emptyDir: {} - name: workload-certs emptyDir: {} - name: istiod-ca-cert configMap: name: istio-ca-root-cert defaultMode: 384 - name: podinfo downwardAPI: items: - path: labels fieldRef: apiVersion: v1 fieldPath: metadata.labels - path: annotations fieldRef: apiVersion: v1 fieldPath: metadata.annotations defaultMode: 416 - name: istio-envoy emptyDir: {} - name: istio-data emptyDir: {} - name: istio-token secret: defaultMode: 420 optional: false secretName: cp-access-default - name: config-volume configMap: name: istio defaultMode: 416 optional: true - name: ingressgateway-certs secret: secretName: istio-ingressgateway-certs defaultMode: 384 optional: true - name: ingressgateway-ca-certs secret: secretName: istio-ingressgateway-ca-certs defaultMode: 384 optional: true containers: - name: istio-proxy image: swr.cn-north-7.myhuaweicloud.com/asm/proxyv2:1.15.5-r1-20230719152011 # proxyv2镜像地址替换 args: - proxy - router - '--domain' - $(POD_NAMESPACE).svc.cluster.local - '--proxyLogLevel=warning' - '--proxyComponentLogLevel=misc:error' - '--log_output_level=default:info' ports: - containerPort: 15021 protocol: TCP - containerPort: 8080 protocol: TCP - containerPort: 8443 protocol: TCP - name: http-envoy-prom containerPort: 15090 protocol: TCP env: - name: JWT_POLICY value: third-party-jwt - name: PILOT_CERT_PROVIDER value: istiod - name: CA_ADDR value: asm-mesh.kube-system.svc.cluster.local:15012 - name: NODE_NAME valueFrom: fieldRef: apiVersion: v1 fieldPath: spec.nodeName - name: POD_NAME valueFrom: fieldRef: apiVersion: v1 fieldPath: metadata.name - name: POD_NAMESPACE valueFrom: fieldRef: apiVersion: v1 fieldPath: metadata.namespace - name: INSTANCE_IP valueFrom: fieldRef: apiVersion: v1 fieldPath: status.podIP - name: PROXY_CONFIG value: | {"discoveryAddress":"asm-mesh.kube-system.svc.cluster.local:15012"} - name: HOST_IP valueFrom: fieldRef: apiVersion: v1 fieldPath: status.hostIP - name: SERVICE_ACCOUNT valueFrom: fieldRef: apiVersion: v1 fieldPath: spec.serviceAccountName - name: ISTIO_META_WORKLOAD_NAME value: istio-ingressgateway - name: ISTIO_META_OWNER value: kubernetes://apis/apps/v1/namespaces/default/deployments/istio-ingressgateway # default替换为对应的命名空间名称 - name: ISTIO_META_MESH_ID value: whtest # 替换为实际的网格名称 - name: TRUST_DOMAIN value: cluster.local - name: ISTIO_META_UNPRIVILEGED_POD value: 'true' - name: ISTIO_ADDITIONAL_METADATA_EXCHANGE_KEYS value: ASM_MESH_ID,ASM_CLUSTER_ID - name: ISTIO_META_ASM_CLUSTER_ID value: 92311000-df43-11ed-b108-0255ac1001bb # 替换为实际的集群ID - name: ISTIO_META_ASM_MESH_ID value: a8653674-3fd2-11ee-9e48-0255ac100695 # 替换为实际的网格ID - name: ISTIO_META_CLUSTER_ID value: mesh-test # 替换为实际的集群名称 resources: limits: cpu: '2' memory: 1Gi requests: cpu: 100m memory: 128Mi volumeMounts: - name: workload-socket mountPath: /var/run/secrets/workload-spiffe-uds - name: credential-socket mountPath: /var/run/secrets/credential-uds - name: workload-certs mountPath: /var/run/secrets/workload-spiffe-credentials - name: istio-envoy mountPath: /etc/istio/proxy - name: config-volume mountPath: /etc/istio/config - name: istiod-ca-cert mountPath: /var/run/secrets/istio - name: istio-token readOnly: true mountPath: /var/run/secrets/tokens - name: istio-data mountPath: /var/lib/istio/data - name: podinfo mountPath: /etc/istio/pod - name: ingressgateway-certs readOnly: true mountPath: /etc/istio/ingressgateway-certs - name: ingressgateway-ca-certs readOnly: true mountPath: /etc/istio/ingressgateway-ca-certs readinessProbe: httpGet: path: /healthz/ready port: 15021 scheme: HTTP initialDelaySeconds: 1 timeoutSeconds: 1 periodSeconds: 2 successThreshold: 1 failureThreshold: 30 terminationMessagePath: /dev/termination-log terminationMessagePolicy: File imagePullPolicy: IfNotPresent securityContext: capabilities: drop: - ALL privileged: false readOnlyRootFilesystem: true allowPrivilegeEscalation: false restartPolicy: Always terminationGracePeriodSeconds: 30 dnsPolicy: ClusterFirst securityContext: runAsUser: 1337 runAsGroup: 1337 runAsNonRoot: true fsGroup: 1337 seccompProfile: type: RuntimeDefault affinity: nodeAffinity: preferredDuringSchedulingIgnoredDuringExecution: - weight: 1 preference: matchExpressions: - key: istio operator: In values: - master podAntiAffinity: requiredDuringSchedulingIgnoredDuringExecution: - labelSelector: matchExpressions: - key: app operator: In values: - istio-ingressgateway topologyKey: kubernetes.io/hostname schedulerName: default-scheduler tolerations: - key: istio operator: Exists effect: NoExecute strategy: type: RollingUpdate rollingUpdate: maxUnavailable: 1 maxSurge: 10% revisionHistoryLimit: 10 progressDeadlineSeconds: 600 执行以下命令,在当前集群中创建网关工作负载。 kubectl create -f deployment.yaml 使用以下内容,保存为svc.yaml文件,创建istio-ingressgateway loadbalancer service。 apiVersion: v1 kind: Service metadata: name: gw-svc1 namespace: default # 命名空间名称,按需替换 annotations: kubernetes.io/elb.class: union # elb实例类型,union共享型,performance独享型 kubernetes.io/elb.id: 73febb1c-b191-4fd9-832e-138b2657d3b1 # elb实例ID,可通过在cce服务发现创建负载均衡类型服务页查看可选择的elb实例 spec: ports: - name: http-gw-svc1-port1 # 端口名称,注意以服务协议打头 protocol: TCP port: 707 # 对外访问端口 targetPort: 1026 # 容器端口,必须大于1024,且不能与网格内其他网关服务使用的targetPort端口重复 selector: app: istio-ingressgateway istio: ingressgateway type: LoadBalancer sessionAffinity: None externalTrafficPolicy: Cluster ipFamilies: - IPv4 ipFamilyPolicy: SingleStack allocateLoadBalancerNodePorts: true internalTrafficPolicy: Cluster 执行以下命令,在当前集群中创建网关工作负载对应的loadbalancer service。 kubectl create -f svc.yaml 以上步骤1、2使用的kubectl连接的是当前集群。 使用以下内容,保存为gw.yaml文件,创建Istio Gateway配置。 apiVersion: networking.istio.io/v1beta1 kind: Gateway metadata: name: my-gateway namespace: default # 命名空间名称,按需替换 spec: selector: istio: ingressgateway servers: - hosts: - 100.85.115.86 # 使用的elb实例公网IP port: name: http-48382bd9 number: 1026 # 同上lb svc的targetPort protocol: http 执行以下命令,在网格控制面中创建网关Gateway资源对象。 kubectl create -f gw.yaml 使用以下内容,保存为vs.yaml文件,创建Istio VirtualService配置。 apiVersion: networking.istio.io/v1beta1 kind: VirtualService metadata: name: nginx namespace: default # 命名空间名称,按需替换 spec: hosts: - 100.95.150.38 # 使用的elb实例公网IP gateways: - default/my-gateway # 使用步骤3的gw的命名空间、名称 http: - match: - headers: cookie: exact: "user=dev-123" route: - destination: port: number: 1234 host: nginx.default.svc.cluster.local 执行以下命令,在网格控制面中创建VirtualService资源对象。 kubectl create -f vs.yaml 以上步骤3、4使用的kubectl连接的是网格控制面,如何配置网格kubectl,请参考使用kubectl连接网格控制面。 结果验证。执行以下命令,访问nginx服务成功。 父主题: 服务网格
  • 可能原因 当前,UCS集群联邦API Server版本为v1.25,因此HPA对象有autoscaling/v2和autoscaling/v1两个版本。然而,不论您创建的HPA版本为autoscaling/v2还是autoscaling/v1,联邦均会以autoscaling/v2版本进行分发。版本低于v1.23的集群不支持autoscaling/v2版本的HPA对象,因此HPA无法分发到该集群。查看HPA对应的resourceBinding,可以在其conditions中得到如下报错:cluster(s) did not have the API resource。
  • 解决方案 您可以在分发HPA前,将成员集群版本升级至v1.23及以上的版本,该版本默认支持autoscaling/v2的HPA。 若您仍想分发autoscaling/v1版本的HPA到成员集群,您的PropagationPolicy对象中的resourceSelectors[i].apiVersion字段应配置为autoscaling/v2,如示例YAML所示。分发成功后,您可以在成员集群中查询到autoscaling/v1版本的HPA。 apiVersion: autoscaling/v1 kind: HorizontalPodAutoscaler metadata: name: test-hpa spec: maxReplicas: 5 minReplicas: 1 scaleTargetRef: apiVersion: apps/v1 kind: Deployment name: nginx targetCPUUtilizationPercentage: 10 --- apiVersion: policy.karmada.io/v1alpha1 kind: PropagationPolicy metadata: name: test-hpa-pp spec: placement: clusterAffinity: clusterNames: - member1 resourceSelectors: - apiVersion: autoscaling/v2 kind: HorizontalPodAutoscaler name: test-hpa namespace: default
  • 背景信息 线下购买云服务License后,需要在华为乾坤激活线下订单。本服务配套的天关或防火墙型号,如表1所示。 表1 设备型号 设备型号 激活方式 USG6000E-C天关 请参见操作步骤。 USG6000F-C天关 USG6000E防火墙 USG6000F防火墙 USG12000防火墙 当前可开通边界防护与响应服务,并指定租户可以使用的版本(边界防护标准版、边界防护专业版)。 边界防护标准版、边界防护专业版的功能差异如表2所示。 表2 边界防护各版本差异 关键能力 能力描述 标准版 标准版+自动阻断 专业版 入侵检测防御 基于已知攻击防护签名拦截来自外网的攻击,阻拦恶意软件(如病毒、木马)的传输行为,发现内网问题主机并切断问题主机外联行为,有效保护用户业务的安全性和稳定性。 √ √ √ 事件自动分析 利用智能分析能力对设备检测到的安全事件进行分析确认,保障攻击拦截以及安全告警的准确性,及时优化攻击检测规则,提升现网防护效果。 √ √ √ 事件紧急通知 基于安全防护事件提取紧急通知,同时通过短信、邮件多种方式通知用户。 √ √ √ 黑白名单功能 用户可基于Portal快速人工完成黑白名单设置,快速阻断威胁。 √ √ √ 定期安全报告 基于安全防护事件,定期生成周报、月报,并通过邮件发送至用户邮箱。 √ √ √ 基础安全大屏 通过对安全事件的综合分析,实时呈现TOP威胁类型、失陷类型、最新威胁事件等信息,帮助用户快速感知综合安全态势。 √ √ √ 威胁自动阻断 基于安全事件分析结果,对外部高危攻击源进行黑名单自动下发,直接阻断其后续的攻击行为。 基于DNS日志实现DGA、挖矿、恶意软件、远控、勒索等高级威胁检测,识别恶意域名访问行为,并对恶意域名实现自动化封禁。 × √ √ 专业态势大屏 支持差异化大屏组件功能,用户可使用大屏自定义能力快速定制专业化安全态势大屏。 × × √ 互联网暴露面风险监测 通过对租户网络出口网关设备的IP的监测,帮助租户统计网关设备暴露在公网中的IP,并识别其中存在暴露风险的端口或服务。 × × √
共100000条