标签:sig ted 修改 icm container tar 名称 ase sources
kustomize是一个独立的工具,用于通过kustomization文件来自定义Kubernetes对象。
从1.14开始,Kubectl还支持使用kustomization文件管理Kubernetes对象。要查看在包含kustomization文件的目录中找到的资源,请运行以下命令:
kubectl kustomize <kustomization_directory>
要应用这些资源,请使用--kustomize或-k标志运行kubectl apply:
kubectl apply -k <kustomization_directory>
Kustomize是用于自定义Kubernetes配置的工具。它具有以下功能来管理应用程序配置文件:
kustomize功能列表:
字段 | 字段类型 | 字段功能说明 |
---|---|---|
namespace | string | 为所有资源添加名称空间 |
namePrefix | string | 此字段的值位于所有资源的名称之前 |
nameSuffix | sting | 该字段的值附加到所有资源的名称之后 |
commonLabels | map[string]string | 添加到所有资源和选择器的标签 |
commonAnnotations | map[string]string | 添加到所有资源的注释 |
resources | []string | 此列表中的每个条目都必须解析为现有资源配置文件 |
configmapGenerator | []ConfigMapArgs | 此列表中的每个条目都会生成一个ConfigMap |
secretGenerator | []SecretArgs | 此列表中的每个条目都会生成一个secret |
generatorOptions | GeneratorOptions | 修改所有ConfigMap和Secret生成器 |
bases | []string | 此列表中的每个条目都应解析到包含kustomization.yaml文件的目录 |
patchesStrategicMerge | []string | 此列表中的每个条目都应解析Kubernetes对象的战略合并补丁 |
patchesJson6902 | []Json6902 | 该列表中的每个条目都应解析为一个Kubernetes对象和一个Json Patch |
vars | []Var | 每个条目都是从一种资源的字段中捕获信息 |
images | []Image | 每个条目都将修改一个图像的名称,标签和/或摘要,而不创建补丁 |
configurations | []string | 此列表中的每个条目都应解析为一个包含Kustomize transfromer configuration |
crds | []string | 该列表中的每个条目都应解析为针对Kubernetes类型的OpenAPI定义文件 |
以下使用k8s官网的示例来演示一下,通过configmap配置redis:
maxmemory 2mb
maxmemory-policy allkeys-lr
cat <<EOF >./kustomization.yaml
configMapGenerator:
- name: example-redis-config
files:
- redis-config
EOF
apiVersion: v1
kind: Pod
metadata:
name: redis
spec:
containers:
- name: redis
image: redis:5.0.4
command:
- redis-server
- "/redis-master/redis.conf"
env:
- name: MASTER
value: "true"
ports:
- containerPort: 6379
resources:
limits:
cpu: "0.1"
volumeMounts:
- mountPath: /redis-master-data
name: data
- mountPath: /redis-master
name: config
volumes:
- name: data
emptyDir: {}
- name: config
configMap:
name: example-redis-config
items:
- key: redis-config
path: redis.conf
cat <<EOF >>./kustomization.yaml
resources:
- redis-pod.yaml
EOF
[root@kub01 k8sredis]# ll
total 12
-rw-r--r-- 1 root root 103 Jan 20 01:59 kustomization.yaml
-rw-r--r-- 1 root root 43 Jan 20 01:57 redis-config
-rw-r--r-- 1 root root 619 Jan 20 01:59 redis-pod.yaml
[root@kub01 k8sredis]# pwd
/opt/k8sredis
[root@kub01 k8sredis]# kubectl get pod -o wide
NAME READY STATUS RESTARTS AGE IP NODE NOMINATED NODE READINESS GATES
redis 1/1 Running 0 3h33m 10.244.0.13 kub01 <none> <none>
[root@kub01 k8sredis]#
[root@kub01 k8sredis]# kubectl exec -it redis redis-cli
127.0.0.1:6379> CONFIG GET maxmemory
1) "maxmemory"
2) "2097152"
使用kustomize进行Kubernetes对象的声明式管理
标签:sig ted 修改 icm container tar 名称 ase sources
原文地址:https://www.cnblogs.com/zmichael/p/12228838.html