自定义参数

在使用chart创建release时,我们可能想使用自定义的参数值,或者将chart中的默认值覆盖掉。

通常有三种实现方式:

  • 使用--set参数
  • 使用新的values文件
  • 将chart下载下来并在文件中进行修改

下面我们将一一介绍这三种方式

使用–set参数进行覆盖

使用--set参数进行覆盖是最常用的一种方式,例如, prometheus的helm定义中,给server的pv卷默认大小是8GB,在生产环境中很容易打满磁盘,在安装时我们要调大这个值:

image-20211219225558065

使用--set参数可以将新的值传入,覆盖掉默认的值:

image-20211219224856931

使用不同的value环境

在上一节中,我们部署nginx的values.yaml内容如下:

deployment:
  replicaCount: 3
  name: my-deployment
  image:
    app: nginx
    version: latest
  
service:
  name: my-service
  type: NodePort
  port: 80
  targetPort: 80
  nodePort: 32036

假设这个yaml文件中的变量仅用于测试环境。在生产环境中,我们需要另一套的value。


在同目录下新建new-values.yaml文件:

deployment:
  replicaCount: 5
  name: prod-deployment
  image:
    app: nginx
    version: latest
  
service:
  name: prod-service
  type: NodePort
  port: 80
  targetPort: 80
  nodePort: 32046

这个文件中声明的replicaCount、deployment name等都和之前不同。


如果执行helm install my-chart .,则默认使用values.yaml中的值。

如果想使用new-values.yaml中的值,需要指定文件:

helm install my-chart-2 . -f new-values.yaml

image-20211203164354609

下载chart后并进行修改

image-20211219225258691