【K8S】helm chart多环境部署最佳实践-示例
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多环境部署最佳实践-示例的更多相关文章
- Cobbler自动化部署最佳实践
第1章 Cobbler自动化部署最佳实践 运维自动化在生产环境中占据着举足轻重的地位,尤其是面对几百台,几千台甚至几万台的服务器时,仅仅是安装操作系统,如果不通过自动化来完成,根本是不可想象的. 面对 ...
- tomcat部署最佳实践(一)
Tomcat部署最佳实践 标签: linux 笔者Q:972581034 交流群:605799367.有任何疑问可与笔者或加群交流 tomcat是玩web软件必会技能之一,今天我给大家介绍一下tomc ...
- Typescript 开发环境的最佳实践
Typescript 开发环境的最佳实践 0️⃣ git init(略) 1️⃣️️ 初始化:$ yarn add -D ts-node typescript 2️⃣ 生成 tsconfig.json ...
- Kubernetes 服务部署最佳实践(二) ——如何提高服务可用性
引言 上一篇文章我们围绕如何合理利用资源的主题做了一些最佳实践的分享,这一次我们就如何提高服务可用性的主题来展开探讨. 怎样提高我们部署服务的可用性呢?K8S 设计本身就考虑到了各种故障的可能性,并提 ...
- Kubernetes 服务部署最佳实践(一) ——如何更好地设置 Request 与 Limit
如何为容器配置 Request 与 Limit? 这是一个即常见又棘手的问题,这个根据服务类型,需求与场景的不同而不同,没有固定的答案,这里结合生产经验总结了一些最佳实践,可以作为参考. 所有容器都应 ...
- Websphere Application Server 环境配置与应用部署最佳实践
在发布一个运行于 WebSphere Application Server 的 J2EE 应用之前,对服务器进行配置和部署应用是必不可少的一个过程,这个过程是非常复杂的.WAS 为用户提供了可视化的管 ...
- (转)Cobbler自动化部署最佳实践
原文:http://www.xuliangwei.com/xubusi/446.html 运维自动化在生产环境中占据着举足轻重的地位,尤其是面对几百台,几千台甚至几万台的服务器时,仅仅是安装操作系统, ...
- Nginx SSL TLS部署最佳实践
本文介绍nginx在提供HTTPS时使用的一些其他配置选项. 虽然这些功能有助于优化nginx的SSL和TLS,但这不是一个完整对加固nginx的介绍. 确保您的服务器安全的最佳方法是不仅需要正确的配 ...
- Spring.profiles多环境配置最佳实践
转自:https://www.cnblogs.com/jason0529/p/6567373.html Spring的profiles机制,是应对多环境下面的一个解决方案,比较常见的是开发和测试环境的 ...
随机推荐
- JavaScaript学习笔记第(一)
js由三部分组成,分别是ECMAScript.DOM.BOM 其中ECMAScript规定了js的语法 js是一门解释型语言.脚本语言.动态类型语言.基于对象语言 书写js代码和CSS一样,有三个书写 ...
- 去掉eslint代码校验
找到.eslintrc文件,去掉extend下面的'@vue/standard'.
- JS面向对象设计-创建对象
Object构造函数和对象字面量都可以用来创建单个对象,但是在创建多个对象时,会产生大量重复代码. 1.工厂模式 工厂模式抽象了创建具体对象的过程.由于ECMAScript无法创建类,我们用函数来封装 ...
- 37.前台js登陆加密分析
开篇 由于现在的登陆接口如果明文传输的话,容易被暴力破解,越来越多的网站选择了前台js加密的方式,像这样: 或者这样: 枯了,对渗透造成一定的影响 本篇文章将系统的讲述使用Python对前台js加密爆 ...
- 使用Keepalived实现MySQL双主高可用
MySQL双主配置 环境准备: OS: CentOS7 master:192.168.1.10 backup:192.168.1.20 VIP:192.168.1.30 一.安装MySQL数据库. 在 ...
- JavaScript的Proxy可以做哪些有意思的事儿
摘要: 神奇而有趣的Proxy. 原文:拿Proxy可以做哪些有意思的事儿 作者:贾顺名 Fundebug经授权转载,版权归原作者所有. Proxy是什么 首先,我们要清楚,Proxy是什么意思,这个 ...
- ssh免密登录(公钥私钥)指令
1.在.ssh目录中执行ssh-keygen -t rsa命令生成两个秘钥,公钥(id_rsa.pub)和私钥(id_rsa) 2.ssh-copy-id -i id_rsa.pub 对方用户名@对方 ...
- kernel: nfsd: too many open TCP sockets, consider increasing the number of threads
在/var/log/syslog中看到如下报错: kernel: nfsd: too many open TCP sockets, consider increasing the number o ...
- Codeforces E. High Load(构造)
题目描述: High Load time limit per test 2 seconds memory limit per test 512 megabytes input standard inp ...
- python 基础笔记-函数
函数是组织好的,可重复使用的,用来实现单一,或相关联功能的代码段·. 好处为: 一可以把程序中相对独立的功能模块抽取出来,减少重读代码的编写: 二是将来可以以重复的使用这些功能模块 定义一个函数 ...