将虚拟机添加到 Istio 服务网格更简单的方法

2022-05-26

814

将虚拟机添加到 Istio 服务网格

许多 Istio 用户希望将他们的虚拟机连接到他们的服务网格,但通常的过程可能非常繁琐且难以自动化。本系列介绍了一种更简单的方法,可以将外部应用程序安全地连接到在服务网格中运行的应用程序。该解决方案对于某些用例(例如单向 VM 到网状通信)非常有效,并且对替代方案进行了一些权衡。


将虚拟机添加到 Istio 服务网格

如 第 1 部分所述,为了降低虚拟机初始化的复杂性,我们不会使用当前 记录的方法将其注册到 Istio 。相反,我们将直接向虚拟机颁发证书并手动配置在虚拟机中运行的特使实例,以通过东/西网关与网格通信。首先,我们需要组织我们的证书,以便服务网格应用程序信任这些外部工作负载。


证书管理

由于 Istio 不会为虚拟机颁发证书,因此需要通过其他方式创建和管理它。为了让 Istio 信任来自虚拟机的流量,颁发的证书必须植根于与服务网格应用程序相同的信任链中。

将虚拟机添加到 Istio 服务网格


组织证书的最简单方法是创建共享根 CA。然后,可以颁发两个中间 CA 证书并用于创建 Istio 工作负载和虚拟机证书。虚拟机 CA 可以很容易地由 Hashicorp 的 Vault 等第三方证书管理系统管理。


Istio 设置和部署

将虚拟机添加到 Istio 服务网格


Istio 接受外部安全连接的设置非常简单。使用 IstioOperator 配置需要创建东/西网关并将其配置为通过连接。


创建东西方网关

下面是一个安装 istiod 和上面显示的东西向网关的 Istio 示例。 PILOT_SKIP_VALIDATE_TRUST_DOMAIN 启用,以便虚拟机可以拥有自己的 SPIFFE ID 格式。

将虚拟机添加到 Istio 服务网格


我们还需要告诉东西网关将安全请求转发到网格内的预期目的地。为此,我们创建了一个简单的 Istio 网关配置。




配置自动向 AUTO_PASSTRHOUGH 东西网关注册网格应用程序。您可以通过运行以下 istioctl 命令来查看可用的服务。


请务必注意您希望与之通信的网格应用程序的 SNI 值,因为 Envoy 配置中将需要它们。




虚拟机配置


由于我们不会将虚拟机中的 envoy 连接到外部 xDS 服务器,因此我们需要手动提供其配置。我们需要为虚拟机应用程序创建一个入站侦听器以进行通信。


Envoy 监听器和路由器


然后我们需要配置流量需要发送到哪里。如“Istio 设置和部署”部分所示,所有流量都将通过 mTLS 代理到网格应用程序。下面是我们需要创建的集群资源,以便与网格应用程序进行安全通信。这也是我们使用生成的证书来加密通信的地方。

sni

该字段是东西向网关用来将流量转发到正确的网状应用程序的字段。它需要匹配 istioctl proxy-config listener 上面命令中显示的网格应用程序的侦听器。


alpn协议

当从 sidecar 到 sidecar 通信时,Istio 使用自己的 alpn 协议。需要与网状服务建立直接的 mTLS 通信。这也需要使用必要的 Istio 扩展来构建 envoy 以使用这些协议。例如,如果在 docker-compose 中运行 Envoy,请使用 istio-proxy Envoy 构建来安装它们。


tls_certificates

生成的客户端 mTLS 证书应在此集群配置块中安装和引用。

-----------------------------------

博客原文出处:


gRPC/JSON 转码


要使基于 HTTP REST 的应用程序能够与基于 gRPC 的应用程序通信,请更新侦听器以进行转码。这要求网格应用程序的原型定义也存在于虚拟机上。


------------------------------------------------------------------

原文出处:https://www.solo.io/blog/add-virtual-machines-to-istio-service-mesh/


------------------------------------------------------------------


行云创新 

- 全国领先的一站式云原生开发平台厂商,国家高新技术企业

- 上汽、格力、华为、中信银行等各行业头部企业信赖

- 阿里云战略投资企业

行云创新是领域的佼佼者,其产品在广西贵港智慧城市、长三角产学研一体化创新平台、海尔工业互联网、中信银行核心系统建设等项目中起到关键的支撑作用。同时,作为信创工委会成员,行云打造业界领先的“信创与非信创统管、一键向信创迁移”的方案,并在某大型国有银行取得了良好的实践效果。



SolarMesh,高效可视化平台

基于 Istio 及容器技术,提供流量监控和管理,提供完善的非侵入式服务治理解决方案。帮助企业在纷繁复杂的微服务调度中快速定位问题,增强研发效率。

SolarMesh,让不再难学难用,让服务网格在企业落地更加平滑、安全、稳定。

SolarMesh 在线体验环境 地址>




技术交流
我们建立了多个云原生技术交流群,其中有来自Oracle、Citrix、华为、腾讯等国内外云计算专家,立即扫码,拉你进群。目前已有2000+开发者加入我们......
云原生厂商 云原生技术服务商
在云原生时代,行云创新致力于通过赋能开发者,实现企业快速迭代与交付,大幅提升创新效率。
产品下载