zoukankan      html  css  js  c++  java
  • Linkerd 2.10(Step by Step)—使用 Kustomize 自定义 Linkerd 的配置

    Linkerd 2.10 系列

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

    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 -
    
    我是为少
    微信:uuhells123
    公众号:黑客下午茶
    加我微信(互相学习交流),关注公众号(获取更多学习资料~)
    
  • 相关阅读:
    提升键盘可访问性和AT可访问性
    2个小技巧
    设计模式(6): 数据抽象与业务封装
    目录
    医疗经济学
    医疗场景下的行为经济学(三)
    抗体、免疫
    医疗场景下的行为经济学(二)
    医疗场景下的行为经济学(一)
    单身社会如何生活-日本纪录片ガイアの夜明け系列
  • 原文地址:https://www.cnblogs.com/hacker-linner/p/14891161.html
Copyright © 2011-2022 走看看