(共556篇)
全部分类

使用kustomize管理资源
[ Docker ] 

kustomize 是 K8S 提供的另一种资源管理工具, 可以更为高效的管理资源配置文件

它提供三种功能:

  1. 从其他来源生成资源配置文件

从其他来源生成配置文件

以 ConfigMap 资源为例

使用 file 字段设置配置来源的文件路径

假设我们有一个app.propertys文件:

1
2
NAME=zhangsan
AGE=20

和一个 kustomization.yaml 的文件:

1
2
3
4
configMapGenerator:
  - name: configmap-1
    files:
      - app.propertys

现在可以通过以下方式生成一个 ConfigMap 的资源配置文件, 内容如下:

1
2
3
4
5
6
7
8
9
[root@node12 ~]# k kustomize
apiVersion: v1
data:
  app.propertys: |
    NAME=zhangsan
    AGE=20
kind: ConfigMap
metadata:
  name: configmap-1-ttd87dtbf6

要特别注意, 在这个 ConfigMap 资源中,文件名app.propertys作为一个 key, 保存在 data 中

使用 envs 字段从.env 文件中读取数据

假设我们有一个.env文件:

1
2
NAME=zhangsan
AGE=20

和一个 kustomization.yaml 的文件:

1
2
3
4
configMapGenerator:
  - name: configmap-1
    env:
      - .env

现在可以通过以下方式生成一个 ConfigMap 的资源配置文件, 内容如下:

1
2
3
4
5
6
7
8
[root@node12 ~]# k kustomize
apiVersion: v1
data:
  AGE: "20"
  NAME: zhangsan
kind: ConfigMap
metadata:
  name: configmap-1-7dbhtth748

注意: 与第一种不同的是, 通过 envs 加载的数据,直接保存在 data 中

通过 literals 字段以字面量的形式添加数据

假设有一个kustomization.yaml 的文件:

1
2
3
4
5
configMapGenerator:
  - name: configmap-1
    literals:
      - NAME=zhangsan
      - AGE=20

现在可以通过以下方式生成一个 ConfigMap 的资源配置文件, 内容如下:

1
2
3
4
5
6
7
8
[root@node12 ~]# k kustomize
apiVersion: v1
data:
  AGE: "20"
  NAME: zhangsan
kind: ConfigMap
metadata:
  name: configmap-1-7dbhtth748

这种方式的结果与前面第二种通过 envs 的方式是相同的

使用 kustomize 生成的配置文件创建资源

1
2
3
# -k告诉kubeclt将要使用kustomize生成的配置文件创建或者更新资源, 不能与-f 或者 -R同时使用
# directory-name 必须包含一个名为kustomize.yaml的文件
kubectl apply -k directory-name