zl程序教程

您现在的位置是:首页 >  其他

当前栏目

《Linkerd官方文档》与Istio一起运行Linkerd

文档官方 运行 一起 istio Linkerd
2023-06-13 09:13:33 时间
与Istio一起运行

Istio是一个连接,管理和保护微服务的开放平台。Linkerd是云本机应用程序的开源服务网格。Istio和Linkerd可以一起工作,Istio可作为跨Linkerd实例的控制平面。

Linkerd的Istio集成是实验性的,目前支持 路由规则, 入口, 出口和 指标。即将推出支持 故障注入, 目标策略, 路由策略, ACL和身份验证。

安装Istio

Istio + Linkerd由5个主要组件组成:

Istio Pilot向服务网格提供路由规则,策略和服务发现信息。 Istio Mixer从服务网格中提取指标,并将它们传递到Prometheus等后端。 Linkerd服务网格代理所有服务间通信。 Linkerd Ingress,作为入口控制器的Linkerd 。 Linkerd Egress,一个Linkerd,用于处理从集群发出的所有流量。

Linkerd目前支持Istio 0.1.6。要安装Istio,请按照下列步骤操作:

部署您的应用程序

为了让您的应用程序使用Linkerd服务网格,您可以使用名为istio-init的初始化容器来部署它 。此init容器将iptables规则配置为通过Linkerd服务网格透明地重定向所有传出请求。

要使用此init容器轻松部署您的应用程序,您可以安装该 linkerd-inject实用程序

go get github.com/linkerd/linkerd-inject

然后用它来部署你的应用程序。

kubectl apply -f (linkerd-inject -f samples/apps/bookinfo/bookinfo.yaml)

(Minikube用户需要通过linkerd-inject使用-useServiceVip标志)

或者,您可以手动添加init容器到您的Kubernetes配置,而不是使用linkerd-inject:

initContainers:

- name: init-linkerd

 image: linkerd/istio-init:v1

 env:

 - name: NODE_NAME

 valueFrom:

 fieldRef:

 fieldPath: spec.nodeName

 args:

 - -p

 - "4140" # port of the Daemonset Linkerds incoming router

 - -s

 - "L5D" # linkerd Daemonset service name, uppercased

 - -m

 - "false" # set to true if running in minikube

 imagePullPolicy: IfNotPresent

 securityContext:

 capabilities:

 add:

 - NET_ADMIN

尝试Istio 请求路由演示 以查看所有正在运行的内容。请注意,要部署BookInfo示例,您需要使用linkerd-inject命令:

kubectl apply -f (linkerd-inject -f samples/apps/bookinfo/bookinfo.yaml)

而不是istioctl kube-inject命令:

kubectl apply -f (istioctl kube-inject -f samples/apps/bookinfo/bookinfo.yaml)

有关Istio + Linkerd集成中特定Istio功能如何工作的更多信息,请继续阅读。

如果您还没有这样做,请安装指标收集组件:

kubectl apply -f install/kubernetes/addons/prometheus.yaml

kubectl apply -f install/kubernetes/addons/grafana.yaml

kubectl apply -f install/kubernetes/addons/servicegraph.yaml

您现在可以按照Istio文档中的描述查看Grafana仪表板 。

请注意,在Linkerd添加对它们的支持之前,有些指标可能会丢失。

如Istio入口指南中所述,可以使用Ingress资源配置 Ingress。请注意,要启用HTTPS,您必须在入站Linkerd配置中启用TLS,如 Linkerd Ingress博客文章 中所述,而不是在Ingress资源中。

所有具有与集群中的任何服务都不匹配的主机/机构标题的请求将被发送到专用出口Linkerd。出口Linkerd将请求转发到集群外的服务(如果指定了端口443,则使用HTTPS)。没有必要创建 ExternalName服务资源。查看Linkerd Egress博客文章以获取更多详细信息。

以上各节介绍如何将Linkerd与Istio一起使用,包括如何配置入口,出口和度量收集。这种整合目前处于实验状态; Istio正在迅速发展,我们将继续使集成功能集更加具体化。

原创文章,作者:ItWorker,如若转载,请注明出处:https://blog.ytso.com/93955.html

开源通信