首页 > 编程知识 正文

专家呼吁尽快淘汰二冲程燃油助力车(跃迁引擎可以实现吗)

时间:2023-05-04 21:44:21 阅读:80877 作者:2992

集装箱化的部署APP可以降低企业的成本,提高研发效率,释放运输工作人员。 据Gartner预测,到2022年,75%的企业将在生产中运行集装箱化的APP。 Kubernetes是企业部署集装箱化APP的首选框架。 由于部署和运输Kubernetes的复杂性,越来越多的客户选择将业务从ECS或自建Kubernetes迁移到Alibaba云管理型Kubernetes —— ACK。 但是,如何保证业务流量的顺利转移成为了一大课题。 cloudcontrollermanager(CCM )是ACK的系统核心组件,负责Kubernetes与云中的CLB、VPC、DNS等核心产品的协作。 如果将服务类型设置为Type=LoadBalancer,则CCM将创建或配置服务的Alibaba云负载平衡CLB。 对应于该服务的后端端点或群集节点发生更改时,CCM会自动更新CLB的后端虚拟服务器组。 此外,广告还提供了许多阿里巴巴云评论,以支持丰富的负载平衡能力。 CCM最近推出了新功能——,支持将群集内节点和群集外ECS装载到同一CLB后端。 此功能可以解决业务容器化过程中流量平稳迁移的难题。

场景一:应用容器化改造(流量平滑迁移)

对于一个CLB,支持向集群内和集群外的节点传输通信量 1 )操作步骤 登录到CLB控制台以创建CLB,然后使用clbid(lb- 3359 www.Baidu.com /更多 ')服务创建将服务. beta.kubernetes.io/Ali云负载平衡器-强制-复盖-监听器设置为false,不管理拦截信息。 CCM自动创建对应的虚拟服务器组。 CAT EOF|Kube CTL应用程序- f - API版本: v1 kind:服务 元数据: 注释: service.beta.kubernetes.io/Alibaba -云负载平衡器- id : ' l B-xxxx ' service.beta.kubernetes.io/Ali云-负载平衡-聚合-监听器3360 '假' 标签: app: nignx name: my-nginx-svc namespace :默认设置 spec: 端口: -端口: 80 协议:芯片 目标端口: 80 选择器: app: nginx 类型:负载平衡器 EOF登录CLB控制台,创建监听,与虚拟服务器组关联登录CLB控制台,向虚拟服务器组手动添加集群外ECS,设置预期结果2 ) 配置完成后,CLB的虚拟服务组中将同时显示集群中的节点和集群外的ECS。 集群内APP进行缩放时,集群外的ECS节点不会受到影响。 支持

场景二:金丝雀发布

金丝雀发行版,将通信按比例传输到群集内和群集外的节点 在迁移过程中,通常需要逐步将通信从库存ECS迁移到Kubernetes集群。 cm支持通过annotation service.beta.Kubernetes.io/Ali云负载平衡器权重为kubernetes群集设置权重,从而实现对通信的 1 )注意事项 不能跨越cxxxxx

LB 复用虚拟服务器组一个虚拟服务器组只能与一个端口关联集群内节点权重由 CCM 组件设置,集群外 ECS 权重需要用户手动设置

2)操作步骤

登录 CLB 控制台创建 CLB、监听及虚拟服务器组,记录 CLB ID ("lb-xxxx") 及虚拟服务器组 Id ("rsp-xxx")手动在虚拟服务器组中添加集群外 ECS 并设置权重创建 ServiceapiVersion: v1 kind: Service metadata: annotations: service.beta.kubernetes.io/alicloud-loadbalancer-id: "lb-xxxxx" service.beta.kubernetes.io/alicloud-loadbalancer-vgroup-ids: "80:rsp-xxx" # 集群内部权重为20% service.beta.kubernetes.io/alicloud-loadbalancer-weight: "20" name: nginx-svc namespace: default spec: ports: - name: http port: 80 protocol: TCP targetPort: 80 selector: app: nginx sessionAffinity: None type: LoadBalancer

3)预期结果

配置完成后,在 CLB 的虚拟服务组里既可以看到集群内的节点,也可以看到集群外的 ECS,集群节点的权重按照 annotation 配置。集群内应用进行扩缩容时,集群外的 ECS 节点不受影响。

场景三:多集群业务流量多活与灾备

对于一个 CLB,支持将流量转发至多个 Kubernetes 集群内

企业用户会采取多种措施以保障应用的高可用性,如创建多个集群进行备份、容灾等。这要求业务流量可以通过一个 CLB 接入多个 Kubernetes 集群中,并且支持为 Kubernetes 集群设置不同的权重,如下图所示。

1)注意事项

不能跨 CLB 复用虚拟服务器组一个虚拟服务器组只能与一个端口关联两个集群均已配置 Cluster Id,否则两个集群中的 service 需要不同名称

2)操作步骤

登录 CLB 控制台创建 CLB、监听及虚拟服务器组,记录 CLB ID ("lb-xxxx") 及虚拟服务器组 Id ("rsp-xxx")集群 A 中创建 Serivce-A,权重设置为 20%apiVersion: v1 kind: Service metadata: annotations: service.beta.kubernetes.io/alicloud-loadbalancer-id: "lb-xxxxx" service.beta.kubernetes.io/alicloud-loadbalancer-vgroup-ids: "80:rsp-xxx" service.beta.kubernetes.io/alicloud-loadbalancer-weight: "20" name: service-A namespace: default spec: ports: - name: http port: 80 protocol: TCP targetPort: 80 selector: app: nginx sessionAffinity: None type: LoadBalancer

3)预期结果

配置完成后,在 clb 的虚拟服务组里既可以看到集群 A 内的节点,也可以看到集群 B 的节点。集群节点的权重按照 annotation 自动设置。集群内应用进行扩缩容时,CLB 后端虚拟服务器组会自动更新。

总结

出于降本增效的考虑,越来越多的企业采用容器化方式部署应用。在业务迁移过程中,如何保障业务流量不受损成为一大难题。对于电商类应用而言,业务流量下跌往往会导致交易量下跌,造成重大损失。游戏类应用对业务流量也十分敏感,短暂的流量中断都会明显地影响游戏用户体验;交通类应用的流量下跌会影响交通流量管制、交通故障排险效率。保障业务流量不受损是保障用户业务正常运转的底线。

CCM 发布的支持在同一个 CLB 后端挂载集群内节点和集群外 ECS 的功能,可以一举解决迁移过程中流量中断的难题。同时,还支持将业务流量转发至多个 Kubernetes 集群内,支撑备份、容灾等需求,保障业务高可用。

作者 | gtdpy(xhdbz)

本文为阿里云原创内容,未经允许不得转载。

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。