ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

【K8S】helm chart多环境部署最佳实践-示例

2019-08-05 11:52:39  阅读:476  来源: 互联网

标签:name 示例 chart PARAM nginx values yaml helm 123456


Chart.yaml

apiVersion: v1
appVersion: "1.0"
description: A Helm chart for Kubernetes
name: nginx
version: 0.1.0

values.yaml

# Default values for nginx.
# This is a YAML-formatted file.
# Declare variables to be passed into your templates.

replicaCount: 2

image:
  repository: nginx
  tag: 1.15-alpine

envs:
  PARAM_JVMTOOL: "123456"
  PARAM_SPRING: "654321"

resources:
  requests:
    cpu: "0.1"
    memory: "256M"

values-dev.yaml

# Default values for nginx.
# This is a YAML-formatted file.
# Declare variables to be passed into your templates.

envs:
  PARAM_AAA: "123456_aaa_dev"
  PARAM_BBB: "123456_bbb_dev"
  PARAM_CCC: "123456_ccc_dev"
  PARAM_DDD: "123456_ddd_dev"

resources:
  limits:
    cpu: "0.5"
    memory: "512M"

values-test.yaml

# Default values for nginx.
# This is a YAML-formatted file.
# Declare variables to be passed into your templates.

envs:
  PARAM_AAA: "123456_aaa_test"
  PARAM_BBB: "123456_bbb_test"
  PARAM_CCC: "123456_ccc_test"
  PARAM_DDD: "123456_ddd_test"

resources:
  limits:
    cpu: "0.5"
    memory: "512M"

values-stage.yaml

# Default values for nginx.
# This is a YAML-formatted file.
# Declare variables to be passed into your templates.

envs:
  PARAM_AAA: "123456_aaa_stage"
  PARAM_BBB: "123456_bbb_stage"
  PARAM_CCC: "123456_ccc_stage"
  PARAM_DDD: "123456_ddd_stage"

resources:
  limits:
    cpu: "0.5"
    memory: "1024M"

values-prod.yaml

# Default values for nginx.
# This is a YAML-formatted file.
# Declare variables to be passed into your templates.

envs:
  PARAM_AAA: "123456_aaa_prod"
  PARAM_BBB: "123456_bbb_prod"
  PARAM_CCC: "123456_ccc_prod"
  PARAM_DDD: "123456_ddd_prod"

resources:
  limits:
    cpu: "0.5"
    memory: "1024M"

templates/deployment.yaml

apiVersion: extensions/v1beta1
kind: Deployment
metadata:
  name: nginx
spec:
  selector:
    matchLabels:
      app: nginx
  replicas: {{ .Values.replicaCount }}
  template:
    metadata:
      labels:
        app: nginx
    spec:
      containers:
      - image: {{ .Values.image.repository }}:{{ .Values.image.tag }}
        imagePullPolicy: Always
        name: nginx
        command: ["/bin/sh", "-c", "echo $HOSTNAME > /usr/share/nginx/html/index.html && exec nginx -g 'daemon off;'"]
        ports: 
        - containerPort: 80
        resources:
          {{- toYaml .Values.resources | nindent 10 }}
        env:
        {{- range $key, $value := .Values.envs }}
        - name: {{ $key }}
          value: {{ $value | quote }}
        {{- end }}

templates/service.yaml

apiVersion: v1
kind: Service
metadata:
  name: nginx
spec:
  ports:
  - port: 80
    targetPort: 80
    protocol: TCP
  selector:
    app: nginx
  sessionAffinity: None
  type: ClusterIP
  clusterIP: None

---
---
apiVersion: v1
kind: Service
metadata:
  name: nginx-nodeport
spec:
  ports:
  - port: 80
    protocol: TCP
    targetPort: 80
    # 30000-32767
    # nodePort: 30080
  selector:
    app: hello-world
  #sessionAffinity: None
  type: NodePort

deploy.sh

#!/bin/bash

envType=${1:-dev}
helm install --name=nginx -f values.yaml -f values-dev.yaml --set image.repository=docker-repo.xxx.com/k2/nginx --set image.tag=1.12.2 --set envs.PARAM_JVMTOOL=xxxxxxxx --set envs.PARAM_AAA=yyyyyyyyy --dry-run --debug .

debug.txt

apiVersion: extensions/v1beta1
kind: Deployment
metadata:
  name: nginx
spec:
  selector:
    matchLabels:
      app: nginx
  replicas: 2
  template:
    metadata:
      labels:
        app: nginx
    spec:
      containers:
      - image: docker-repo.xxx.com/k2/nginx:1.12.2
        imagePullPolicy: Always
        name: nginx
        command: ["/bin/sh", "-c", "echo $HOSTNAME > /usr/share/nginx/html/index.html && exec nginx -g 'daemon off;'"]
        ports: 
        - containerPort: 80
        resources:
          limits:
            cpu: "0.5"
            memory: 512M
          requests:
            cpu: "0.1"
            memory: 256M
          
        env:
        - name: PARAM_AAA
          value: "yyyyyyyyy"
        - name: PARAM_BBB
          value: "123456_bbb_dev"
        - name: PARAM_CCC
          value: "123456_ccc_dev"
        - name: PARAM_DDD
          value: "123456_ddd_dev"
        - name: PARAM_JVMTOOL
          value: "xxxxxxxx"
        - name: PARAM_SPRING
          value: "654321"

 

标签:name,示例,chart,PARAM,nginx,values,yaml,helm,123456
来源: https://www.cnblogs.com/junneyang/p/11302143.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有