前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Linkerd 2.10(Step by Step)—使用 Helm 安装 Linkerd

Linkerd 2.10(Step by Step)—使用 Helm 安装 Linkerd

作者头像
为少
发布2021-07-07 11:18:38
8460
发布2021-07-07 11:18:38
举报
文章被收录于专栏:黑客下午茶

Linkerd 2.10 系列

Linkerd 2.10 中文手册持续修正更新中:

  • https://linkerd.hacker-linner.com

Linkerd 可以选择通过 Helm 安装,而不是使用 linkerd install 命令。

先决条件:identity certificates

Linkerd 的身份组件(identity component)需要设置 信任锚证书(trust anchor certificate)和 带有密钥(key)的颁发者证书(issuer certificate)。这些必须使用 ECDSA P-256 算法,并且需要由用户提供给 Helm (与使用可以自动生成这些的 linkerd install CLI 时不同)。

添加 Linkerd 的 Helm 存储库

代码语言:javascript
复制
# To add the repo for Linkerd2 stable releases:
helm repo add linkerd https://helm.linkerd.io/stable

# To add the repo for Linkerd2 edge releases:
helm repo add linkerd-edge https://helm.linkerd.io/edge

以下说明使用 linkerd 存储库。要安装边缘版本,只需替换为 linkerd-edge

Helm 安装过程

代码语言:javascript
复制
# set expiry date one year from now, in Mac:
exp=$(date -v+8760H +"%Y-%m-%dT%H:%M:%SZ")
# in Linux:
exp=$(date -d '+8760 hour' +"%Y-%m-%dT%H:%M:%SZ")

helm install linkerd2 \
  --set-file identityTrustAnchorsPEM=ca.crt \
  --set-file identity.issuer.tls.crtPEM=issuer.crt \
  --set-file identity.issuer.tls.keyPEM=issuer.key \
  --set identity.issuer.crtExpiry=$exp \
  linkerd/linkerd2

对于低于 v3 的 Helm 版本,必须专门传递 --name 标志。在 Helm v3 中,它已被弃用,并且是上面指定的第一个参数。

chart 值将从 chart 的 values.yaml 文件中选取。

你可以通过提供你自己的 values.yaml 文件 并通过 -f 选项来覆盖该文件中的值, 或者使用 --set 标志系列覆盖特定的值, 就像我们上面对证书(certificates)所做的那样。

禁用代理初始化容器

如果使用 CNI 安装,请确保将 --set cniEnabled=true 标志添加到 helm install 命令中。

设置高可用性

该 chart 包含一个文件 values-ha.yaml, 它覆盖了一些默认值,以便在高可用性场景下进行设置, 类似于 linkerd install 中的 --ha 选项。该文件中指定了诸如更高数量的副本(replicas)、更 高的 memory/cpu 限制(limits)和关联(affinities)等值。

你可以通过获取 chart 文件来获得 values-ha.yaml

代码语言:javascript
复制
helm fetch --untar linkerd/linkerd2

然后使用 -f 标志提供覆盖文件,例如:

代码语言:javascript
复制
## see above on how to set $exp
helm install linkerd2 \
  --set-file identityTrustAnchorsPEM=ca.crt \
  --set-file identity.issuer.tls.crtPEM=issuer.crt \
  --set-file identity.issuer.tls.keyPEM=issuer.key \
  --set identity.issuer.crtExpiry=$exp \
  -f linkerd2/values-ha.yaml \
  linkerd/linkerd2

自定义命名空间

要将 Linkerd 安装到与默认 linkerd 不同的命名空间,请覆盖 Namespace 变量。

默认情况下,chart 使用 config.linkerd.io/admission-webhooks: disabled 标签 创建控制平面命名空间(control plane namespace)。控制平面必须正常工作。这意味着 chart 无法 与 Helm v2 的 --namespace 选项一起使用。如果您依赖单独的工具来创建控制平面命名空间,请确保:

  1. namespace 标有 config.linkerd.io/admission-webhooks: disabled
  2. installNamespace 设置为 false
  3. namespace 变量被你的命名空间的名称覆盖

在 Helm v3 中,--namespace 选项必须与现有命名空间一起使用。

Helm 升级过程

确保您的本地 Helm 存储库已更新:

代码语言:javascript
复制
helm repo update

helm search linkerd2 -v {{% latestversion %}}
NAME                    CHART VERSION          APP VERSION            DESCRIPTION
linkerd/linkerd2        <chart-semver-version> {{% latestversion %}}    Linkerd gives you observability, reliability, and securit...

helm upgrade 命令有许多标志,允许您自定义其行为。应该特别注意的是 --reuse-values--reset-values 以及 当 charts 从 version 更改为 version 和/或 通过 --set--set-file 应用覆盖时它们的行为。总而言之,可以观察到以下突出案例:

  • 没有覆盖的 --reuse-values - 所有值都被重用
  • 带有覆盖的 --reuse-values - 除了被覆盖的值之外的所有值都被重用
  • 没有覆盖的 --reset-values - 没有重用值,并且在升级过程中应用了提供的版本中的所有更改
  • 带有覆盖的 --reset-values - 没有值被重用,并且从提供的版本中更改的值与覆盖的一起应用
  • 无标志和无覆盖 - 默认情况下将使用 --reuse-values
  • 无标志和无覆盖 - 默认情况下将使用 --reset-values

牢记所有这些,您必须决定是要重复使用 chart 中的值还是移动到新 chart 中指定的值。建议的做法是使用 values.yaml 文件来存储您对 chart 的所有自定义覆盖。升级前,检查 chart 是否有重大更改(即重命名或移动 key 等)。您可以查阅 edge 或 stable chart 文档, 具体取决于您要升级到哪一个。如果有,请对您的 values.yaml 文件进行相应的更改。然后你可以使用:

代码语言:javascript
复制
helm upgrade linkerd2 linkerd/linkerd2 --reset-values -f values.yaml --atomic

--atomic 标志将确保在升级操作失败的情况下回滚所有更改

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2021-06-19,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 黑客下午茶 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • Linkerd 2.10 系列
  • 先决条件:identity certificates
  • 添加 Linkerd 的 Helm 存储库
  • Helm 安装过程
  • 禁用代理初始化容器
  • 设置高可用性
  • 自定义命名空间
  • Helm 升级过程
相关产品与服务
SSL 证书
腾讯云 SSL 证书(SSL Certificates)为您提供 SSL 证书的申请、管理、部署等服务,为您提供一站式 HTTPS 解决方案。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档