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

本文涉及的产品
容器镜像服务 ACR,镜像仓库100个 不限时长
简介: 非容器应用的网格化是指将虚拟机或者裸金属上的应用加入服务网格的过程。这些应用网格化后可以和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不视为网格化。
相关实践学习
容器服务Serverless版ACK Serverless 快速入门:在线魔方应用部署和监控
通过本实验,您将了解到容器服务Serverless版ACK Serverless 的基本产品能力,即可以实现快速部署一个在线魔方应用,并借助阿里云容器服务成熟的产品生态,实现在线应用的企业级监控,提升应用稳定性。
云原生实践公开课
课程大纲 开篇:如何学习并实践云原生技术 基础篇: 5 步上手 Kubernetes 进阶篇:生产环境下的 K8s 实践 相关的阿里云产品:容器服务 ACK 容器服务 Kubernetes 版(简称 ACK)提供高性能可伸缩的容器应用管理能力,支持企业级容器化应用的全生命周期管理。整合阿里云虚拟化、存储、网络和安全能力,打造云端最佳容器化应用运行环境。 了解产品详情: https://www.aliyun.com/product/kubernetes
目录
相关文章
|
1月前
|
运维 Java Go
Go语言基础及其在容器化应用中的优势
【2月更文挑战第23天】本文首先介绍了Go语言的基本特性和优势,然后详细阐述了Go语言在容器化应用中的重要作用和独特优势。通过深入分析Go语言的语法简洁性、并发处理能力和内存管理特性,以及Docker容器技术的轻量级、可移植性和版本控制特点,本文旨在说明Go语言与Docker容器技术的结合能够显著提升应用的开发效率和部署灵活性,为现代软件开发和运维带来革命性的变革。
|
18天前
|
Kubernetes 容器
k8s容器时间与服务器时间不一致问题
k8s容器时间与服务器时间不一致问题
17 0
|
5天前
|
Kubernetes 监控 Cloud Native
构建高效云原生应用:基于Kubernetes的微服务治理实践
【4月更文挑战第13天】 在当今数字化转型的浪潮中,企业纷纷将目光投向了云原生技术以支持其业务敏捷性和可扩展性。本文深入探讨了利用Kubernetes作为容器编排平台,实现微服务架构的有效治理,旨在为开发者和运维团队提供一套优化策略,以确保云原生应用的高性能和稳定性。通过分析微服务设计原则、Kubernetes的核心组件以及实际案例,本文揭示了在多变的业务需求下,如何确保系统的高可用性、弹性和安全性。
11 4
|
6天前
|
JSON Kubernetes Go
无缝集成:在IntelliJ IDEA中利用Kubernetes插件轻松管理容器化应用
无缝集成:在IntelliJ IDEA中利用Kubernetes插件轻松管理容器化应用
15 0
无缝集成:在IntelliJ IDEA中利用Kubernetes插件轻松管理容器化应用
|
17天前
|
消息中间件 Kubernetes Kafka
Terraform阿里云创建资源1分钟创建集群一键发布应用Terraform 创建 Kubernetes 集群
Terraform阿里云创建资源1分钟创建集群一键发布应用Terraform 创建 Kubernetes 集群
14 0
|
20天前
|
Kubernetes 网络协议 Docker
K8S核心插件-coredns服务
K8S核心插件-coredns服务
15 0
|
25天前
|
存储 安全 算法
【C++ 17 包裹类 泛型容器 std::any】深入理解与应用C++ std::any:从泛型编程到多态设计
【C++ 17 包裹类 泛型容器 std::any】深入理解与应用C++ std::any:从泛型编程到多态设计
47 1
|
28天前
|
弹性计算 运维 Kubernetes
容器服务ACK常见问题之线上的K8s一直waiting如何解决
容器服务ACK(阿里云容器服务 Kubernetes 版)是阿里云提供的一种托管式Kubernetes服务,帮助用户轻松使用Kubernetes进行应用部署、管理和扩展。本汇总收集了容器服务ACK使用中的常见问题及答案,包括集群管理、应用部署、服务访问、网络配置、存储使用、安全保障等方面,旨在帮助用户快速解决使用过程中遇到的难题,提升容器管理和运维效率。
|
29天前
|
边缘计算 Kubernetes 负载均衡
容器编排技术在云计算中的应用
随着云计算技术的飞速发展,容器编排技术作为一种重要的部署和管理工具,正在逐渐成为云计算领域的热门话题。本文将介绍容器编排技术在云计算中的应用,探讨其在提高应用程序部署效率、资源利用率以及系统可靠性方面的优势,并分析其未来发展趋势。
|
30天前
|
人工智能 自然语言处理 Kubernetes
LLM 技术图谱(LLM Tech Map)& Kubernetes (K8s) 与AIGC的结合应用
LLM 技术图谱(LLM Tech Map)& Kubernetes (K8s) 与AIGC的结合应用
59 0

相关产品

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

    更多