linkerd官方文档中文版
  • Introduction
  • 官方文档
    • 概况
      • 介绍
      • linkerd是什么?
    • 入门
      • 概况
      • 本地运行
      • 用docker运行
      • 在kubernetes中运行
      • 在DC/OS中运行
      • 用istio运行
      • 在ECS中运行
      • 管理
    • 特性
      • 概况
      • 负载均衡
      • 熔断
      • 服务发现
      • 动态请求路由
      • 重试次数和截止时间
      • TLS
      • HTTP代理集成
      • 透明代理
      • gRPC
      • 分布式跟踪
      • 仪器仪表
    • 配置
      • 概况
      • linkerd
      • namerd
    • 高级
      • 概述
      • 路由
      • namerd
      • dtabs
      • 部署
      • 插件
    • 支持
      • 常见问题
      • 获取帮助
      • 外部资源
      • 联系我们
    • 企业
      • 企业
  • 官方博客
    • 超越轮循:为了延迟的负载均衡
    • LINKERD:用于微服务的TWITTER风格可操作性
  • 全文标签总览
Powered by GitBook
On this page
  • 安装Istio
  • 部署应用程序
  • 试试看
  • Metrics
  • Ingress
  • Egress
  • 结论
  1. 官方文档
  2. 入门

用istio运行

Previous在DC/OS中运行Next在ECS中运行

Last updated 6 years ago

是连接,管理和保护微服务的开放平台。Linkerd 用于云原生应用程序的开源服务网格。Istio 和 Linkerd 可以一起工作,Istio充当控制平台, 跨越 Linkerd 实例。

Linkerd的Istio集成是实验性的,目前支持,,和。对,,, 和 的支持即将推出。

安装Istio

Istio + Linkerd由5个主要组成部分组成:

  • Istio Pilot 向服务网格提供路由规则,策略和服务发现信息。

  • Istio Mixer 从服务网格中获取指标,并将其传递给后端,如Prometheus。

  • Linkerd 服务网格代理所有的服务间流量。

  • Linkerd Ingress,作为 提供服务的Linkerd。

  • Linkerd Egress,处理从集群发出的所有流量的Linkerd。

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

  1. 按照 中的步骤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 Service Mesh

    • Linkerd Ingress

    • Linkerd Egress

部署应用程序

为了使用 init container 轻松部署应用程序,可以安装 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 container 手动添加到您的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

试试看

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 功能的更多信息,请继续阅读。

Metrics

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

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

请注意,一些指标可能会空缺,直到 Linkerd 添加对它们的支持。

Ingress

Egress

结论

以上部分介绍如何和Istio一起使用Linkerd,包括如何配置 ingress,egress 和 metrics 收集。这种集成目前处于实验状态; Istio正在迅速演进,而我们继续强化继承功能集。

3.(可选)按照中的步骤启用 metrics 收集。

为了使您的应用程序使用Linkerd服务网格,您可以使用名为 istio-init 的 进行部署。 此 init container 配置 iptables 规则以通过Linkerd服务网格透明地重定向所有传出的请求。

尝试实战 Istio 以查看所有情况。请注意,要部署 BookInfo 示例,您需要使用linkerd-inject 命令:

您现在可以按照 中的描述的那样查看 Grafana dashboard 。

Ingress可以使用Ingress资源进行配置,如 中所述。请注意,要启用HTTPS,您必须按照 而不是 Ingress 资源中所述在入口 linkerd 配置中启用TLS 。

具有与集群中任何服务不匹配的 Host/Authority header的所有请求都将发送到专用的出口Linkerd。然后,出口Linkerd将请求转发到集群外的服务(如果指定了端口443,则使用HTTPS)。没有必要创建一个 ExternalName 服务资源。有关更多详细信息,请参阅 。

Istio
路由规则
入口
出口
度量
故障注入
目的地策略
路由策略
ACL
auth
ingress controller
Istio安装指南
Istio安装指南
init container
Request Routing Demo
Istio文档
Istio Ingress 指南
Linkerd Ingress博客文章
Linkerd Egress 博客文章