当前位置:首页 > Web开发 > 正文

比如从其他文件中设置ConfigMap和Secret 设置资源的跨领域

2024-03-31 Web开发

标签:

使用kustomize进行Kubernetes东西的声明式打点

kustomize是一个独立的工具,用于通过kustomization文件来自界说Kubernetes东西。

从1.14开始,Kubectl还撑持使用kustomization文件打点Kubernetes东西。要检察在包罗kustomization文件的目录中找到的资源,请运行以下命令:

kubectl kustomize <kustomization_directory>

要应用这些资源,请使用--kustomize或-k标识表记标帜运行kubectl apply:

kubectl apply -k <kustomization_directory>

Kustomize是用于自界说Kubernetes配置的工具。它具有以下成果来打点应用措施配置文件:

从其他来源孕育产生资源,好比从其他文件中设置ConfigMap和Secret

设置资源的跨范围,在项目中为所有Kubernetes资源设置跨范围字段是很常见的,好比为所有资源设置不异的名称空间,添加不异的标签集,添加不异的注释集

构成和定制资源调集,Kustomize撑持差别资源的组合,kustomization.yaml文件中的resources字段界说要包罗在配置中的资源列表

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:

首先创建redis的配置文件信息redis-config,文件内容如下:

maxmemory 2mb maxmemory-policy allkeys-lr

从redis-config文件创建一个包罗ConfigMap的kustomization.yaml

cat <<EOF >./kustomization.yaml configMapGenerator: - name: example-redis-config files: - redis-config EOF

界说redis的pod配置信息,,redis-pod.yaml:

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

将pod资源配置添加到kustomization.yaml

cat <<EOF >>./kustomization.yaml resources: - redis-pod.yaml EOF

检察已经创建的文件

[[email protected] 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 [[email protected] k8sredis]# pwd /opt/k8sredis

温馨提示: 本文由Jm博客推荐,转载请保留链接: https://www.jmwww.net/file/web/31120.html