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

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

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

https://linkerd.hacker-linner.com

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

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

  1. linkerd install > linkerd.yaml 

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

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

  1. resources: 
  2. - linkerd.yaml 

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

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

添加优先级(PriorityClass)

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

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

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

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

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

  1. apiVersion: apps/v1 
  2. kind: Deployment 
  3. metadata: 
  4.   name: linkerd-identity 
  5. spec: 
  6.   template: 
  7.     spec: 
  8.       priorityClassName: linkerd-critical 
  9. --- 
  10. apiVersion: apps/v1 
  11. kind: Deployment 
  12. metadata: 
  13.   name: linkerd-controller 
  14. spec: 
  15.   template: 
  16.     spec: 
  17.       priorityClassName: linkerd-critical 

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

  1. resources: 
  2. - priority-class.yaml 
  3. - linkerd.yaml 
  4. patchesStrategicMerge: 
  5. - patch-priority-class.yaml 

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

  1. kubectl kustomize build . | kubectl apply -f - 

修改 Grafana 配置

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

  1. kind: ConfigMap 
  2. apiVersion: v1 
  3. metadata: 
  4.   name: grafana-config 
  5. data: 
  6.   grafana.ini: |- 
  7.     instance_name = grafana 
  8.  
  9.     [server] 
  10.     root_url = %(protocol)s://%(domain)s:/grafana/ 
  11.  
  12.     [analytics] 
  13.     check_for_updates = false 

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

  1. resources: 
  2. - linkerd.yaml 
  3. patchesStrategicMerge: 
  4. - grafana.yaml 

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

  1. kubectl kustomize build . | kubectl apply -f - 

 【编辑推荐】

 

责任编辑:姜华 来源: 黑客下午茶
相关推荐

2021-06-22 06:24:57

Linkerd Ingress 流量网络技术

2021-06-16 17:42:48

Linkerd 配置CPU

2021-06-17 14:29:39

Linkerd 分布式跟踪Linkerd 2.1

2021-06-15 05:45:56

Linkerd annotations网络技术

2021-06-17 06:13:29

Linkerd Prometheus 网络技术

2021-06-22 06:41:38

Linkerd 安装多集群组件网络技术

2021-06-22 06:16:24

Linkerd books webapp

2021-06-24 07:20:21

Linked GitOps Argo CD

2021-06-15 05:52:33

Linkerd canary网络技术

2021-06-16 06:31:55

Linkerd 2.1Step by SteWebhook TLS

2021-06-29 13:09:07

服务配置文件

2022-09-04 21:17:03

高可用Linkerd

2022-08-21 07:17:16

LinkerdKubernetes服务网格

2021-12-11 22:21:00

服务配置文件

2011-04-19 14:02:09

SSAS

2010-09-08 09:41:03

私有云部署

2021-12-08 17:54:55

架构控制平面

2009-04-22 17:18:29

Vxworks驱动加载step by ste

2021-08-09 20:17:19

协议ServerSpeaks

2022-08-28 19:58:59

LinkerdKubernetes
点赞
收藏

51CTO技术栈公众号