[K8S & Shell]报错总结及操作

前言

总结常规报错,以及相应的解决办法,涉及K8S、HELM、Shell等。

1. Helm模板中,关于command和args

本次部署容器环境流程:使用Helm或K8S原生的apply方式部署环境。部署时,会调用指定的shell脚本。
在shell脚本执行时,获取yml中的变量参数有两种方式:第一,yml中将k8s参数以环境变量env的形式注入到docker,第二,k8s参数作为脚本的参数传入。

  • 第一种方式:env形式传入,脚本执行时直接${a}获取,且可以重复使用。
env:                    # 容器运行前需设置的环境变量列表
  - name: a             # 环境变量名称
    value: b            # 环境变量的值
在容器中执行export指令可以查看到设置的环境变量参数。
  • 第二种方式:k8s参数作为脚本的参数传入,即在yml中指定args参数,如果参数较多,可以使用shell的getopts函数解析,但是这些参数无法在容器内使用。
    关于command和args的使用场景:
  1. 如果command和args均没有指定,那么则使用Dockerfile的配置。
  2. 如果command没有指定,但指定了args,那么Dockerfile中配置的ENTRYPOINT的命令行会被执行,并且将args中填写的参数追加到ENTRYPOINT中。
  3. 如果command指定了,但args没有写,那么Dockerfile默认的配置会被忽略,执行输入的command(不带任何参数,当然command中可自带参数)。
  4. 如果command和args都指定了,那么Dockerfile的配置被忽略,执行command并追加上args参数。

截取deployment.yaml中示例如下:(args解析可以使用2中的函数)

env:
  - name: a
    value: b
args:
  - -a key=value               #添加key=value至默认配置文件
  - -a k
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值