云原生之旅 - 6)不能错过的一款 Kubernetes 应用编排管理神器 Kustomize( 三 )

dev env 里面将replicas设置成1,用config.json 生成 configMap

云原生之旅 - 6)不能错过的一款 Kubernetes 应用编排管理神器 Kustomize

文章插图
云原生之旅 - 6)不能错过的一款 Kubernetes 应用编排管理神器 Kustomize

文章插图
{    "SOME_CONFIG": "/demo/path"}config.json
deployment-patch.yaml 里面也将container resource request/limit 配置设置小一点,采用 patchesStrategicMerge 与 common 和 base里面的deployment资源合并 。
云原生之旅 - 6)不能错过的一款 Kubernetes 应用编排管理神器 Kustomize

文章插图
云原生之旅 - 6)不能错过的一款 Kubernetes 应用编排管理神器 Kustomize

文章插图
apiVersion: apps/v1kind: Deploymentmetadata:  name: NAME_PLACEHOLDERspec:  template:    spec:      containers:      - name: app        resources:          limits:            cpu: 1            memory: 1Gi          requests:            cpu: 200m            memory: 256Mideployment-patch.yaml
另外还采用了 patch 的方式,改了每个资源的name --> demo-app
以及images 替换了原来的 image name and tag.
kustomize 命令如下
 kustomize build demo-manifests/services/demo-app/dev > demo-app.yaml如果用 kubectl 命令的话,示例如下
kubectl kustomize services/demo-app/dev/ > demo-app.yaml最终结果
云原生之旅 - 6)不能错过的一款 Kubernetes 应用编排管理神器 Kustomize

文章插图
云原生之旅 - 6)不能错过的一款 Kubernetes 应用编排管理神器 Kustomize

文章插图
apiVersion: v1kind: Namespacemetadata:  labels:    app: demo-app  name: demo---apiVersion: v1kind: ServiceAccountmetadata:  labels:    app: demo-app    managed-by: Kustomize  name: demo-app  namespace: demo---apiVersion: v1data:  config.json: |-    {        "SOME_CONFIG": "/demo/path"    }kind: ConfigMapmetadata:  labels:    app: demo-app  name: demo-app-config-t7c64mbtt2  namespace: demo---apiVersion: v1kind: Servicemetadata:  labels:    app: demo-app    managed-by: Kustomize  name: demo-app  namespace: demospec:  ports:  - port: 8080    protocol: TCP    targetPort: http  selector:    app: demo-app    managed-by: Kustomize  type: ClusterIP---apiVersion: apps/v1kind: Deploymentmetadata:  labels:    app: demo-app    managed-by: Kustomize  name: demo-app  namespace: demospec:  replicas: 1  selector:    matchLabels:      app: demo-app      managed-by: Kustomize  template:    metadata:      labels:        app: demo-app        managed-by: Kustomize    spec:      containers:      - image: wadexu007/demo:1.0.0        imagePullPolicy: IfNotPresent        livenessProbe:          failureThreshold: 5          httpGet:            path: /pizzas            port: 8080          initialDelaySeconds: 10          periodSeconds: 40          timeoutSeconds: 1        name: app        ports:        - containerPort: 8080          name: http        readinessProbe:          failureThreshold: 5          httpGet:            path: /pizzas            port: 8080          initialDelaySeconds: 10          periodSeconds: 20          timeoutSeconds: 1        resources:          limits:            cpu: 1            memory: 1Gi          requests:            cpu: 200m            memory: 256Mi        securityContext:          allowPrivilegeEscalation: false        volumeMounts:        - mountPath: /app/conf/config.json          name: config-volume          subPath: config.json      serviceAccountName: demo-app      volumes:      - configMap:          name: demo-app-config-t7c64mbtt2        name: config-volume

经验总结扩展阅读