Linkerd 2.10(Step by Step)—使用 Kustomize 自定义 Linkerd 的配置

本文涉及的产品
可观测可视化 Grafana 版,10个用户账号 1个月
简介: Linkerd 2.10(Step by Step)—使用 Kustomize 自定义 Linkerd 的配置

Kustomize 可用于以一致的方式修补 linkerd install 的输出, 而不是分叉 Linkerd 安装和升级过程。这允许自定义安装以添加特定于安装的功能。


首先,将 install 的输出保存到 YAML 文件中。这将是 Kustomize 用于修补和生成添加到集群中的内容的基础资源。


linkerd install > linkerd.yaml


升级时,请确保使用 linkerd upgrade 中的内容填充此文件。使用最新的 kustomize 版本,可以使用 exec plugin 插件自动执行此操作。


接下来,创建一个 kustomization.yaml 文件。此文件将包含 Kustomize 的说明,列出基本资源以及对这些资源执行的转换。现在,这看起来很空:


resources:
- linkerd.yaml


现在,让我们看看如何进行一些示例自定义。

Kustomize 允许任意数量的补丁(patches)、变换(transforms)和生成器(generators)。这些示例一次显示一个修改,但可以在单个 kustomization.yaml 文件中进行尽可能多的修改。


添加优先级(PriorityClass)



控制平面中有几个组件可以从与关键 PriorityClass 相关联中受益。虽然目前不支持将此配置作为 linkerd install 的标志,但使用 Kustomize 添加并不难。

首先,创建一个名为 priority-class.yaml 的文件, 该文件将创建一个 PriorityClass 资源。


apiVersion: scheduling.k8s.io/v1
description: Used for critical linkerd pods that must run in the cluster, but
  can be moved to another node if necessary.
kind: PriorityClass
metadata:
  name: linkerd-critical
value: 1000000000


1000000000 是最大值。允许用户定义的优先级,相应调整。

接下来,创建一个名为 patch-priority-class.yaml 的文件,该文件将包含覆盖。此覆盖将解释需要修改的内容。


apiVersion: apps/v1
kind: Deployment
metadata:
  name: linkerd-identity
spec:
  template:
    spec:
      priorityClassName: linkerd-critical
---
apiVersion: apps/v1
kind: Deployment
metadata:
  name: linkerd-controller
spec:
  template:
    spec:
      priorityClassName: linkerd-critical


然后,将其作为战略合并选项添加到 kustomization.yaml


resources:
- priority-class.yaml
- linkerd.yaml
patchesStrategicMerge:
- patch-priority-class.yaml


将此应用到您的集群需要获取 kustomize build 的输出并 将其通过管道传输到 kubectl apply。例如,您可以运行:


kubectl kustomize build . | kubectl apply -f -


修改 Grafana 配置



有兴趣为 Grafana 启用身份验证吗?可以一次性修改 ConfigMap 来做到这一点。不幸的是,每次 linkerd upgrade 发生时,这些更改最终都会被还原。相反,创建一个名为 grafana.yaml 的文件并添加您的修改:


kind: ConfigMap
apiVersion: v1
metadata:
  name: grafana-config
data:
  grafana.ini: |-
    instance_name = grafana
    [server]
    root_url = %(protocol)s://%(domain)s:/grafana/
    [analytics]
    check_for_updates = false


然后,将其作为战略合并选项添加到 kustomization.yaml


resources:
- linkerd.yaml
patchesStrategicMerge:
- grafana.yaml


最后,通过使用 kustomize build 生成 YAML 并将 输出传送到 kubectl apply 将其应用到您的集群。


kubectl kustomize build . | kubectl apply -f -
相关实践学习
通过可观测可视化Grafana版进行数据可视化展示与分析
使用可观测可视化Grafana版进行数据可视化展示与分析。
相关文章
|
6月前
OpenKruise金丝雀发布过程中,创建出了canary service但没有canary deploy,新老实例均属于同一个deploy,类似多批次发布
OpenKruise金丝雀发布过程中,创建出了canary service但没有canary deploy,新老实例均属于同一个deploy,类似多批次发布
43 1
|
Prometheus Cloud Native 数据可视化
Linkerd 2.10(Step by Step)—4. 如何配置外部 Prometheus 实例
Linkerd 2.10(Step by Step)—4. 如何配置外部 Prometheus 实例
143 0
|
存储 Kubernetes API
Linkerd 2.10(Step by Step)—将 GitOps 与 Linkerd 和 Argo CD 结合使用
Linkerd 2.10(Step by Step)—将 GitOps 与 Linkerd 和 Argo CD 结合使用
651 0
Linkerd 2.10(Step by Step)—将 GitOps 与 Linkerd 和 Argo CD 结合使用
|
存储 数据可视化 应用服务中间件
Linkerd 2.10(Step by Step)—使用 Linkerd 进行分布式跟踪
Linkerd 2.10(Step by Step)—使用 Linkerd 进行分布式跟踪
231 0
Linkerd 2.10(Step by Step)—使用 Linkerd 进行分布式跟踪
|
JSON Kubernetes 安全
Linkerd 2.10(Step by Step)—多集群通信
Linkerd 2.10(Step by Step)—多集群通信
278 0
Linkerd 2.10(Step by Step)—多集群通信
|
JSON Kubernetes 监控
Linkerd 2.10(Step by Step)—2. 自动化的金丝雀发布
Linkerd 2.10(Step by Step)—2. 自动化的金丝雀发布
175 0
Linkerd 2.10(Step by Step)—2. 自动化的金丝雀发布
|
Kubernetes Docker 容器
Linkerd 2.10(Step by Step)—安装 Linkerd
Linkerd 2.10(Step by Step)—安装 Linkerd
348 0
|
Kubernetes 关系型数据库 MySQL
Linkerd 2.10(Step by Step)—1. 将您的服务添加到 Linkerd
Linkerd 2.10(Step by Step)—1. 将您的服务添加到 Linkerd
153 0
|
存储 算法 容器
Linkerd 2.10(Step by Step)—使用 Helm 安装 Linkerd
Linkerd 2.10(Step by Step)—使用 Helm 安装 Linkerd
276 0
|
Kubernetes 安全 网络协议
Linkerd 2.10(Step by Step)—暴露 Dashboard
Linkerd 2.10(Step by Step)—暴露 Dashboard
233 0