怎么把那些老旧的虚拟机也弄进Istio服务网格里,实际操作咋整呢
- 问答
- 2026-01-25 12:00:35
- 9
把那些老旧的虚拟机也弄进Istio服务网格里,实际操作起来确实需要多费些手脚,因为它不是原生的Kubernetes应用,但完全可行,核心思路就是让Istio的控制平面以为这台虚拟机是网格里一个特殊的、没有Pod的服务端点,下面我就按实际操作步骤给你讲一遍,你照着一步步来就行。
第一步,先给虚拟机“办个入职手续”——做前期准备。 你得先确保你的虚拟机能够和Kubernetes集群里的Istio控制平面“说上话”。(来源:Istio官方文档《虚拟机快速开始》)这是最关键的基础,简单说,就是网络要通,虚拟机要能解析并访问到集群内Istio的Pilot(现在叫Istiod)和证书签发机构,通常你需要给虚拟机配置一个能解析集群内服务域名的DNS,或者更直接点,在虚拟机的hosts文件里把Istiod的地址写死,防火墙规则要放开,让虚拟机和集群节点之间能互访必要的端口,比如15012端口(用于下发配置)和15017端口(用于签发证书)。

第二步,给虚拟机“安装门禁和通讯器”——安装Sidecar代理。
虚拟机本身不会自动运行Envoy(那个负责流量转发的Sidecar代理),所以你得手动去安装和配置它。(来源:Tetrate博客文章《将虚拟机集成到Istio服务网格中》)你需要从Istio的安装包中,找到Debian或RPM格式的istio-sidecar.deb/istio-sidecar.rpm包,拷贝到虚拟机上用包管理器安装,安装好后,重点来了:你需要生成一套专门给这个虚拟机用的配置文件,这个文件里要写明这个服务叫什么(比如my-old-vm-service),属于哪个命名空间,以及最重要的——网络地址(一个虚拟的IP,不能和集群内其他服务冲突),这个文件通常放在/var/lib/istio/envoy/目录下,它就像是虚拟机的“工牌”,告诉网格“我是谁”。
第三步,让虚拟机“安全入职”——配置证书和身份。
在服务网格里,所有成员都必须有可验证的身份,通信必须加密,对于虚拟机,Istio使用“工作负载证书”来给它发“身份证”。(来源:阿里云开发者社区文章《Istio服务网格中虚拟机与K8s服务统一管理》)你需要先在Kubernetes集群里为这个虚拟机创建一个ServiceAccount和一个WorkloadGroup,WorkloadGroup是专门为虚拟机这类非Pod工作负载设计的模板,定义了它的规范,在虚拟机上,你需要运行一个叫istio-token的服务(安装Sidecar时通常会带),它会自动用你提供的服务账户令牌,去向集群内的Istiod申请一个X.509证书,有了这个证书,虚拟机上的Envoy代理就能和安全地与网格内其他服务进行TLS加密通信了。

第四步,完成“注册报到”——将虚拟机作为服务端点加入网格。
现在虚拟机有了代理,有了身份,但网格还不知道它具体提供什么服务、IP地址是什么,你需要创建一个标准的Kubernetes Service,但它的选择器(Selector)是空的,因为背后没有Pod,你需要创建一个Istio特有的资源叫WorkloadEntry。(来源:Istio官方文档《虚拟机快速开始》)在这个WorkloadEntry里,你会明确指定:这个服务(对应前面创建的Service)在虚拟机上的具体地址(虚拟机的真实IP)和端口,并且通过标签把它和之前创建的WorkloadGroup关联起来,这样,Istio在分发配置时,就会把WorkloadEntry里定义的地址,作为那个Kubernetes Service的后端端点,一并下发到网格里所有Sidecar(包括其他Pod和这台虚拟机)的路由表中。
第五步,测试和验证“是否成功融入集体”。
全部配置完成后,重启虚拟机上的Istio Sidecar代理进程,你可以登录到虚拟机,用curl命令尝试访问网格内的某个服务(比如一个Bookinfo的微服务),同时带上Istio生成的跟踪头,看看请求能不能通,并且观察链路追踪系统(如Jaeger)里是否出现了这台虚拟机的身影,反过来,你也可以从网格里的一个Pod,去访问你为虚拟机创建的那个Kubernetes Service地址,看请求是否能被正确地路由到虚拟机上部署的应用,如果双向通信都成功了,并且流量也带上了Istio的mTLS加密和监控指标,那恭喜你,这台老旧的虚拟机就正式成为Istio服务网格里的平等一员了。
整个过程听起来步骤多,但本质就是手动完成Kubernetes Pod原本自动完成的事情:安装代理、配置身份、注册服务端点,只要网络打通,证书配置正确,剩下的就是一些声明式资源的创建,一旦接入,这台虚拟机上的老应用就能享受到流量管理、安全策略和可观测性这些网格能力了。
本文由芮以莲于2026-01-25发表在笙亿网络策划,如有疑问,请联系我们。
本文链接:http://xyko.haoid.cn/wenda/85710.html
