Chart.yaml

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

values.yaml

# Default values for nginx.
# This is a YAML-formatted file.
# Declare variables to be passed into your templates. replicaCount: image:
repository: nginx
tag: 1.15-alpine envs:
PARAM_JVMTOOL: ""
PARAM_SPRING: "" 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:
resources:
{{- toYaml .Values.resources | nindent }}
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:
targetPort:
protocol: TCP
selector:
app: nginx
sessionAffinity: None
type: ClusterIP
clusterIP: None ---
---
apiVersion: v1
kind: Service
metadata:
name: nginx-nodeport
spec:
ports:
- port:
protocol: TCP
targetPort:
# -
# nodePort:
selector:
app: hello-world
#sessionAffinity: None
type: NodePort

deploy.sh

#!/bin/bash

envType=${:-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. --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:
template:
metadata:
labels:
app: nginx
spec:
containers:
- image: docker-repo.xxx.com/k2/nginx:1.12.
imagePullPolicy: Always
name: nginx
command: ["/bin/sh", "-c", "echo $HOSTNAME > /usr/share/nginx/html/index.html && exec nginx -g 'daemon off;'"]
ports:
- containerPort:
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: ""

【K8S】helm chart多环境部署最佳实践-示例的更多相关文章

  1. Cobbler自动化部署最佳实践

    第1章 Cobbler自动化部署最佳实践 运维自动化在生产环境中占据着举足轻重的地位,尤其是面对几百台,几千台甚至几万台的服务器时,仅仅是安装操作系统,如果不通过自动化来完成,根本是不可想象的. 面对 ...

  2. tomcat部署最佳实践(一)

    Tomcat部署最佳实践 标签: linux 笔者Q:972581034 交流群:605799367.有任何疑问可与笔者或加群交流 tomcat是玩web软件必会技能之一,今天我给大家介绍一下tomc ...

  3. Typescript 开发环境的最佳实践

    Typescript 开发环境的最佳实践 0️⃣ git init(略) 1️⃣️️ 初始化:$ yarn add -D ts-node typescript 2️⃣ 生成 tsconfig.json ...

  4. Kubernetes 服务部署最佳实践(二) ——如何提高服务可用性

    引言 上一篇文章我们围绕如何合理利用资源的主题做了一些最佳实践的分享,这一次我们就如何提高服务可用性的主题来展开探讨. 怎样提高我们部署服务的可用性呢?K8S 设计本身就考虑到了各种故障的可能性,并提 ...

  5. Kubernetes 服务部署最佳实践(一) ——如何更好地设置 Request 与 Limit

    如何为容器配置 Request 与 Limit? 这是一个即常见又棘手的问题,这个根据服务类型,需求与场景的不同而不同,没有固定的答案,这里结合生产经验总结了一些最佳实践,可以作为参考. 所有容器都应 ...

  6. Websphere Application Server 环境配置与应用部署最佳实践

    在发布一个运行于 WebSphere Application Server 的 J2EE 应用之前,对服务器进行配置和部署应用是必不可少的一个过程,这个过程是非常复杂的.WAS 为用户提供了可视化的管 ...

  7. (转)Cobbler自动化部署最佳实践

    原文:http://www.xuliangwei.com/xubusi/446.html 运维自动化在生产环境中占据着举足轻重的地位,尤其是面对几百台,几千台甚至几万台的服务器时,仅仅是安装操作系统, ...

  8. Nginx SSL TLS部署最佳实践

    本文介绍nginx在提供HTTPS时使用的一些其他配置选项. 虽然这些功能有助于优化nginx的SSL和TLS,但这不是一个完整对加固nginx的介绍. 确保您的服务器安全的最佳方法是不仅需要正确的配 ...

  9. Spring.profiles多环境配置最佳实践

    转自:https://www.cnblogs.com/jason0529/p/6567373.html Spring的profiles机制,是应对多环境下面的一个解决方案,比较常见的是开发和测试环境的 ...

随机推荐

  1. PHP 垃圾回收机制详解

    前言:之前对PHP的GC只是了解了个大概,这次详细了解下PHP的垃圾回收机制(GC). 介于网上大部分都是PHP5.X的GC,虽然 php5 到 php7 GC部分做出的改动较小,但我觉得还是一起写下 ...

  2. handle句柄

    若是你向我问起 Win32 程序设计中印象最深(最坑爹)的一个概念是什么,那么我会毫不犹豫地告诉你——句柄(Handles).究其原因,无论是 MSDN 还是 维基百科,对于“句柄”这个词的解说都显得 ...

  3. 关于CSS特性和选择器

    1层叠  样式冲突的遵循就近原则, 2继承  子代会继承父代的某些属性,例如字体大小,字体颜色 3优先级 !important 权重最高 通配符 * 和 继承的属性 权重为 0 0 0 0 行内样式权 ...

  4. windows 10 配置Java 环境变量(5步骤)

    前提:1.windows 10 系统(不是win8,也不是win7)2.安装JDK步骤 1. 打开 环境变量窗口右键 This PC(此电脑) -> Properties(属性) -> A ...

  5. 阅读prettytable 一些代码、get、set 检查参数

    阅读代码是因为我发现官方教程里的代码在本地不能用,所以就通过”查看定义“转到了源代码里. 通过阅读源代码,查看方法内是否有教程中所说的方法名和参数名,然后再通过”查看引用“来试图了解函数的流程,如果没 ...

  6. P3028 汽水机(差分)

    题目 P3028 [USACO10OCT]汽水机Soda Machine 解析 差分,看到\(a[i]\leq 1e9\),离散化一下,在\(l\)处\(+1\),\(r+1\)处\(-1\),这样就 ...

  7. 连root也干不掉的文件

    在你的印象中,是不是root用户就可以为所欲为呢?随便一个rm -rf *,一波骚操作走人?可能没那么容易. 来啊,删我啊! 先来个示例,创建一个文本文件test.txt $ touch test.t ...

  8. 关于html的相关讲解

    浏览器chrome Chrome它内部有一个解析器,这个解析器就是解析我们的代码,各个浏览器的内核不一样,所以存在浏览器的兼容.这个内核是一个引擎. 谷歌的内核是webkit 引擎是v8. 客户端的请 ...

  9. Python学习日记(四十) Mysql数据库篇 八

    Mysql存储过程 存储过程是保存在Mysql上的一个别名(就是一堆SQL语句),使用别名就可以查到结果不用再去写SQL语句.存储过程用于替代程序员写SQL语句. 创建存储过程 delimiter / ...

  10. mysql主从复制几个重要的参数

    1. relay_log_recovery = 1 当slave从库宕机后,假如relay-log损坏了,导致一部分中继日志没有处理,则自动放弃所有未执行的relay-log,并且重新从master上 ...