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. 利用kibana学习 elasticsearch restful api (DSL)

    利用kibana学习 elasticsearch restful api (DSL) 1.了解elasticsearch基本概念Index: databaseType: tableDocument: ...

  2. Spring Boot 静态页面跳转

    本篇博客仅为自己提个醒:如何跳转页面而不麻烦控制器. 当我们创建 Spring Boot 项目时(勾选了 Thymeleaf 和 Web),目录结构会是如下:        其中图二是我创建了一个 h ...

  3. nginx 配置反向代理,负载均衡实战解析

    前言:NGINX的反向代理和负载均衡是网站架构中经常用到的一种高并发,高可用的方案,下面我们直接实战操作,当然理论也是要的. 一.反向代理 过程:反向代理:客户端 一>代理 <一> ...

  4. ASP.NET MVC+Easyui 后台管理系统的图片上传

    实现图片的上传 easyui代码部分: //添加按钮 var URL; $("#btnCreate").click(function () { $('#UserDialog').d ...

  5. Linq与委托

    using System; using System.Linq; using System.Reflection; using Stuglxt_Models; namespace ConsoleApp ...

  6. jquery点击放大图片

    参考地址:https://blog.csdn.net/qq_42249896/article/details/86569636 一.应用场景:点击图片可以对图片进行放大显示. 二.实现代码: 说明:我 ...

  7. Spring Cloud微服务架构升级总结

    ↵ [编者的话]微服务的概念源于 2014 年 3 月 Martin Fowler 所写的一篇文章“Microservices”.文中内容提到:微服务架构是一种架构模式,它提倡将单一应用程序划分成一组 ...

  8. Width Height -- (1)

    Width和Height应该是我们学习CSS时,最先接触到的属性了,一宽一高. 我们知道页面当中的标签分为块级元素和行内元素,它们最大的区别就在于,块级元素可以设置宽高,行内元素不能设置宽高. 举例说 ...

  9. Cobaltstrike安装

    1.下载JDK http://www.oracle.com/technetwork/java/javase/downloads/java-archive-javase8-2177648.html#jd ...

  10. 《Android开发艺术探索》读书笔记之Activity的生命周期

    两种不同情况下的Activity生命周期 (1)典型情况下的生命周期 指在有用户参与的情况下,Activity所经过的生命周期的改变. (2)异常情况下的生命周期 指Activity被系统回收或者由于 ...