非容器应用与K8s工作负载的服务网格化实践-序

本文涉及的产品
容器镜像服务 ACR,镜像仓库100个 不限时长
容器服务 Serverless 版 ACK Serverless,317元额度 多规格
容器服务 Serverless 版 ACK Serverless,952元额度 多规格
简介: 非容器应用的网格化是指将虚拟机或者裸金属上的应用加入服务网格的过程。这些应用网格化后可以和POD中的服务一样,具备服务网格的各种能力(比如流量转移、链路跟踪、安全请求等)。本系列将全面介绍如何基于阿里云服务网格(Alibabacloud ServiceMesh, ASM),将ECS上的应用网格化,使其与阿里云Kubernetes容器服务(Alibabacloud Container Service for Kubernetes, ACK)上的POD能够进行相互通信,且自身具备网格化的各项能力。

本系列将包含如下篇章:

  1. ASM-VM-PROXY的安装
  2. 基于ASM的Workload Entry实践
  3. 基于ASM的POD和VM互访实践-HTTP协议篇
  4. 基于ASM的POD和VM互访实践-GRPC协议篇
  5. 基于ASM的POD和VM混合流量转移实践
  6. 基于ASM的VM应用动态落迁实践
  7. 基于ASM的POD和VM可观测性实践

ASM-VM-PROXY是虚拟机网格化的通道,第1篇将介绍ASM-VM-PROXY的安装和使用。

WorkloadEntry是k8s集群与ecs集群通信的基础,本系列的第2篇将通过两个实践示例,把WorkloadEntry的用途和作用展示清楚,为后续pod和vm的互访、pod和vm混合场景中的流量转移打好理论基础。

接下来分别介绍基于http/grpc通信协议的POD和VM互访。各种编程语言实现的服务普遍通过http协议提供服务和彼此通信,因此http篇的目的是希望展示ecs网格化过程中最经典的场景。grpc篇的目的有两个,一个是单纯地展示基于grpc通信协议服务的网格化方案,另一个是希望为ecs上使用了其他服务发现方式的遗留服务,提供一种更简单的网格化思路——使用k8s作为唯一服务发现的模式,代替复杂且实现成本颇高的多服务发现模式。这种方案最大的好处是让envoy不被修改,安静且优雅地保持与社区发展一致。

POD和VM混合的场景是非容器应用的网格化最常见的场景,解决了这种场景下的流量转移,会让用户有信心将跑在ecs上的非容器应用进行网格化。虽然很多用户意愿上早就想网格化,但没有一篇这样的示例,会让用户多少有些不安。这是第4篇的初衷,这篇也是本系列的核心篇章。

VM应用动态落迁是指动态地将非容器服务加入和移出服务网格。第6篇的目的是展示如何对非容器应用进行流量控制、蓝绿部署,甚至最终将全部非容器应用都容器化,且这些热操作都是流量无损的。

第7篇可观测性的目的是展示非容器应用如何像POD中的服务一样,在网格化后具备全链路追踪、监控等能力的。

希望有kubernetes容器化迁移诉求的同学,能够通过本系列的各篇非容器应用网格化实践,完成如下图所示的迁移过程。

0-overview.png

声明

  1. 本系列前提是已经创建了一个ACK集群、一个ECS实例、一个ASM实例,且VM与ACK集群在同一个VPC和安全组内。可在本文基础上参考相关文档实现跨安全组和VPC的需求。出于稳定性和性价比考虑,建议尽量在同一VPC和安全组内实现。
  2. 本系列示例没有启用DNS组件。可在本文基础上使用DNS组件代替手动配置hosts。
  3. 本系列只将配置了WorkloadEntry的VM视为网格化,手动配置ServiceEntry但没有配置WorkloadEntry的VM不视为网格化。
相关实践学习
通过Ingress进行灰度发布
本场景您将运行一个简单的应用,部署一个新的应用用于新的发布,并通过Ingress能力实现灰度发布。
容器应用与集群管理
欢迎来到《容器应用与集群管理》课程,本课程是“云原生容器Clouder认证“系列中的第二阶段。课程将向您介绍与容器集群相关的概念和技术,这些概念和技术可以帮助您了解阿里云容器服务ACK/ACK Serverless的使用。同时,本课程也会向您介绍可以采取的工具、方法和可操作步骤,以帮助您了解如何基于容器服务ACK Serverless构建和管理企业级应用。 学习完本课程后,您将能够: 掌握容器集群、容器编排的基本概念 掌握Kubernetes的基础概念及核心思想 掌握阿里云容器服务ACK/ACK Serverless概念及使用方法 基于容器服务ACK Serverless搭建和管理企业级网站应用
目录
相关文章
|
1天前
|
Kubernetes Shell 容器
在k8S中,当一个Pod有多个容器时,如何连接到指定容器?
在k8S中,当一个Pod有多个容器时,如何连接到指定容器?
|
1天前
|
Kubernetes 容器 Perl
在K8S中,如何查看Pod中某个容器日志?
在K8S中,如何查看Pod中某个容器日志?
|
1天前
|
Kubernetes 负载均衡 网络协议
在K8S中,Pod能否实现对容器健康检查,如果服务有异常,该如何处理?
在K8S中,Pod能否实现对容器健康检查,如果服务有异常,该如何处理?
|
1天前
|
Kubernetes 容器 Perl
在k8S中,如何向Pod中指定容器传递环境变量?有哪些方式?
在k8S中,如何向Pod中指定容器传递环境变量?有哪些方式?
|
1天前
|
Kubernetes 算法 容器
在k8S中,Pod的容器重启策略有哪些?
在k8S中,Pod的容器重启策略有哪些?
|
1天前
|
Kubernetes 容器 Perl
在k8S中,如何实现Pod中容器的文件和宿主机之间相互拷贝?
在k8S中,如何实现Pod中容器的文件和宿主机之间相互拷贝?
|
1天前
|
Kubernetes 容器 Perl
在k8S中,如何查看Pod中上一个挂掉的容器日志?
在k8S中,如何查看Pod中上一个挂掉的容器日志?
|
3月前
|
Oracle 关系型数据库
oracle asm 磁盘显示offline
oracle asm 磁盘显示offline
179 2
|
3月前
|
存储 Oracle 关系型数据库
【数据库数据恢复】Oracle数据库ASM磁盘组掉线的数据恢复案例
oracle数据库ASM磁盘组掉线,ASM实例不能挂载。数据库管理员尝试修复数据库,但是没有成功。
【数据库数据恢复】Oracle数据库ASM磁盘组掉线的数据恢复案例
|
SQL Oracle 关系型数据库
Oracle ASM磁盘和磁盘组的常用SQL语句
Oracle ASM磁盘和磁盘组的常用SQL语句
259 0

相关产品

  • 容器服务Kubernetes版
  • 推荐镜像

    更多