云服务器内容精选
-
接入前准备 服务 域名 IP(如涉及) 端口 SWR swr.cn-north-4.myhuaweicloud.com 从VPCEP中获取。 443 OBS op-svc-swr-b051-10-38-19-62-3az.obs.cn-north-4.myhuaweicloud.com 不涉及 443、80 CIA cie-{容器智能分析实例instanceid前八位数字}{当前选择接入的VPC子网ID前八位数字}.cn-north-4.myhuaweicloud.com 从VPCEP中获取。 443 DNS 不涉及 创建VPCEP,选择DNS Endpoint对应的地址。 53 其他区域的SWR及依赖OBS的域名信息。 Region SWR域名 OBS域名 华北-北京四 swr.cn-north-4.myhuaweicloud.com op-svc-swr-b051-10-38-19-62-3az.obs.cn-north-4.myhuaweicloud.com 华东-上海二 swr.cn-east-2.myhuaweicloud.com obs.cn-east-2.myhuaweicloud.com 华东-上海一 swr.cn-east-3.myhuaweicloud.com op-svc-swr-b051-10-147-7-14-3az.obs.cn-east-3.myhuaweicloud.com 华南-广州 swr.cn-south-1.myhuaweicloud.com op-svc-swr-b051-10-230-33-197-3az.obs.cn-south-1.myhuaweicloud.com 西南-贵阳一 swr.cn-southwest-2.myhuaweicloud.com op-svc-swr-b051-10-205-14-19-3az.obs.cn-southwest-2.myhuaweicloud.com 华北-乌兰察布一 swr.cn-north-9.myhuaweicloud.com obs.cn-north-9.myhuaweicloud.com 亚太-新加坡 swr.ap-southeast-3.myhuaweicloud.com op-svc-swr-b051-10-38-34-172-3az.obs.ap-southeast-3.myhuaweicloud.com 香港 swr.ap-southeast-1.myhuaweicloud.com obs.ap-southeast-1.myhuaweicloud.com 拉美-墨西哥一 swr.na-mexico-1.myhuaweicloud.com obs.na-mexico-1.myhuaweicloud.com 拉美-墨西哥二 swr.la-north-2.myhuaweicloud.com obs.la-north-2.myhuaweicloud.com
-
操作步骤 通过使用kubectl连接网格控制面获取kubeconofig的证书内容。 登录云容器引擎控制面,单击选择任意集群,进入详情页。 建议选择网格对应的VPC下的集群。若连接其他VPC下的集群,则需要参考U CS 服务网格 集群连通方法打通集群所在VPC和网格对应VPC。 在左侧导航栏,单击“配置与密钥”,单击“密钥”页签,显示集群的密钥信息。 选择“命名空间”为“asm-system”,单击右上角“创建密钥”。 设置密钥参数,单击右下角“创建密钥”,完成密钥创建。 名称:自定义名称。例如:kubeconfig。 创建的密钥的名称不要使用mesh-kubeconfig,因为apiserver也会自动创建这个名字的密钥,如果使用了这个名称可能会被覆盖。 描述:(可选)。 密钥类型:选择“其他”,填写密钥类型为“cfe/secure-opaque”。 密钥数据:添加密钥数据,键为“kubeconfig”,值为1中获取到的kubeconfig证书内容。 单击左侧导航栏“插件与模板”,在“可安装插件”页签中找到“asm-service-controller”插件,单击“安装”。 填写配置参数,单击右下角“安装”,完成插件安装。 meshKubeconfigSecret:为步骤5中创建的密钥名称。 source:目前包含“nacos”,代表对接的第三方注册中心nacos的相关信息,其中包含4个参数。 name:为该注册中心名称。 addr:为nacos的ip及端口。 allnamespaces:为是否需要同步nacos全部命名空间中的服务,当allnamespaces为false时,需要填充namespaces,表示需要同步的nacos的命名空间。 namespaces:表示需要同步的nacos的命名空间。 若插件运行的集群为CCE turbo类型集群,在安装插件完成后,需要参考为Pod配置EIP为asm-system命名空间下,名为asm-service-controller的pod绑定eip,才能正常使用该插件功能。
-
准备工作 准备两个部署于不同Region的 CCE Turbo 1.21及以上版本集群,或者网络模型为underlay的Kubernetes集群。 规划应用部署的地域,并购买相应地域的ELB实例服务,为保证跨Region容灾能力,请保证两个ELB实例,跨Region部署。该ELB实例需要为独享型、支持应用型(HTTP/HTTPS)、支持私网(有私有IP地址),并且开启了跨VPC后端开关,具体创建步骤请参见创建独享型负载均衡器。 打通ELB的VPC与Kubernetes集群间的网络,确保ELB实例与容器Pod IP网络可达,并保证成员集群间网络网段不冲突。 准备联邦内可用的工作负载(Deployment)和服务(Service),若无请参考无状态负载和集群内访问(ClusterIP)进行创建。
-
VPC网段之间的网络连通 登录云容器引擎控制台,选择本端集群,进入集群详情页,单击左侧导航栏“节点管理”,进入节点详情页。 单击“节点名称”下的节点,在弹出的页面中单击右上角“远程登录”,选择VNC方式登录。 根据界面提示,输入账号和密码,成功进入Linux环境中。 在云容器引擎控制台中,选择对端集群,进入集群详情页,单击左侧导航栏“节点管理”,进入节点详情页。 在3中,使用Linux命令查看网络是否连通。对端集群节点IP为4中的节点IP。例如:ping 172.X.X.X。 在对端集群中执行相同的操作。
-
跨地域应用故障迁移验证 示例应用分别部署在集群“ccecluster-01”和“ccecluster-02”中,并以公网EIP的方式提供了服务的访问入口。 故障场景构造 构造单地域故障的场景,以Region1故障为例,执行以下操作,构造单地域故障: 休眠Region1的cce-cluster01集群,并关机集群下的节点。 解绑Region1的ELB实例的EIP1。 容灾能力验证 在DNS的域名解析页面,在记录集中手动删除Region1的ELB实例绑定的ELB IP地址。 检查ELB的实例后端是否显示存在健康检查结果异常的后端服务器。 在ECS上访问对应的服务,检查服务是否访问正常,返回结果是否为200。
-
获取本地集群私钥签发的jwks 使用kubectl连接本地集群。 执行如下命令获取公钥。 kubectl get --raw /openid/v1/jwks 返回结果为一个 json 字符串,是当前集群的签名公钥,用于访问身份提供商。 { "keys": [ { "kty": "RSA", "e": "AQAB", "use": "sig", "kid": "Ew29q....", "alg": "RS256", "n": "peJdm...." } ]}
-
配置身份提供商 登录 IAM 控制台,创建身份提供商,协议选择OpenID Connect。 图2 创建身份提供商 单击“确定”,然后修改身份提供商信息,需要修改的信息如表1 身份提供商配置参数说明。若需要创建身份转换规则,单击“创建规则”进行创建。 图3 修改身份提供商信息 图4 创建身份转换规则 表1 身份提供商配置参数说明 参数 说明 访问方式 选择“编程访问” 配置信息 身份提供商 URL:https://kubernetes.default.svc.cluster.local。 客户端 ID:ucs-cluster-identity。 签名公钥:本地集群的jwks,获取方法请参见获取本地集群私钥签发的jwks。 身份转换规则 身份映射规则是将工作负载的 ServiceAccount 和 IAM 用户组做映射。 例如:在集群default命名空间下创建一个名为 XXX 的 ServiceAccount,映射到 demo 用户组(后续使用身份提供商 ID 访问云服务就具有 demo 用户组的权限)。 值的格式为:system:serviceaccount:Namespace:ServiceAccountName 单击“确定”。
-
方案流程 使用工作负载Identity的流程如图1 使用工作负载Identity流程,具体流程如下: 前置授权。 在UCS获取本地集群私钥签发的jwks,该公钥用于验证集群签发的ServiceAccount Token。 在 IAM 配置身份供应商,标志当前集群在IAM侧的身份。 为身份提供商配置集群签发的公钥,后续负载使用Token发送请求时,IAM使用该公钥验证Token。 添加 ServiceAccount 与 IAM 账号的映射规则,配置后,当前 ServiceAccount 拥有对应用户的 IAM 权限。 工作负载配置Token。 部署应用并配置ServiceAccount。 挂载对应ServiceAccount的Token。 验证获取的Token能否正常进行访问。 访问IAM接口获取IAM Token。 使用IAMToken 访问云服务。 图1 使用工作负载Identity流程
-
获取IAM Token 创建 ServiceAccount,此处 ServiceAccount 的名称需要与2时填写的 ServiceAccountName 保持一致。 apiVersion: v1 kind: ServiceAccount metadata: name: test_sa_name # 与配置身份转换规则处保持一致 如下所示,在工作负载中新增 ServiceAccount 以及 Volume 相关配置。 apiVersion: apps/v1kind: Deploymentmetadata: name: nginxspec: replicas: 1 selector: matchLabels: app: nginx version: v1 template: metadata: labels: app: nginx version: v1 spec: containers: - name: container-1 image: nginx:latest volumeMounts - mountPath: "/var/run/secrets/tokens" # 将Kubernetes生成的ServiceAccountToken 挂载到 /var/run/secrets/tokens/token_path 文件内 name: token-volume imagePullSecrets: - name: default-secret serviceAccountName: test_sa_name # 上一步创建的ServiceAccount的名称 volumes: - name: token-volume projected: defaultMode: 420 sources: - serviceAccountToken: audience: ucs-cluster-identity # 此处取值必须为身份提供商的客户端ID expirationSeconds: 7200 # 过期时间 path: token_path # 路径名称,可自定义 创建完成后,登录到容器中获取 Token。 构造请求体数据,项目ID的获取请参见获取项目ID。 { "auth" : { "id_token" : { "id" : "eyJhbGciOiJSUzIXXXXX" // 上一步获得的 token 内容 }, "scope": { "project" : { "id" : "05495693df80d3c92fa1c01795c2be02", // 项目 ID "name" : "cn-north-7" } } } } 请求IAM接口以获取IAM Token,IAM的Endpoint信息请参见地区和终端节点。 curl -i --location --request POST 'https://{{iam endpoint}}/v3.0/OS-AUTH/id-token/tokens' --header 'X-Idp-Id: {{workload_identity}}' --header 'Content-Type: application/json' --data @token_body.json workload_identity为1中注册的身份提供商名称,此示例内为 ucs-cluster-identity。 token_body.json 为构造的请求体数据文件。 返回体内获取IAM Token,响应消息头中 X-Subject-Token 字段即为 IAM Token。
-
使用IAM Token访问云服务 本小节以请求LTS服务为例,介绍如何使用IAM Token访问云服务。 在使用IAM Token访问云服务前,应为用户组配置相应服务的权限。 请求LTS服务需要在用户组中加上 LTS FullAccess 权限,如图所示。 执行如下命令,调用对应服务接口。 curl --location --request GET 'https://ltsperform.cn-north-7.myhuaweicloud.com/v2/{{项目 ID}}/groups/{{日志组 ID}}/streams' \--header 'Content-Type: application/json;charset=utf-8' \--header 'X-Auth-Token: {{上一步获得的 IAM token}}' \--data-raw '' 日志组ID可在LTS服务内进行查询。 期望的返回结果如图所示
-
功能验证 按照上述集群应用部署操作,示例应用分别部署在集群“ccecluster01”、“ccecluster02”中,并以“负载均衡”类型的服务对外提供访问。 下面将通过UCS的流量分发功能,实现多集群应用的故障倒换,验证应用的高可用容灾能力。 实践中的应用仅作示例,在实际生产环境中可替换为用户自有应用,且对示例集群的提供商、地域、数量不作限制。 登录UCS控制台,在左侧导航栏中单击“流量分发”。 在流量管理控制台页面,单击右上角“创建流量策略”,填写域名地址解析,设置本例中的测试域名为“demo.example.com”。 图4 创建流量策略 为两个集群服务分别添加调度策略,添加完成后单击“确定”。 本示例中,为模拟不同地域下的集群应用部署,添加三条调度策略: 集群“ccecluster01”线路类型设置为“地域解析-中国大陆/华东地区/上海”。 集群“ccecluster02”线路类型设置为“地域解析-中国大陆/华南地区/广东”。 为域名添加默认线路解析记录,设置集群“ccecluster01”线路类型为“全网默认”。如不设置默认线路解析将会造成指定线路外的地区用户访问失败。 图5 添加调度策略 此时已为测试域名“demo.example.com”添加了三条解析,用户流量将根据设置的线路类型和权重正常访问两个集群中的应用。 图6 调度策略列表 上海地区用户:将访问集群“ccecluster01”中的应用,版本为1.0.0。 广东地区用户:将访问集群“ccecluster02”中的应用,版本为2.0.0。 其他用户:将默认访问集群“ccecluster01”中的应用,版本为1.0.0。 广东地区用户通过域名“demo.example.com”访问应用,版本为2.0.0,说明访问的是集群“ccecluster02”中的应用。 图7 查看访问结果 此时手动停止集群“ccecluster02”中的应用,将实例个数调整为0,模拟环境故障。 图8 调整实例个数 广东地区用户访问应用时,依旧被解析至集群“ccecluster02”,返回错误。 此时需要在“流量分发”页面单击集群“ccecluster02”对应调度策略的“暂停”按钮,进行应用故障倒换。 图9 暂停调度策略 广东地区用户访问域名“demo.example.com”时,不再解析至集群“ccecluster02”,只会将默认线路解析结果返回,用户访问到集群“ccecluster01”,访问正常。待运维人员完成故障集群修复后,可单击“启用”按钮重新使用该线路解析。
-
环境搭建 将集群注册到UCS并接入网络。具体操作请参见注册集群。 例如,将集群“ccecluster01”、“ccecluster02”添加至UCS,并查看集群是否处于正常运行状态。 在添加至UCS的两个集群中分别创建一个工作负载。 为展示流量切换的效果,本实践中两个集群的容器镜像版本不同。 集群“ccecluster01”:示例应用版本号为1.0.0。 集群“ccecluster02”:示例应用版本号为2.0.0。 图2 创建工作负载 分别为两个集群中的应用创建“负载均衡”类型的服务。 仅支持访问类型为“负载均衡”的服务,其他类型的服务将被自动过滤。 浏览器访问负载均衡IP地址,查看部署结果。 图3 查看部署结果
-
准备工作 准备应用所运行的集群,本文以CCE集群为例进行演示,参考购买CCE集群在两个不同区域(如:华南-广州和华东-上海一)创建CCE集群,要求Kubernetes版本为1.19及以上,并且各个集群中至少拥有一个可用节点。 在实际生产环境中,多个集群可位于不同区域、可用区,甚至不同云服务商,实现应用的多活容灾。 已购买公网域名,并添加至华为云云解析(DNS)服务,具体操作请参考快速添加网站域名解析。
-
应用场景 为了应对云单点宕机故障,UCS的集群联邦提供多云多活应用、秒级流量接管能力。业务应用的实例可以多云多活的部署在不同云上的容器服务中,当云单点宕机故障发生时,集群联邦可以秒级自动完成应用实例的弹性迁移以及流量的切换,业务的可靠性大大提升。 多活容灾方案示意如图1所示,通过创建域名访问规则,将应用分发到3个Kubernetes集群,包括两个华为云CCE集群(部署在不同Region)和一个其他云的Kubernetes集群,实现应用的多活容灾。 图1 多云集群应用多活容灾示意图
-
方案介绍 要想实现上述的权限隔离,必须结合使用IAM系统策略和UCS权限管理功能,IAM系统策略控制用户可操作哪些UCS控制台的功能,UCS权限管理控制用户可操作哪些舰队和集群资源。 如图2 授权方案所示,授权包括如下两大步骤。 第一步授权(IAM控制台):拥有Tenant Administrator权限的IAM管理员需要创建三个用户组,一个为管理员用户组,另外两个为项目组A、B所对应的用户组(用户组1、2),分别授予UCS FullAccess和UCS CommonOperations权限。 第二步授权(UCS控制台):拥有UCS FullAccess权限的UCS管理员分别为用户组1、用户组2创建各自的管理员权限、只读权限,然后关联到舰队上。 具体的关联策略如下:用户组1的管理员权限关联至舰队1、舰队2,只读权限关联至舰队3;用户组2的管理员权限关联至舰队1、舰队3,只读权限关联至舰队2。 图2 授权方案
更多精彩内容
CDN加速
GaussDB
文字转换成语音
免费的服务器
如何创建网站
域名网站购买
私有云桌面
云主机哪个好
域名怎么备案
手机云电脑
SSL证书申请
云点播服务器
免费OCR是什么
电脑云桌面
域名备案怎么弄
语音转文字
文字图片识别
云桌面是什么
网址安全检测
网站建设搭建
国外CDN加速
SSL免费证书申请
短信批量发送
图片OCR识别
云数据库MySQL
个人域名购买
录音转文字
扫描图片识别文字
OCR图片识别
行驶证识别
虚拟电话号码
电话呼叫中心软件
怎么制作一个网站
Email注册网站
华为VNC
图像文字识别
企业网站制作
个人网站搭建
华为云计算
免费租用云托管
云桌面云服务器
ocr文字识别免费版
HTTPS证书申请
图片文字识别转换
国外域名注册商
使用免费虚拟主机
云电脑主机多少钱
鲲鹏云手机
短信验证码平台
OCR图片文字识别
SSL证书是什么
申请企业邮箱步骤
免费的企业用邮箱
云免流搭建教程
域名价格