当前位置: 首页 > news >正文

温州建设诚信评价网站公示做相册本哪个网站好用

温州建设诚信评价网站公示,做相册本哪个网站好用,东莞做网络推广的公司,重庆网络公司网站建设简介#xff1a;本文侧重介绍了通过 ACK One 的多集群应用分发功能#xff0c;可以帮助企业管理多集群环境#xff0c;通过多集群主控示例提供的统一的应用下发入口#xff0c;实现应用的多集群分发#xff0c;差异化配置#xff0c;工作流管理等分发策略。结合 GTM 全局…简介本文侧重介绍了通过 ACK One 的多集群应用分发功能可以帮助企业管理多集群环境通过多集群主控示例提供的统一的应用下发入口实现应用的多集群分发差异化配置工作流管理等分发策略。结合 GTM 全局流量管理快速搭建管理两地三中心的应用容灾系统。 作者宇汇壮怀先河 概述 两地三中心是指在两个城市部署三个业务处理中心即生产中心、同城容灾中心、异地容灾中心。在一个城市部署 2 套环境形成同城双中心同时处理业务并通过高速链路实现数据同步可切换运行。在另一城市部署1套环境做异地灾备中心做数据备份当双中心同时故障时异地灾备中心可切换处理业务。两地三中心容灾方案可以极大程度的保证业务的连续运行。 使用 ACK One 的多集群管理应用分发功能可以帮助企业统一管理 3 个 K8s 集群实现应用在 3 个 K8s 集群快速部署升级同时实现应用在 3 个 K8s 集群上的差异化配置。配合使用 GTM全局流量管理可以实现在故障发生时业务流量在 3 个 K8s 集群的自动切换。对 RDS 数据层面的数据复制本实践不做具体介绍可参考 DTS 数据传输服务。 方案架构 前提条件 开启多集群管理主控实例[1] 通过管理关联集群[2]添加 3 个 K8s 集群到主控实例中构建两地三中心。本实践中作为示例在北京部署 2 个 K8s 集群cluster1-beijing 和 cluster2-beijing在杭州部署 1 个 K8s 集群cluster1-hangzhou。 创建 GTM 实例[3] 应用部署 通过 ACK One 主控实例的应用分发功能[4]在 3 个 K8s 集群中分发应用。对比传统的脚本部署使用 ACK One 的应用分发可获得如下收益。 本实践中示例应用为 web 应用包含 K8s Deployment/Service/Ingress/Configmap 资源Service/Ingress 对外暴露服务Deployment 读取 Configmap 中的配置参数。通过创建应用分发规则将应用分发到 3 个 K8s 集群包括 2 个北京集群1 个杭州集群实现两地三中心。分发过程中对 deployment 和 configmap 资源做差异化配置以适应不用地点的集群同时分发过程实现人工审核的灰度控制限制错误的爆炸半径。 1. 执行一下命令创建命名空间 demo。 kubectl create namespace demo 2. 使用以下内容创建 app-meta.yaml 文件。 apiVersion: apps/v1 kind: Deployment metadata:labels:app: web-demoname: web-demonamespace: demo spec:replicas: 5selector:matchLabels:app: web-demotemplate:metadata:labels:app: web-demospec:containers:- image: acr-multiple-clusters-registry.cn-hangzhou.cr.aliyuncs.com/ack-multiple-clusters/web-demo:0.4.0name: web-demoenv:- name: ENV_NAMEvalue: cluster1-beijingvolumeMounts:- name: config-filemountPath: /config-filereadOnly: truevolumes:- name: config-fileconfigMap:items:- key: config.jsonpath: config.jsonname: web-demo --- apiVersion: v1 kind: Service metadata:name: web-demonamespace: demolabels:app: web-demo spec:selector:app: web-demoports:- protocol: TCPport: 80targetPort: 8080 --- apiVersion: networking.k8s.io/v1 kind: Ingress metadata:name: web-demonamespace: demolabels:app: web-demo spec:rules:- host: web-demo.example.comhttp:paths:- path: /pathType: Prefixbackend:service:name: web-demoport:number: 80 --- apiVersion: v1 kind: ConfigMap metadata:name: web-demonamespace: demolabels:app: web-demo data:config.json: |{database-host: beijing-db.pg.aliyun.com} 3. 执行以下命令在主控实例上部署应用 web-demo。注意在主控实例上创建 kube 资源并不会下发到子集群此 kube 资源作为原数据被后续 Application步骤 4b中引用。 kubectl apply -f app-meta.yaml 4. 创建应用分发规则。 a.  执行以下命令查看主控实例管理的关联集群确定应用的分发目标   kubectl amc get managedcluster预期输出 Name Alias HubAccepted managedcluster-cxxx cluster1-hangzhou true managedcluster-cxxx cluster2-beijing true managedcluster-cxxx cluster1-beijing trueb.  使用以下内容创建应用分发规则 app.yaml。替换示例中的和 managedcluster-cxxx 为实际待发布集群名称。分发规则定义的最佳实践在注释中说明。 在 app.yaml 中包含以下资源类型Policy (type:topology) 分发目标Policy (type: override)差异化规则 Workflow 工作流Application 应用。具体可参考应用复制分发[5]、应用分发差异化配置[6]和应用集群间灰度分发[7]。 apiVersion: core.oam.dev/v1alpha1 kind: Policy metadata:name: cluster1-beijingnamespace: demo type: topology properties:clusters: [managedcluster-cxxx] #分发目标集群1 cluster1-beijing --- apiVersion: core.oam.dev/v1alpha1 kind: Policy metadata:name: cluster2-beijingnamespace: demo type: topology properties:clusters: [managedcluster-cxxx] #分发目标集群2 cluster2-beijing --- apiVersion: core.oam.dev/v1alpha1 kind: Policy metadata:name: cluster1-hangzhounamespace: demo type: topology properties:clusters: [managedcluster-cxxx] #分发目标集群3 cluster1-hangzhou --- apiVersion: core.oam.dev/v1alpha1 kind: Policy metadata:name: override-env-cluster2-beijingnamespace: demo type: override properties:components:- name: deploymenttraits:- type: envproperties:containerName: web-demoenv:ENV_NAME: cluster2-beijing #对集群cluster2-beijing的deployment做环境变量的差异化配置 --- apiVersion: core.oam.dev/v1alpha1 kind: Policy metadata:name: override-env-cluster1-hangzhounamespace: demo type: override properties:components:- name: deploymenttraits:- type: envproperties:containerName: web-demoenv:ENV_NAME: cluster1-hangzhou #对集群cluster1-hangzhou的deployment做环境变量的差异化配置 --- apiVersion: core.oam.dev/v1alpha1 kind: Policy metadata:name: override-replic-cluster1-hangzhounamespace: demo type: override properties:components:- name: deploymenttraits:- type: scalerproperties:replicas: 1 #对集群cluster1-hangzhou的deployment做副本数的差异化配置 --- apiVersion: core.oam.dev/v1alpha1 kind: Policy metadata:name: override-configmap-cluster1-hangzhounamespace: demo type: override properties:components:- name: configmaptraits:- type: json-merge-patch #对集群cluster1-hangzhou的deployment做configmap的差异化配置properties:data:config.json: |{database-address: hangzhou-db.pg.aliyun.com} --- apiVersion: core.oam.dev/v1alpha1 kind: Workflow metadata:name: deploy-demonamespace: demo steps: #顺序部署cluster1-beijingcluster2-beijingcluster1-hangzhou。- type: deployname: deploy-cluster1-beijingproperties:policies: [cluster1-beijing] - type: deployname: deploy-cluster2-beijingproperties:auto: false #部署cluster2-beijing前需要人工审核policies: [override-env-cluster2-beijing, cluster2-beijing] #在部署cluster2-beijing时做环境变量的差异化- type: deployname: deploy-cluster1-hangzhouproperties:policies: [override-env-cluster1-hangzhou, override-replic-cluster1-hangzhou, override-configmap-cluster1-hangzhou, cluster1-hangzhou]#在部署cluster2-beijing时做环境变量副本数configmap的差异化 --- apiVersion: core.oam.dev/v1beta1 kind: Application metadata:annotations:app.oam.dev/publishVersion: version8name: web-demonamespace: demo spec:components:- name: deployment #独立引用deployment方便差异化配置type: ref-objectsproperties:objects:- apiVersion: apps/v1kind: Deploymentname: web-demo- name: configmap #独立引用configmap方便差异化配置type: ref-objectsproperties:objects:- apiVersion: v1kind: ConfigMapname: web-demo- name: same-resource #不做差异化配置type: ref-objectsproperties:objects:- apiVersion: v1kind: Servicename: web-demo- apiVersion: networking.k8s.io/v1kind: Ingressname: web-demoworkflow:ref: deploy-demo 5. 执行以下命令在主控实例上部署分发规则 app.yaml。 kubectl apply -f app.yaml 6. 查看应用的部署状态。 kubectl get app web-demo -n demo预期输出workflowSuspending 表示部署暂停 NAME COMPONENT TYPE PHASE HEALTHY STATUS AGE web-demo deployment ref-objects workflowSuspending true 47h 7. 查看应用在各个集群上的运行状态 kubectl amc get deployment web-demo -n demo -m all预期输出 Run on ManagedCluster managedcluster-cxxx (cluster1-hangzhou) No resources found in demo namespace #第一次新部署应用工作流还没有开始部署cluster1-hangzhou Run on ManagedCluster managedcluster-cxxx (cluster2-beijing) No resources found in demo namespace #第一次新部署应用工作流还没有开始部署cluster2-beijiing等待人工审核 Run on ManagedCluster managedcluster-cxxx (cluster1-beijing) NAME READY UP-TO-DATE AVAILABLE AGE web-demo 5/5 5 5 47h #Deployment在cluster1-beijing集群上运行正常 8. 人工审核通过部署集群 cluster2-beijingcluster1-hangzhou。 kubectl amc workflow resume web-demo -n demo Successfully resume workflow: web-demo 9. 查看应用的部署状态。 kubectl get app web-demo -n demo预期输出running 表示应用运行正常 NAME COMPONENT TYPE PHASE HEALTHY STATUS AGE web-demo deployment ref-objects running true 47h10. 查看应用在各个集群上的运行状态 kubectl amc get deployment web-demo -n demo -m all 预期输出 Run on ManagedCluster managedcluster-cxxx (cluster1-hangzhou) NAME READY UP-TO-DATE AVAILABLE AGE web-demo 1/1 1 1 47h Run on ManagedCluster managedcluster-cxxx (cluster2-beijing) NAME READY UP-TO-DATE AVAILABLE AGE web-demo 5/5 5 5 2d Run on ManagedCluster managedcluster-cxxx (cluster1-beijing) NAME READY UP-TO-DATE AVAILABLE AGE web-demo 5/5 5 5 47h 11. 查看应用在各个集群上的 Ingress 状态 kubectl amc get ingress -n demo -m all 预期结果每个集群的 Ingress 运行正常公网 IP 分配成功。 Run on ManagedCluster managedcluster-cxxx (cluster1-hangzhou) NAME CLASS HOSTS ADDRESS PORTS AGE web-demo nginx web-demo.example.com 47.xxx.xxx.xxx 80 47h Run on ManagedCluster managedcluster-cxxx (cluster2-beijing) NAME CLASS HOSTS ADDRESS PORTS AGE web-demo nginx web-demo.example.com 123.xxx.xxx.xxx 80 2d Run on ManagedCluster managedcluster-cxxx (cluster1-beijing) NAME CLASS HOSTS ADDRESS PORTS AGE web-demo nginx web-demo.example.com 182.xxx.xxx.xxx 80 2d流量管理 通过配置全局流量管理自动检测应用运行状态并在异常发生时自动切换流量到监控集群。 1. 配置全局流量管理实例web-demo.example.com 为示例应用的域名请替换为实际应用的域名并设置 DNS 解析到全局流量管理的 CNAME 接入域名。 2. 在已创建的 GTM 示例中创建 2 个地址池 pool-beijing包含 2 个北京集群的 Ingress IP 地址负载均衡策略为返回全部地址实现北京 2 个集群的负载均衡。Ingress IP 地址可通过在主控实例上运行 “kubectl amc get ingress -n demo -m all” 获取。pool-hangzhou包含 1 个杭州集群的 Ingress IP 地址。3. 在地址池中开启健康检查检查失败的地址将从地址池中移除不再接收流量。 4. 配置访问策略设置主地址池为北京地址池备地址池为杭州地址池。正常流量都有北京集群应用处理当所有北京集群应用不可用时自动切换到杭州集群应用处理。 部署验证 1. 正常情况所有有流量都有北京的 2 个集群上的应用处理每个集群各处理 50% 流量。 for i in {1..50}; do curl web-demo.example.com; sleep 3; done This is env cluster1-beijing ! Config file is {database-host: beijing-db.pg.aliyun.com }This is env cluster1-beijing ! Config file is {database-host: beijing-db.pg.aliyun.com }This is env cluster2-beijing ! Config file is {database-host: beijing-db.pg.aliyun.com }This is env cluster1-beijing ! Config file is {database-host: beijing-db.pg.aliyun.com }This is env cluster2-beijing ! Config file is {database-host: beijing-db.pg.aliyun.com }This is env cluster2-beijing ! Config file is {database-host: beijing-db.pg.aliyun.com }2. 当集群 cluster1-beijing 上的应用异常时GTM 将所有的流量路由到 cluster2-bejing 集群处理。 for i in {1..50}; do curl web-demo.example.com; sleep 3; done ... html headtitle503 Service Temporarily Unavailable/title/head body centerh1503 Service Temporarily Unavailable/h1/center hrcenternginx/center /body /htmlThis is env cluster2-beijing ! Config file is {database-host: beijing-db.pg.aliyun.com }This is env cluster2-beijing ! Config file is {database-host: beijing-db.pg.aliyun.com }This is env cluster2-beijing ! Config file is {database-host: beijing-db.pg.aliyun.com }This is env cluster2-beijing ! Config file is {database-host: beijing-db.pg.aliyun.com }3. 当集群 cluster1-beijing 和 cluster2-beijing 上的应用同时异常时GTM 将流量路由到 cluster1-hangzhou 集群处理。 for i in {1..50}; do curl web-demo.example.com; sleep 3; done headtitle503 Service Temporarily Unavailable/title/head body centerh1503 Service Temporarily Unavailable/h1/center hrcenternginx/center /body /html html headtitle503 Service Temporarily Unavailable/title/head body centerh1503 Service Temporarily Unavailable/h1/center hrcenternginx/center /body /html This is env cluster1-hangzhou ! Config file is {database-address: hangzhou-db.pg.aliyun.com }This is env cluster1-hangzhou ! Config file is {database-address: hangzhou-db.pg.aliyun.com }This is env cluster1-hangzhou ! Config file is {database-address: hangzhou-db.pg.aliyun.com }This is env cluster1-hangzhou ! Config file is {database-address: hangzhou-db.pg.aliyun.com }总结 本文侧重介绍了通过 ACK One 的多集群应用分发功能可以帮助企业管理多集群环境通过多集群主控示例提供的统一的应用下发入口实现应用的多集群分发差异化配置工作流管理等分发策略。结合 GTM 全局流量管理快速搭建管理两地三中心的应用容灾系统。 除多集群应用分发外ACK One 更是支持连接并管理任何地域、任何基础设施上的 Kubernetes 集群提供一致的管理和社区兼容的 API支持对计算、网络、存储、安全、监控、日志、作业、应用、流量等进行统一运维管控。阿里云分布式云容器平台简称 ACK One是面向混合云、多集群、分布式计算、容灾等场景推出的企业级云原生平台。更多内容可以查看产品介绍分布式云容器平台 ACK One[8]。 相关链接 [1] 开启多集群管理主控实例 如何开启多集群管理及如何查看和删除主控实例_容器服务 ACK-阿里云 [2] 通过管理关联集群 如何添加、查看和移除关联集群_容器服务 ACK-阿里云 [3] 创建 GTM 实例 阿里云登录 - 欢迎登录阿里云安全稳定的云计算服务平台 [4] 应用分发功能 应用分发 - 容器服务 ACK - 阿里云 [5] 应用复制分发 应用复制分发 - 容器服务 ACK - 阿里云 [6] 应用分发差异化配置 应用分发差异化配置 - 容器服务 ACK - 阿里云 [7] 应用集群间灰度分发 应用集群间灰度分发 - 容器服务 ACK - 阿里云 [8] 分布式云容器平台 ACK One 分布式云容器平台ACK One_多云容器管理_分布式云资源管理_云原生应用平台-阿里云 原文链接 本文为阿里云原创内容未经允许不得转载。
http://www.zqtcl.cn/news/402661/

