快速上手
欢迎来到 Linkerd
! 🎈
在本指南中,我们将引导您了解如何将 Linkerd
安装到您的 Kubernetes
集群中。
然后我们将部署一个示例应用程序来展示 Linkerd
的功能。
本指南旨在引导您了解 Linkerd
的基础知识。首先,您将在本地计算机上安装 CLI
(命令行界面)。
使用此 CLI
,然后您将 控制平面
安装到您的 Kubernetes
集群上。
最后,您将通过向它们添加 Linkerd
的 数据平面
来 网格化(mesh)
您自己的一个或多个服务。
Step 0: 设置
在我们做任何操作之前,我们需要确保您可以访问 Kubernetes
集群并在
本地机器上运行 kubectl
命令。(如果您还没有 Kubernetes
集群,
一个简单的选择是在您的本地机器上运行一个。有很多方法可以做到这一点,
包括 kind、k3d、
Docker for Desktop
等更多。)
通过运行以下命令验证您的 Kubernetes
设置:
kubectl version --short
您应该看到包含 Client Version
和 Server Version
组件的输出。
现在我们有了集群,我们将安装 Linkerd CLI
并使用它来验证您的集群
是否能够托管 Linkerd
控制平面。
(注意:如果您使用的是 GKE
“私有集群”,则需要一些
额外的步骤才能继续下一步。)
Step 1: 安装 CLI
如果这是您第一次运行 Linkerd
,则需要将 linkerd
命令行
界面 (CLI
) 下载到本地机器上。CLI
将允许您与 Linkerd deployment
进行交互。
要手动安装 CLI
,请运行:
curl -fsL https://run.linkerd.io/install | sh
请务必按照说明将其添加到您的 path
中。
(或者,如果您使用 Homebrew,则可以
使用 brew install linkerd
安装 CLI
。
您还可以通过
Linkerd releases 页面
直接下载 CLI
。)
安装后,使用以下命令验证 CLI
是否正常运行:
linkerd version
您应该会看到 CLI
版本以及 Server version: unavailable
。
这是因为您尚未在集群上安装 控制平面
。别担心—我们会尽快解决这个问题。
Step 2: 验证您的 Kubernetes 集群
Kubernetes
集群可以通过多种不同的方式进行配置。
在我们安装 Linkerd
控制平面之前,我们需要检查并验证所有配置是否正确。
要检查您的集群是否已准备好安装 Linkerd
,请运行:
linkerd check --pre
如果有任何检查未通过,请确保按照提供的链接并在继续之前解决这些问题。
Step 3: 安装控制平面到你的集群
现在您已经在本地运行了 CLI
,并且集群已经准备就绪,是时候安装 控制平面
了。为此,请运行:
linkerd install | kubectl apply -f -
在此命令中,linkerd install
命令生成一个 Kubernetes manifest
,
其中包含所有必要的 控制平面
资源(如果您好奇,可随时检查此清单输出)。将此清单通过管道传输到 kubectl apply
然后
指示 Kubernetes
将这些资源添加到您的集群中。
根据集群 Internet
连接的速度,控制平面
需要一两分钟才能完成安装。
通过运行以下命令等待 控制平面
准备就绪(并验证您的安装):
linkerd check
Step 4: 安装 demo app
恭喜,Linkerd
安装成功!但是,它还没有做任何事情。
要查看 Linkerd
的运行情况,我们需要一个应用程序。
让我们安装一个名为 Emojivoto
的演示应用程序。
Emojivoto
是一个简单的独立 Kubernetes
应用程序,
它混合使用 gRPC
和 HTTP
调用,允许用户对他们最喜欢的表情符号进行投票。
通过运行以下命令将 Emojivoto
安装到 emojivoto
命名空间中:
curl -fsL https://run.linkerd.io/emojivoto.yml | kubectl apply -f -
此命令将 Emojivoto
安装到您的集群上,但尚未在其上
激活 Linkerd
— 我们需要先 mesh
应用程序,然后 Linkerd
才能发挥其魔力。
在对它进行 mesh
之前,让我们先看看 Emojivoto
的自然状态。
我们将通过将流量转发到它的 web-svc
服务来做到这一点,以便我们可以将浏览器指向它。
通过运行以下命令将 web-svc
本地转发到端口 8080
:
kubectl -n emojivoto port-forward svc/web-svc 8080:80
现在访问 localhost:8080。
点击周围,您可能会注意到 emojivoto 的某些部分有点坏了!
例如,如果你点击一个甜甜圈表情符号(donut emoji
),
你会得到一个 404
页面。别担心,这些错误是故意的。
(在后面的指南中,我们将向您展示如何使用 Linkerd 来识别此问题。)
安装并运行 Emoji
后,我们准备对它进行 *mesh*,即向其中添加 Linkerd
的 数据平面代理
。
由于 Kubernetes
的滚动部署,我们可以在不停机的情况下在实时应用程序上执行此操作。
通过运行以下命令将您的 Emojivoto
应用程序网格化:
kubectl get -n emojivoto deploy -o yaml \
| linkerd inject - \
| kubectl apply -f -
此命令检索在 emojivoto
命名空间中运行的所有部署,通过 linkerd inject
运行它们的清单,
然后将其重新应用到集群。(linkerd inject
命令只是在 pod
规范中添加 annotations
,
指示 Linkerd
在创建 pod
时将 proxy
注入到其中。)
与 install
一样,inject
是一个纯文本操作,这意味着你可以
在使用之前检查输入和输出。一旦管道进入 kubectl apply
,
Kubernetes
将执行滚动部署并使用 数据平面
的 代理
更新每个 pod
。
恭喜! 您现在已将 Linkerd
添加到应用程序中!
就像 控制平面
一样,可以在 数据平面
一侧验证一切是否按应有的方式工作。检查您的 数据平面
:
linkerd -n emojivoto check --proxy
Step 5: 探索 Linkerd !
也许最后一步有点不尽如人意。我们在 Emojivoto
中添加了 Linkerd
,
但应用程序没有明显变化!这是 Linkerd
设计的一部分——它尽量不干扰一个正常运行的应用程序。
让我们仔细看看 Linkerd
实际上在做什么。去做这个,
我们需要安装一个 *扩展*。Linkerd
的核心 控制平面 非常小,
因此 Linkerd
附带了一些扩展,这些扩展为 Linkerd
添加了非关键但通常有用的功能,包括各种仪表板。
对于本指南,我们将需要以下其中一项:
- viz 扩展,将安装集群上的指标堆栈(
metrics stack
);或者 - buoyant-cloud 扩展,将连接到托管的指标堆栈。
您可以安装一个或两个扩展。要安装 viz
扩展,请运行:
linkerd viz install | kubectl apply -f - # install the on-cluster metrics stack
要安装 buoyant-cloud
扩展,请运行:
curl -fsL https://buoyant.cloud/install | sh # get the installer
linkerd buoyant install | kubectl apply -f - # connect to the hosted metrics stack
安装扩展程序后,让我们最后一次验证所有内容:
linkerd check
安装并运行 控制平面
和 扩展
后,我们现在准备探索 Linkerd
!如果您安装了 viz
扩展,请运行:
linkerd viz dashboard &
你应该看到这样的屏幕:

如果您安装了 buoyant-cloud
扩展,请运行:
linkerd buoyant dashboard &
你应该看到这样的屏幕:
点击周围,探索,玩得开心!看看您是否可以找到每个 Emojivoto
组件的实时指标,
并确定哪个组件出现了部分故障。(有关这方面的更多信息,请参阅下面的调试教程。)
就是这样!👏
恭喜!以下是一些建议的后续步骤:
- 了解如何使用
Linkerd
调试 Emojivoto 中的错误。 - 了解有关在不停机的情况下将您自己的服务网格化到 Linkerd 的更多信息。
- 了解有关 Linkerd 的架构
- 了解如何为长期集群设置自动控制平面 mTLS 凭证轮换。