Linkerd 2.10 系列
- 快速上手 Linkerd v2.10 Service Mesh(服务网格)
- 腾讯云 K8S 集群实战 Service Mesh—Linkerd2 & Traefik2 部署 emojivoto 应用
- 详细了解 Linkerd 2.10 基础功能,一起步入 Service Mesh 微服务架构时代
- Linkerd 2.10—将您的服务添加到 Linkerd
- Linkerd 2.10—自动化的金丝雀发布
- Linkerd 2.10—自动轮换控制平面 TLS 与 Webhook TLS 凭证
- Linkerd 2.10—如何配置外部 Prometheus 实例
- Linkerd 2.10—配置代理并发
- Linkerd 2.10—配置重试
- Linkerd 2.10—配置超时
- Linkerd 2.10—控制平面调试端点
- Linkerd 2.10—使用 Kustomize 自定义 Linkerd 的配置
- Linkerd 2.10—使用 Linkerd 进行分布式跟踪
- Linkerd 2.10—调试 502s
- Linkerd 2.10—使用每个路由指标调试 HTTP 应用程序
- Linkerd 2.10—使用请求跟踪调试 gRPC 应用程序
- Linkerd 2.10—导出指标
- Linkerd 2.10—暴露 Dashboard
- Linkerd 2.10—生成您自己的 mTLS 根证书
- Linkerd 2.10—获取每条路由指标
- Linkerd 2.10—混沌工程之注入故障
- Linkerd 2.10—优雅的 Pod 关闭
- Linkerd 2.10—Ingress 流量
Linkerd 2.10 中文手册持续修正更新中:
Linkerd 可以选择通过 Helm 安装,而不是使用 linkerd install
命令。
先决条件:identity certificates
Linkerd 的身份组件(identity component
)需要设置
信任锚证书(trust anchor certificate
)和
带有密钥(key)的颁发者证书(issuer certificate
)。
这些必须使用 ECDSA P-256
算法,并且需要由用户提供给 Helm
(与使用可以自动生成这些的 linkerd install
CLI 时不同)。
添加 Linkerd 的 Helm 存储库
# 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 安装过程
# 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
:
helm fetch --untar linkerd/linkerd2
复制代码
然后使用 -f
标志提供覆盖文件,例如:
## 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
选项一起使用。
如果您依赖单独的工具来创建控制平面命名空间,请确保:
namespace
标有config.linkerd.io/admission-webhooks: disabled
installNamespace
设置为false
namespace
变量被你的命名空间的名称覆盖
在 Helm v3 中,--namespace
选项必须与现有命名空间一起使用。
Helm 升级过程
确保您的本地 Helm
存储库已更新:
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
文件进行相应的更改。然后你可以使用:
helm upgrade linkerd2 linkerd/linkerd2 --reset-values -f values.yaml --atomic
复制代码
--atomic
标志将确保在升级操作失败的情况下回滚所有更改
我是为少
微信:uuhells123
公众号:黑客下午茶
加我微信(互相学习交流),关注公众号(获取更多学习资料~)
复制代码