相关文章:

  • 有没有做花卉种子的网站啊正规网站建设服务
  • 长沙网站建设公司招聘那个建设网站好
  • 网站开发视频下载网站优化关键词排名自己怎么做
  • 网站建设 流程咸宁网站建设哪家好
  • 建站公司兴田德润实惠钦州建设局网站
  • 高新区免费网站建设旅游网站开发设计与实现
  • 怎样做才能让网站帮忙送东西线上推广方案怎么做
  • 服装公司网站网页设计友情链接交换网站
  • 公司建设网站需要去哪报备网页挂马
  • 做网站需要代码吗秦皇岛在哪里
  • 番禺网站设计公司万网查询全部域名
  • 电子商务网站建设与运营的试题集团高端网站
  • 天津网站建设电话网页制作与设计调试分析
  • 深圳中建南方建设集团网站自己的网站建设
  • 有些网站怎么经常换域名北京宣传片制作公司
  • 网站改版降权多久恢复经典网站
  • 南昌建网站的公司中国专业做鞋子的网站
  • 做100个垂直网站网站建设外包
  • 网站开发图片素材营销软文的范文
  • 手机网站免费建设排行湖南公司响应式网站建设价位
  • 专业网站设计制作价格wordpress 动画特效
  • 如何找企业联系做网站网站内容建设的核心和根本是
  • 网站制作找如何判断一个网站是恶意网站
  • dedecms 网站导航建设自己网站的流程图
  • 临海城市建设网站石家庄做网站的公司有哪些
  • 东光网站建设淘宝店铺装修开个送快餐网站怎么做
  • 建设网站有哪些怎么自学室内设计与装修
  • 苏州建设工程协会网站汶上网站建设哪家便宜
  • 湖南手机版建站系统信息做360网站优化
  • 为什么学网站开发中国猎头公司排行榜