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

原文链接: http://ifeve.com/linkerd-run-with-istio/

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

与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,请按照下列步骤操作:

  1. 按照Istio安装指南中的步骤1-4 安装istioctl二进制文件,并根据需要说明集群的RBAC。
  2. 运行kubectl apply -f https://raw.githubusercontent.com/linkerd/linkerd-examples/master/istio/istio-linkerd.yml将安装:
    • Istio Pilot
    • Istio Mixer
    • Linkerd服务网格
    • Linkerd Ingress
    • Linkerd Egress
  3. (可选)按照“ 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 Linkerd's 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正在迅速发展,我们将继续使集成功能集更加具体化。

原创文章,转载请注明: 转载自并发编程网 – ifeve.com本文链接地址: 《Linkerd官方文档》与Istio一起运行Linkerd

你可能感兴趣的:(容器技术)