华为云用户手册

  • 国际站客户购买华为云中国大陆Region云服务接受哪些结算货币? 国际站产品支持以美金 定价 ,根据下方的表格,不同的签约主体结算币种可选范围不一样。 表1 签约主体及结算货币说明 签约主体名称 结算货币 SPARKOO TECHNO LOG IES SOUTH AFRICA (PTY) LTD ZAR 南非兰特 Sparkoo Technologies (Thailand) Co., Ltd. THB 泰铢 SPARKOO TECNOLOGIAS DO BRASIL LTDA BRL 巴西雷亚尔 SPARKOO TECHNOLOGIES PERU S.A.C. PEN 秘鲁索尔 Sparkoo Technologies Chile SpA. CLP 智利比索 Sparkoo Technologies Arabia Co., Ltd. SAR 沙特里亚尔 Sparkoo Technologies Singapore Pte. Ltd. EUR 欧元 SGD 新加坡元 CNY 人民币 HKD 港元 JPY 日元 Sparkoo Technologies Hong Kong Co., Limited HKD 港元 CNY 人民币 EUR 欧元 JPY 日元 SGD 新加坡元 父主题: 国际站客户购买中国大陆Region云服务
  • 真实性核验工作新要求需要做什么? 网站负责人在进行真实性核验时,除了按照系统提示完成真实性核验,还需执行如下操作: 签署《ICP备案信息真实性责任告知书》及《ICP备案信息真实性承诺书》,并上传至备案系统。 录制网站负责人诵读《ICP备案信息真实性承诺书》的视频,并上传至备案系统。 如果主体负责人、网站负责人不是单位法人代表,还需提供《主体负责人法人授权书》、《网站负责人法人授权书》,并上传至备案系统。 父主题: 江苏省ICP备案真实性核验工作新要求
  • 服务异常修复 诊断异常的服务,需要先手动修复异常状态的手动处理项,再一键修复可自动处理项。 在诊断状态为异常的服务下单击“处理”,若手动处理项有异常,根据修复指导进行手动修复。 图2 手动处理项 手动修复异常状态的手动处理项后,单击“下一步”进入自动修复项页面,单击“一键修复”,自动处理异常状态的检查项。 图3 自动处理项 如果自动处理无法修复状态异常的检查项,请根据修复指导进行手动修复。 已配置网关或创建灰度发布的服务可能因为Service的端口名称被修改而出现异常,此时不支持进行一键修复。 如果服务未在服务列表中展示,请检查对应的工作负载是否存在。
  • 操作步骤 登录应用服务网格控制台,单击服务网格的名称,进入网格详情页面。 在左侧导航栏选择“网关管理”,在需要添加路由的网关所在行,单击操作列的“添加路由”,配置如下参数。 URL匹配规则 前缀匹配:例如映射URL为/healthz,只要符合此前缀的URL均可访问。例如/healthz/v1、/healthz/v2。 完全匹配:只有完全匹配上才能生效。例如映射URL为/healthz,则必须为此URL才能访问。 支持通过YAML方式配置正则匹配规则,修改VirtualService配置文件即可: ... http: - delegate: name: nginx-80 namespace: default match: - uri: regex: /do[a-z]*/ ... 如上所示,“regex”表示按正则表达式方式匹配URL,注意URL必须以“/”开头。 URL 服务支持的映射URL,例如/example。 同一网关下的URL配置不能相同。 命名空间 服务网关所在的命名空间。 目标服务 添加网关的服务,直接在下拉框中选择。目标服务会根据对应的网关协议进行过滤,过滤规则请参见添加路由时,为什么选不到对应的服务?。 配置诊断失败的服务无法选择,需要先根据手动修复项或自动修复项进行修复。 访问端口 仅显示匹配对外协议的端口。 重写 (对外协议为HTTP/HTTPS时可配置) 重写HTTP/HTTPS的URI和Host/Authority头,于转发前执行。默认关闭。开启后,需要配置如下参数: URI:使用此值重写URI的路径(或前缀),如果原始URI是基于前缀匹配,那么将替换相应匹配的前缀。 Host/Authority头:使用此值重写HTTP/HTTPS的Host/Authority头。 域名 单独配置路由 为网关中某个域名单独配置路由规则。 图1 添加路由 配置完成后,单击“确定”。
  • 操作步骤 登录应用服务网格控制台,单击服务网格的名称,进入网格详情页面。 在左侧导航栏选择“服务管理”,选择需要更改流量策略的服务,单击操作列的“流量治理”,在右侧页面进行流量策略更改。 接下来,以Bookinfo应用的reviews服务为例,结合 APM 应用性能管理 )的监控拓扑图来描述负载均衡算法更改前后的配置效果。 负载均衡算法为“轮询调度”时,不断访问productpage页面,观察流量如何分发。 进入“流量监控”页面,鼠标右键单击reviews服务,选择“展开”选项,这时可以看到所有实例的被分发情况。 从下图可以看出,请求依次分发给reviews的5个实例。这与负载均衡“轮询调度”算法相吻合。 在“负载均衡”页签中,单击“立即配置”,将负载均衡算法修改为“随机调度”。 图1 修改负载均衡算法 不断访问productpage页面,观察流量分发情况。 可以发现流量分发没有什么固定规律,各个实例的访问次数参差不齐,说明随机算法已经生效。
  • 创建JWT认证 创建JWK。 访问JWT工具网站,选择“Algorithm”为“RS512”,获取公钥(PUBLIC KEY)。 图1 生成公钥 在JWK to PEM Convertor online工具中选中“PEM-to-JWK (RSA Only)”,输入上一步获取的公钥,单击“submit”,将公钥转换为JWK。 图2 将公钥转换为JWK {"kty":"RSA","e":"AQAB","kid":"a78641b9-d81e-4241-b35a-71726c3fa053","n":"u1SU1LfVLPHCozMxH2Mo4lgOEePzNm0tRgeLezV6ffAt0gunVTLw7onLRnrq0_IzW7yWR7QkrmBL7jTKEn5u-qKhbwKfBstIs-bMY2Zkp18gnTxKLxoS2tFczGkPLPgizskuemMghRniWaoLcyehkd3qqGElvW_VDL5AaWTg0nLVkjRo9z-40RQzuVaE8AkAFmxZzow3x-VJYKdjykkJ0iT9w CS 0DRTXu269V264Vf_3jvredZiKRkgwlL9xNAwxXFg0x_XFw005UWVRIkdgcKWTjpBP2dPwVZ4WWC-9aGVd-Gyn1o0CLelf4rEjGoXbAAEgAqeGUxrcIlbjXfbcmw"} 创建JWT认证。 登录应用服务网格控制台,单击网格名称,进入网格详情页面。 在左侧导航栏选择“服务管理”,在列表右上方选择服务所在命名空间。 选择httpbin服务,单击操作列的“安全”,在右侧页面选择“JWT认证”页签,单击“立即配置”,在弹出的“JWT认证”页面填写如下信息: 发行者:JWT的颁发者,本文设置为“test”。 令牌受众:JWT受众列表,设置哪些服务可以使用JWT Token访问目标服务,本文设置为“ASM”。 jwks:设置JWT信息,本文设置为{"keys": [1创建的JWK]},例如1创建的JWK为{"kty":"RSA","e":"AQAB","kid":"a78641b9-d81e-4241-b35a-71726c3****"},则jwks为{"keys": [{"kty":"RSA","e":"AQAB","kid":"a78641b9-d81e-4241-b35a-71726c3****"}]}。 图3 创建JWT认证 单击“确定”完成创建。
  • 验证JWT认证是否生效 使用JWT工具将JWT请求信息编码成JWT Token。 在“Decoded”区域输入以下JWT请求信息,在“Encode”区域将看到自动转换后的JWT Token。 HEADER:设置alg为“RS512”,输入1创建的JWK中的kid,设置type为“JWT”。 PAYLOAD:设置iss为“test”,aud为“ASM”,确保与2中配置的发行者、令牌受众保持一致。 VERIFY SIGNATURE:与1.a中的公钥保持一致。 图4 创建JWT Token 通过入口网关访问httpbin服务。 执行以下命令,带1创建的JWT Token访问服务。 TOKEN=1创建的JWT Token curl -I -H "Authorization: Bearer $TOKEN" http://{httpbin服务的外部访问地址}/ 预期输出: HTTP/1.1 200 OK server: istio-envoy date: Wed, 21 Sep 2022 03:11:48 GMT 执行以下命令,带无效的JWT Token访问服务。 curl -I -H "Authorization: Bearer invalidToken" http://{httpbin服务的外部访问地址}/ 预期输出: HTTP/1.1 401 Unauthorized www-authenticate: Bearer realm="http://***.***.***.***:***/", error="invalid_token" content-length: 145 content-type: text/plain date: Wed, 21 Sep 2022 03:12:54 GMT server: istio-envoy x-envoy-upstream-service-time: 19 修改2中创建的JWT认证,将令牌受众置空(表示对访问的服务不受限制),然后执行以下命令,带1创建的JWT Token访问服务。 curl -I -H "Authorization: Bearer $TOKEN" http://{httpbin服务的外部访问地址}/ 预期输出: HTTP/1.1 200 OK server: istio-envoy date: Wed, 21 Sep 2022 03:20:07 GMT 执行以下命令,不带JWT Token访问服务。 curl -I http://{httpbin服务的外部访问地址}/ 预期输出: HTTP/1.1 403 Forbidden content-length: 85 content-type: text/plain date: Wed, 21 Sep 2022 03:29:31 GMT server: istio-envoy x-envoy-upstream-service-time: 6 根据以上结果,可以看到带有正确的JWT Token的请求访问服务成功,带有错误的JWT Token或者不带JWT Token的请求访问服务失败,说明请求身份认证生效。
  • 创建灰度发布 登录应用服务网格控制台,使用以下任意一种方式进入创建灰度任务页面。 (快捷方式)在网格右上方,单击图标。 (快捷方式)在网格中心位置,单击“创建灰度任务”。 在网格详情页创建。 单击网格名称,进入网格详情页,单击左侧导航栏的“灰度发布”。 如果当前不存在发布中的灰度任务,请在金丝雀发布或蓝绿发布中单击“立即发布”;如果当前存在发布中的灰度任务,请单击右上角“灰度发布”。 配置灰度发布基本信息。 灰度类型 选择创建灰度发布的类型,可根据实际需求选择金丝雀发布和蓝绿发布,两者的区别可参考灰度发布概述。 灰度任务名称 自定义灰度任务的名称。输入长度范围为4到63个字符,包含小写英文字母、数字和中划线(-),并以小写英文字母开头,小写英文字母或数字结尾。 命名空间 服务所在的命名空间。 灰度发布服务 在下拉列表中选择待发布的服务。正在进行灰度任务的服务不可再进行选择,列表中已自动过滤。 工作负载 选择服务所属的工作负载。 版本号 当前服务版本号,版本号不支持修改。 图1 灰度发布基本信息 部署灰度版本信息。 部署集群 灰度发布服务所属的集群。 版本号 输入服务的灰度版本号。 实例数量 灰度版本的实例数量。灰度版本可以有一个或多个实例,用户可根据实际需求进行修改。每个灰度版本的实例都由相同的容器部署而成。 镜像名称 默认为该服务的镜像。 镜像版本 请选择灰度版本的镜像版本。 自定义镜像 用户可通过自定义镜像自行配置本地或第三方镜像地址,灰度发布镜像将采用所配置镜像。注意需确保自定义镜像地址有效,镜像可拉取。 图2 灰度版本信息 图3 灰度版本信息 单击“发布”,灰度版本开始创建。 请确保灰度版本的实例状态正常,且启动进度为100%时,再开始下一步进行流量策略的配置。发布之后进入观察灰度状态页面,可查看Pod监控,包括启动日志和性能监控信息。 (仅金丝雀发布涉及)单击“配置流量策略”,进行流量策略配置。 策略类型:分为“基于流量比例”和“基于请求内容”两种类型,通过页签选择确定。 基于流量比例 根据流量比例配置规则,从默认版本中切分指定比例的流量到灰度版本。例如75%的流量走默认版本,25%的流量走灰度版本。实际应用时,可根据需求将灰度版本的流量配比逐步增大并进行策略下发,来观测灰度版本的表现情况。 图4 基于流量比例 流量配比:可以为默认版本与灰度版本设置流量配比,系统将根据输入的流量配比来确定流量在两个版本间分发的比重。 基于请求内容 目前支持基于Cookie内容、自定义Header、Query、操作系统和浏览器的规则约束,只有满足规则约束的流量才可访问到灰度版本。例如,仅Cookie满足“User=Internal”的HTTP请求才能转发到灰度版本,其余请求仍然由默认版本接收。 图5 基于请求内容 Cookie内容 正则匹配:此处需要您使用正则表达式来匹配相应的规则。 自定义Header 完全匹配:只有完全匹配上才能生效。例如:设置Header的Key=User,Vaule=Internal,那么仅当Header中包含User且值为Internal的请求才由灰度版本响应。 正则匹配:此处需要您使用正则表达式来匹配相应的规则。 可以自定义请求头的key和value,value支持完全匹配和正则匹配。 Query 完全匹配:只有完全匹配上才能生效。例如:设置Query的Key=User,Vaule=Internal,那么仅当Query中包含User且值为Internal的请求才由灰度版本响应。 正则匹配:此处需要您使用正则表达式来匹配相应的规则。 可以自定义Query的key和value,value支持完全匹配和正则匹配。 允许访问的操作系统:请选择允许访问的操作系统,包括iOS、Android、Windows、macOS。 允许访问的浏览器:请选择允许访问的浏览器,包括Chrome、IE。 流量管理Yaml信息:根据所设置的参数自动生成规则YAML。 基于请求内容流量策略只对直接访问的入口服务有效。如果希望对所有服务有效,需要业务代码对HTTP请求的Header信息进行传播。 例如:如果您基于reviews服务,配置了基于请求内容的灰度发布策略,通过访问productpage服务的界面,是无法看到效果的。 原因是,您的客户端访问productpage服务携带了HTTP请求的Header信息,而productpage服务请求reviews服务时,将这些Header信息丢失了(详情可参考如何使用Istio调用链埋点),从而失去了基于请求内容的灰度发布效果。 设置完成后,单击“策略下发”。 灰度策略的生效需要几秒时间,您可以查看服务的流量监控,以及对原始版本及灰度版本的健康监控。
  • 金丝雀升级原理 ASM基础版网格支持金丝雀升级,金丝雀升级过程中将允许新老网格控制面同时存在,通过在命名空间打上版本对应的标签,可以选择一部分sidecar重启,并连接上新版本的控制面,待所有sidecar都正常连接到新控制面之后下面老版本网格的控制面。 需要注意的是,在部署新网格版本控制面时,istio-ingressgateway和istio-egressgatway的新版本也会同时部署,新老网格版本的网关将同时工作。
  • 操作步骤 登录应用服务网格控制台,确认网格是否需要升级版本。判断方法如下: 列表上方是否提示可升级版本的网格。 网格名称右侧是否存在“可升级”提示。 若存在可升级版本的网格,单击该网格名称,进入网格详情页面。 在左侧导航栏选择“网格配置”,单击“升级”页签。 根据升级路径选择合适的升级方式完成网格升级。 基础版本升级 升级详情请查看金丝雀升级。 企业版补丁更新 单击“补丁更新”,在弹出的提示框中单击“确定”。
  • 升级路径 网格类型 源版本 目标版本 升级方式 企业版 1.8.4-r1 1.8.6-r3 补丁更新(原地升级) 1.8.4-r2 1.8.6-r3 补丁更新(原地升级) 1.8.4-r3 1.8.6-r3 补丁更新(原地升级) 1.8.4-r4 1.8.6-r3 补丁更新(原地升级) 1.8.4-r5 1.8.6-r3 补丁更新(原地升级) 1.8.6-r1 1.8.6-r3 补丁更新(原地升级) 1.8.6-r2 1.8.6-r3 补丁更新(原地升级) 1.6.9-r4 1.6.9-r5 补丁更新(原地升级) 基础版 1.8.x 1.15.7-r1 先版本升级到1.13最新版本(金丝雀升级),再版本升级(金丝雀升级)到1.15.7-r1 1.13.x 1.15.7-r1 版本升级(金丝雀升级)到1.15.7-r1 1.15.5-rx 1.15.7-r1 补丁更新(金丝雀升级)到1.15.7-r1 1.15.x-rx 1.18.7-r1 版本升级(金丝雀升级)到1.18.7-r1 专有版 1.3.0-rx 1.15.7-r3 先迁移至基础版本网格,再版本升级至1.8.6-r4(金丝雀升级),再版本升级(金丝雀升级)到1.13.x最新版本,再版本升级(金丝雀升级)到1.15.7-r3 1.6.9-rx 1.15.7-r3 先迁移至基础版本网格,再版本升级至1.8.6-r4(金丝雀升级),再版本升级(金丝雀升级)到1.13.x最新版本,再版本升级(金丝雀升级)到1.15.7-r3 1.8.4-r1 1.15.7-r3 先迁移至基础版本网格,再版本升级(金丝雀升级)到1.13.x最新版本,再版本升级(金丝雀升级)到1.15.7-r3
  • 编辑已有istio资源 登录应用服务网格控制台,单击服务网格的名称,进入网格详情页面。 在左侧导航栏选择“网格配置”,单击“istio资源管理”页签。 在搜索框中选择istio资源类型(如“istio资源:virtualservices”),以及资源所属命名空间。 图1 筛选istio资源 单击操作列的“编辑”,在右侧页面修改相关配置,默认勾选底部提示信息,即控制台相关功能将不再开放使用,单击“确定”保存。 编辑Istio资源后,具体哪些控制台功能不可用,与Istio资源类型有关。详细说明请参见YAML配置资源处理策略。 支持以YAML或JSON格式显示,同时可以将配置文件下载到本地。
  • Istio资源说明 表1 Istio资源说明 资源类型 说明 AuthorizationPolicy 用于配置授权规则。 DestinationRule 定义路由的目标服务和流量策略。VirtualService和DestinationRule是流量控制最关键的两个资源,DestinationRule定义了网格中某个Service对外提供服务的策略及规则,包括负载均衡策略、异常点监测、熔断控制、访问连接池等。 EnvoyFilter EnvoyFilter为服务网格控制面提供更强大的扩展能力,使Envoy中Filter Chain具备自定义配置的能力。 Gateway Gateway定义了所有HTTP/TCP流量进入网格或者从网格中出站的统一入口和出口,它描述了一组对外公开的端口、协议、负载均衡以及SNI配置。 PeerAuthentication Istio的认证策略包含PeerAuthentication和RequestAuthentication,PeerAuthentication策略用于配置服务通信的mTLS模式。 RequestAuthentication Istio的认证策略包含PeerAuthentication和RequestAuthentication,RequestAuthentication策略用于配置服务的请求身份验证方法。 ServiceEntry 用于注册外部服务到网格内,并对其流量进行管理。 Sidecar 对Sidecar代理进行整体设置。 VirtualService 用于网格内路由的设置。VirtualService和DestinationRule是流量控制最关键的两个资源,在VirtualService中定义了一组路由规则,当流量进入时,逐个规则进行匹配,直到匹配成功后将流量转发给指定的路由地址。 WorkloadEntry 用来将虚拟机(VM)或者裸金属(Bare Metal)进行抽象,使其在网格化后作为与Kubernetes中的Pod同等重要的负载,具备流量管理、安全管理、可视化等能力。
  • 创建新的istio资源 登录应用服务网格控制台,单击服务网格的名称,进入网格详情页面。 在左侧导航栏选择“网格配置”,单击“istio资源管理”页签。 单击列表左上方的“创建”。 图2 创建istio资源 在右侧页面直接输入内容,或者单击“导入文件”,将本地编辑好的YAML或JSON文件上传上来。 确认文件内容无误,默认勾选底部提示信息,即控制台相关功能将不再开放使用,单击“确定”保存。 创建Istio资源后,具体哪些控制台功能不可用,与Istio资源类型有关,详细说明请参见YAML配置资源处理策略。
  • 操作步骤 登录应用服务网格控制台,单击服务网格的名称,进入网格详情页面。 在左侧导航栏选择“网格配置”,单击“升级”页签。 选择可升级版本,单击”版本升级”。 在弹出的提示信息后,单击“确定”。 进入升级前检查页面,单击“执行”,进行升级前检查,详情请查看升级前检查说明。 升级前检查结束后,单击“下一步”,进入控制面升级。 单击“升级”,进行控制面升级,详情请查看控制面升级说明。 控制面升级结束后,单击“下一步”,进行数据面升级。 单击“升级”,进行数据面升级,详情请查看数据面升级说明。 升级后处理,详情请查看升级后处理说明。
  • 操作步骤 登录应用服务网格控制台,单击服务网格的名称,进入网格详情页面。 在左侧导航栏选择“网关管理”,单击“添加网关”。 配置网关参数。 网关名称 请输入网关的名称。由小写字母、数字和中划线(-)组成,且必须以小写字母开头,小写字母或数字结尾,长度范围为4~59个字符。 集群选择 选择网关所属的集群。 访问方式 协议版本:支持选择IPV4和双栈两种,已开启ipv6的网格方可配置该参数。 服务网关使用弹性负载均衡服务(ELB)的负载均衡实例提供网络访问,支持共享型和独享型规格,且支持公网和私网。如果是独享型,实例规格需要选择“网络型(TCP/UDP)”,且网络类型需要勾选“IPv4私网”,确保负载均衡实例有私网IP地址。 访问入口 对外协议 请根据业务的协议类型选择。支持HTTP、GRPC、TCP、TLS及HTTPS五种协议类型的选择。 对外端口 开放在负载均衡服务地址的端口,可任意指定。 外部访问地址 系统自动填充负载均衡实例的IP地址,作为服务访问入口地址,您也可以将其修改为负载均衡实例关联的域名。 TLS终止 对外协议为HTTPS时,TLS终止为开启状态,且不可关闭。 对外协议为TLS时,可选择开启/关闭TLS终止。开启TLS终止时需要绑定证书,以支持TLS数据传输加密认证;关闭TLS终止时,网关将直接转发加密的TLS数据。 密钥证书 配置TLS协议并开启TLS时,需要绑定证书,以支持TLS数据传输加密认证。 配置HTTPS协议时,需要绑定密钥证书。 TLS最低版本/TLS最高版本 配置TLS协议并开启TLS终止,或者配置HTTPS协议时,提供TLS最低版本/TLS最高版本的选择。 图1 添加网关 (可选)配置路由参数。 请求的访问地址与转发规则匹配(转发规则由外部访问地址+URL组成)时,此请求将被转发到对应的目标服务处理。单击图标,弹出“添加路由”对话框。 URL匹配规则 前缀匹配:例如映射URL为/healthz,只要符合此前缀的URL均可访问。例如/healthz/v1、/healthz/v2。 完全匹配:只有完全匹配上才能生效。例如映射URL为/healthz,则必须为此URL才能访问。 支持通过YAML方式配置正则匹配规则,修改VirtualService配置文件即可: ... http: - delegate: name: nginx-80 namespace: default match: - uri: regex: /do[a-z]*/ ... 如上所示,“regex”表示按正则表达式方式匹配URL,注意URL必须以“/”开头。 URL 服务支持的映射URL,例如/example。 命名空间 服务网关所在的命名空间。 目标服务 添加网关的服务,直接在下拉框中选择。目标服务会根据对应的网关协议进行过滤,过滤规则请参见添加路由时,为什么选不到对应的服务?。 配置诊断失败的服务无法选择,需要先根据手动修复项或自动修复项进行修复。 访问端口 仅显示匹配对外协议的端口。 重写 (对外协议为HTTP/HTTPS时可配置) 重写HTTP/HTTPS URI和Host/Authority头,于转发前执行。默认关闭。开启后,需要配置如下参数: URI:使用此值重写URI的路径(或前缀),如果原始URI是基于前缀匹配,那么将替换相应匹配的前缀。 Host/Authority头:使用此值重写HTTP/HTTPS的Host/Authority头。 域名单独配置路由 为网关中某个域名单独配置路由规则。 图2 添加路由 配置完成后,单击“确定”。 网关添加完成后,可前往“服务管理”页面,获取服务外网访问地址。 图3 服务外网访问地址
  • JWT结构 JWT是一个包含了特定声明的Json结构。从前面介绍的JWT认证流程第六步知道,只要验证这个Json结构本身,即可以确认请求身份,不需要查询后端服务。下面解析JWT结构从而了解如何携带这些认证信息。 JWT包含三部分:头部Header、负载Payload和签名Signature。 头部Header 头部描述JWT的元数据,包括算法alg和类别typ等信息。alg描述签名算法,这样接收者可以根据对应的算法来验证签名,默认是如下所示的HS256,表示 HMAC-SHA256;typ表示令牌类型,设置为JWT,表示这是一个JWT类型的令牌。 { "alg": "HS256", "typ": "JWT" } 负载Payload 存放令牌的主体内容,由认证服务AuthN生成相关信息并放到令牌的负载中。重要属性包括: iss:令牌发行者 issuer aud:令牌受众 audience 在JWT验证时,会校验发行者、受众信息和令牌负载中的发行者iss、受众audience是否匹配。JWT的内容本身不是加密的,所有拿到令牌的服务都可以看到令牌负载Payload中的内容,因此建议Payload里不要存放私密的信息。 签名Signature 签名字段是对头部和负载的签名,确保只有特定合法的认证服务才可以发行令牌。实际使用中一般是把头部和负载分别执行Base64转换成字符串,然后使用认证服务的密钥对拼接的字符串进行签名,签名算法正是前面介绍的头域中定义的算法。 一个完整的JWT示例如下,对于头部Header和负载Payload进行签名得到Signature。 # Header: { "alg": "RS512", "typ": "JWT" } # Payload { "iss": "weather@cloudnative-istio", "audience": "weather@cloudnative-istio" } # Signature RSASHA512( base64UrlEncode(header) + "." + base64UrlEncode(payload) ) 以上结构最终输出的令牌如下,可以看到“.”分割的三个字符串分别对应JWT结构的头部、负载和签名三部分。 eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJleHAiOjQ2ODU5ODk3MDAsInZlciI6IjIuMCIsImlhdCI6MTUzMjM4OTcwMCwiaXNzIjoid2VhdGhlckBjbG91ZG5hdGl2ZS1pc3Rpby5ib29rIiwic3ViIjoid2VhdGhlckBjbG91ZG5hdGl2ZS1pc3Rpby5ib29rIn0.SEp-8qiMwI45BuBgQPH-wTHvOYxcE_jPI0wqOxEpauw
  • JWT认证原理 JWT(Json Web Token)是一种服务端向客户端发放令牌的认证方式。客户端用户名密码登录时,服务端会生成一个令牌返回给客户端;客户端随后在向服务端请求时只需携带这个令牌,服务端通过校验令牌来验证是否是来自合法的客户端,进而决定是否向客户端返回应答。从机制可以看到,这种基于请求中携带令牌来维护认证的客户端连接的方式解决了早期服务端存储会话的各种有状态问题。 在Istio使用中,JWT令牌生成由特定的认证服务提供,令牌验证由网格执行,彻底解耦用户业务中的认证逻辑,使应用程序专注于自身业务。基于Istio的JWT完整机制如图1所示。 图1 Istio JWT认证流程 ① 客户端连接认证服务,提供用户名和密码; ② 认证服务验证用户名和密码,生成JWT令牌,包括用户标识和过期时间等信息,并使用认证服务的私钥签名; ③ 认证服务向客户端返回生成的JWT令牌; ④ 客户端将收到的JWT令牌存储在本端,供后续请求时使用; ⑤ 客户端在向其他服务发起请求时携带JWT令牌,无需再提供用户名、密码等信息; ⑥ 网格数据面代理拦截到流量,使用配置的公钥验证JWT令牌; ⑦ 验证通过后,网格代理将请求转发给服务端; ⑧ 服务端处理请求; ⑨ 服务端返回应答数据给网格代理; ⑩ 网格数据面代理转发应答数据给调用方。 在这个过程中,重点是第六步,原来服务端的JWT认证功能迁移到了网格代理上。网格数据面从控制面配置的认证策略中获取验证JWT令牌的公钥,可以是jwks(JSON Web Key Set)上配置的公钥,也可以是从jwksUri配置的公钥地址获取到的公钥。获得公钥后,网格代理使用该公钥对认证服务私钥签名的令牌进行验证,并解开令牌中的iss,验证是否匹配认证策略中的签发者信息。验证通过的请求发送给应用程序,验证不通过则直接拒绝,不会发送给应用程序。
  • 操作步骤 登录应用服务网格控制台,确认网格是否需要续费。判断方法如下: 列表上方是否提示已超期冻结需及时续费的网格。 网格计费模式中是否存在已超期或即将到期提示。 图1 已超期提示 图2 即将到期提示 若存在已超期或即将到期的网格,单击网格右上角的图标,进入续费页面。 选择续费时长,单击“去支付”,选择支付方式后,单击“确认付款”即可成功续费。 更多信息(自动续费、导出续费清单等)请参考续费管理。
  • 结束灰度任务 当新创建的灰度版本接管全部流量后,您可以选择结束灰度任务。结束灰度任务将下线原版本,其中包含的工作负载和Istio相关配置资源会全部删除。 登录应用服务网格控制台,单击服务网格的名称,进入网格详情页面。 在左侧导航栏选择“灰度发布”,单击灰度发布任务的名称。 在“监测与处理”页面,单击灰度版本后的“全流量接管”。 单击右下角“结束灰度任务”。 在弹出的“结束灰度任务”窗口单击“确定”。 结束的灰度任务可以前往“已结束灰度任务”页签查看,状态显示为“发布成功”。
  • 取消灰度任务 当原版本接管全部流量后,您可以选择取消灰度任务。 登录应用服务网格控制台,单击服务网格的名称,进入网格详情页面。 在左侧导航栏选择“灰度发布”,单击灰度发布任务的名称。 在“监测与处理”页面,单击原版本后的“全流量接管”。 单击右下角“取消灰度任务”。也可以在灰度任务列表,单击任务右上角的图标。 在弹出的“取消灰度任务”窗口单击“确定”。 取消的灰度任务可以前往“已结束灰度任务”页签查看,状态显示为“发布取消”。
  • 修改灰度版本的流量策略 修改基于流量比例的策略 选择基于流量比例的策略时,一般会逐步加大灰度版本的流量配比,这样可以避免直接切换带来的业务风险。修改流量配比的方法如下: 登录应用服务网格控制台,单击服务网格的名称,进入网格详情页面。 在左侧导航栏选择“灰度发布”,单击金丝雀发布任务的名称。 在“配置流量策略”页面,重新输入灰度版本的流量配比。 假设将灰度版本流量配比调整至x,那么原版本的流量配比自动调整为100-x。 单击“策略下发”。 修改基于请求内容的策略 目前支持基于Cookie内容、自定义Header、Query、操作系统和浏览器的规则约束,只有满足规则约束的流量才可访问到灰度版本。实际应用时,可能会多次修改规则,从而充分验证灰度版本运行效果。 登录应用服务网格控制台,单击服务网格的名称,进入网格详情页面。 在左侧导航栏选择“灰度发布”,单击金丝雀发布任务的名称。 在“配置流量策略”页面,重新配置Cookie内容、自定义Header、Query、允许访问的操作系统或允许访问的浏览器。 单击“策略下发”。
  • 切换灰度策略类型 您可以在“基于请求内容”和“基于流量比例”的策略之间切换。策略完成切换后,之前配置的规则将全部失效,所有的流量会根据配置的新策略重新分配。 只有状态为“运行中”的任务才支持流量策略变更,版本发布完成后(即新版本完全接管旧版本流量,且旧版本已下线),将不支持重新配置流量策略。 登录应用服务网格控制台,单击服务网格的名称,进入网格详情页面。 在左侧导航栏选择“灰度发布”,单击金丝雀发布任务的名称。 在“配置流量策略”页面,切换策略类型。 单击“策略下发”。
  • 1.18及以后版本 1.18的访问日志提供JSON格式的内容,以如下JSON格式为例。 { "start_time": "%START_TIME%", "route_name": "%ROUTE_NAME%", "method": "%REQ(:METHOD)%", "path": "%REQ(X-ENVOY-ORIGINAL-PATH?:PATH)%", "protocol": "%PROTOCOL%", "response_code": "%RESPONSE_CODE%", "response_flags": "%RESPONSE_FLAGS%", "response_code_details": "%RESPONSE_CODE_DETAILS%", "connection_termination_details": "%CONNECTION_TERMINATION_DETAILS%", "bytes_received": "%BYTES_RECEIVED%", "bytes_sent": "%BYTES_SENT%", "duration": "%DURATION%", "upstream_service_time": "%RESP(X-ENVOY-UPSTREAM-SERVICE-TIME)%", "x_forwarded_for": "%REQ(X-FORWARDED-FOR)%", "user_agent": "%REQ(USER-AGENT)%", "request_id": "%REQ(X-REQUEST-ID)%", "authority": "%REQ(:AUTHORITY)%", "upstream_host": "%UPSTREAM_HOST%", "upstream_cluster": "%UPSTREAM_CLUSTER%", "upstream_local_address": "%UPSTREAM_LOCAL_ADDRESS%", "downstream_local_address": "%DOWNSTREAM_LOCAL_ADDRESS%", "downstream_remote_address": "%DOWNSTREAM_REMOTE_ADDRESS%", "requested_server_name": "%REQUESTED_SERVER_NAME%", "upstream_transport_failure_reason": "%UPSTREAM_TRANSPORT_FAILURE_REASON%", "pod_name": "%ENVIRONMENT(POD_NAME)%", "pod_namespace": "%ENVIRONMENT(POD_NAMESPACE)%", "mesh_id": "%ENVIRONMENT(ISTIO_META_ASM_MESH_ID)%", "cluster_id": "%ENVIRONMENT(ISTIO_META_ASM_CLUSTER_ID)%", } 其中日志标记与表1含义相同,新增字段解释见表2。 表2 1.18及以上版本istio日志新增字段解读 Log operator 解释 样例 pod_name 产生日志的pod名称 istio-ingressgateway-1-15-7-r2-599d4cf747-ngcfd pod_namespace 产生日志的pod的namespace istio-system mesh_id 网格ID 84961386-6d84-929d-98bd-c5aee93b5c88 cluster_id 集群ID 84961386-6d84-929d-98bd-c5aee93b5c88
  • 什么是华为开源镜像站? 华为开源镜像站(Mirrors)是由华为云提供的开源组件、开源操作系统及开源DevOps工具镜像站,致力为用户提供全面、高速、可信的开源组件/OS/工具下载服务。由于网络原因,国内开发者使用国外开源组件、工具和操作系统等资源下载时比较慢,影响开发效率。镜像站将这些资源生成一份镜像,归档到国内并定期/实时同步以供国内开发者高效使用,可以减少开源组件等资源下载的等待时间。镜像站还提供了开源组件使用的配置帮助和论坛帖子,以便开发者使用时能一站式找到所需资源,降低搜索成本。
  • 生产报工 生产工单是工厂车间执行生产的指令,其来源可以是客户订单也可以是库存备货要求。具体体现为“生产的产品”、“生产的数量”、“需求日期”。 在指定了生产的产品及生产数量并保存单据后,系统会自动根据主数据模块产品物料配置的BOM结构,自动计算出依赖的物资需求数量。 如果一个产成品依赖多个半成品,可以继续为每个半成品生成工单。按照此逻辑一直追溯到原材料级别,可实现最终产品到原材料级别的生产工单分解。 图4 生产报工
  • 生产工单 生产工单是工厂车间执行生产的指令,其来源可以是客户订单也可以是库存备货要求。具体体现为“生产的产品”、“生产的数量”、“需求日期”。 在指定了生产的产品及生产数量并保存单据后,系统会自动根据主数据模块产品物料配置的BOM结构,自动计算出依赖的物资需求数量。 如果一个产成品依赖多个半成品,可以继续为每个半成品生成工单。按照此逻辑一直追溯到原材料级别,可实现最终产品到原材料级别的生产工单分解。 图1 生产工单
  • 生产排产 已经确认过的生产工单,可以在生产排产的界面单击操作列的“排产”按钮进行生产任务拆解。 排产时,系统会自动根据当前产品配置的生产工艺流程,展示工艺流程中的所有工序。用户在每一道工序中配置对应的工作站以及每个工作站排产的“排产数量”、“开始生产时间”、预估的“生产时长”。 系统根据配置信息为每个工作站生成对应的生产任务。 用户同样也可使用系统提供的甘特图,调整每一个生产任务的开始结束时间,以方便对整个工厂的多个生产工单进行合理排产。排产后的生产任务将自动在移动端对应的工作站任务情况中,按先后顺序进行展示。操作员可对生产任务进行处理。 图3 生产计划
  • 方案架构 图1 制造运营管理系统数字化改造方案架构 汉鑫MOM制造运营管理系统解决方案为全流程综合MOM解决方案,由制造执行系统MES+仓储管理系统WMS+设备管理系统IOT+能源管理系统EMS+质量管理系统QMS组成。 系统以信息化为手段,以精益为抓手,打造数字化工厂,将生产经营各要素进行有机串联,减少管理调度中人为经验要素影响,提升制造系统效率和产品品质,围绕“人机料法环”,实现公司“产品、设计、制造、供应、管理的标准化和决策的智能化” 图2 汉鑫MOM制造运营管理系统集成架构 通过华为云弹性服务器ECS以及配套云备份、Anti-DDoS流量清洗、企业安全主机、 对象存储服务 云堡垒机 云监控服务 、云数据库、进行系统部署环境的搭建。 通过弹性公网IP完成设备、系统的IP设置 通过Anti-DDoS进行数据的流量清洗 通过云 堡垒机 为系统提供云计算安全管控的系统和组件,可以实现对运维资源的4A安全管控 RDS(for MySQL)提供稳定可靠、弹性伸缩、便捷管理的在线云数据库服务,进一步提升解决方案整体竞争力。 方案优势 汉鑫MOM制造运营管理系统的优势主要体现在高度定制化的解决方案、强大的数据分析和预测能力、优秀的用户体验和界面设计、全面的集成能力和扩展性、专业的技术支持和售后服务以及成功的案例和客户反馈等方面, 优秀的用户体验和界面设计:系统注重用户体验,拥有直观、友好的用户界面和操作流程,能够迅速上手并熟练掌握系统操作,减少了培训成本和时间。 全面的集成能力和扩展性:系统具有良好的集成能力,能够与企业现有的ERP、MES等系统无缝对接,实现数据共享和业务协同,有助于打破信息孤岛,提高整体运营效率。此外,系统还具备强大的扩展性,可以根据企业的未来发展需求进行功能升级和模块扩展。 强大的数据分析和预测能力:系统配备了先进的数据分析工具,能够实时收集、整合并分析来自各个生产环节的数据。通过数据分析,企业能够及时发现生产中的问题和瓶颈,并采取有效措施进行改进。
  • 应用场景 应用场景一:汽车制造业数字化转型 随着汽车制造业竞争越来越大,企业常常面临以下挑战: 产品结构复杂,质量安全要求高;按项目制造,生产批量小;高度离散化,生产组织链条长;劳动密集型,生产自动化程度低; 决策支持缺乏数据:现场数据可见性不足,导致决策环节缺少数据支持,影响生产效率,例如调度; 精益管理受限:生产的精益化推进,受到了数据精确度、实时性不足的瓶颈制约,容易造成现场精益管理出现形式化、低效化。 通过本解决方案,可助力汽车制造企业开展生产过程的信息化管理,实现生产过程可视化、设备可视化、质量可追溯管理;同时降低建设成本、全面、高效、灵活、优质的信息化服务。 应用场景二:机械制造业数字化转型 目前机械制造业企业面临着以下业务挑战: 生产设备多:车间及设备的分布范围广,存在“跨厂区、跨建筑、跨楼层”的现象。 备件管理难:公司备品备件及工装夹具采取“三大库房,五个集散点”的存储管理方式。 数据孤岛:存在多个部门和系统,数据流通不畅、信息孤立,导致数据重复采集和处理,浪费时间和资源。 使用汉鑫MOM制造运营管理系统解决方案,可通过华为云中立、安全、可信、持续创新的云服务,在云上快速部署制造运营管理系统,为机械制造业企业提供专业的数字化转型服务
共100000条