服务网格和无服务器部署模型代表了微服务架构演进的下一阶段。Service mesh使开发人员能够专注于业务功能开发,而不是管理非功能性的微服务功能,如监控、跟踪、容错和服务等。
开源服务网格项目,包括Istio、LinkerD和Kuma,使用sidecar即可直接内置在应用程序中的专用基础设施层,来实现服务网格功能。因此,例如,开发人员可以使用Jaeger构建Istio服务网格,在分布式网络系统上改进云原生微服务的监控和跟踪。
在微服务中实现服务网格的下一阶段,开发人员可以使用事件驱动的执行模式推进其无服务器开发。它不仅仅是一种全新的方法;它还试图使业务流程从24x7x365正常运行时间现代化到按需缩放。开发人员可以使用以下开源无服务器项目之一来利用无服务器部署的特点和好处。例如,Knative是在Kubernetes平台上开发无服务器应用程序的一种更快、更容易的方法。
想象一下,将服务网格和无服务器相结合,进行更先进的云原生微服务开发和部署。这种组合架构允许您配置其他网络设置,如自定义域、互传输层安全(mTLS)证书和JSON Web令牌身份验证。
这里有一个在Istio上设置服务网格和在Knative Service上实现无服务器的例子。
1.Add Istio with sidecar injection
安装 Istio 服务网格时,需要设置 autoInject: enabled 配置用于自动添加 sidecar。
2.为mTLS网络启用Sidecar
要使用knative-serving命名空间和您希望应用程序pod运行的另一个命名空间之间的mTLS网络通信,请启用Sidecar。
如果您为Istio服务网格和Knative安装了本地网关,则默认集群网关名称将是Knative服务和应用程序部署的knative-local-gateway。
3.为Knative服务部署应用程序
创建一个Knative服务资源YAML文件(例如myservice.yml),为Knative服务启用Sidecar。
将sidecar.istio.io/inject=”true”注释添加到服务资源中。
在代码中应该注意以下几点:
(1)添加Sidecar injection注解。
(2)启用JSON Web令牌(JWT)身份验证。
(3)在外部容器注册表(例如DockerHub、Quay.io)中将应用程序映像替换为您的映像。
应用上面的Knative服务资源:
$kubectl apply-fmyservice.yml
另外需要注意:请务必登录Kubernetes集群中的正确命名空间以部署示例应用程序。
好了,本文到此结束。如果对编程、计算机、程序员方面感兴趣的话,欢迎私信联系我,随时交流!点个关注,是对我莫大的鼓励!
举报/反馈