配置语法
k8s YAML语法
volumes
- 类型:
[] - 作用:定义了
volumes,用于后续containers中的volumeMounts进行挂载,使用name进行标识,可以有各种类型:hostPath、secret等
# hostPath类型:中path是必须的
# type是可选的,写了之后k8s会进行检测包含:
# - `Directory`:表示该路径应该是一个目录。
# - `File`:表示该路径应该是一个文件。
# - `Socket`:表示该路径应该是一个 UNIX 套接字。
# - `CharDevice`:表示该路径应该是一个字符设备文件。
# - `BlockDevice`:表示该路径应该是一个块设备文件。
# - `DirectoryOrCreate`:表示该路径应该是一个目录,如果不存在,Kubernetes 会自动创建它。
# - `FileOrCreate`:表示该路径应该是一个文件,如果不存在,Kubernetes 会自动创建它。
volumes:
- name: volume-name
hostPath:
path: /your-host-path # 必写,想要挂载的目录
type: Directory # 可选
# secret类型
volumes:
- name: secret-name
secret:
secretName: secret—namevolumeMounts
- 类型:
[] - 作用:用于实际在容器中挂载:
volumeMounts:
- name: device-data-pose3d
mountPath: /workspace/workspace/data/pose3d/test_data/3_pose3d
readOnly: false
# 对于secret类型
volumeMounts:
- name: config
mountPath: {{ printf "%s/%s.js" .Values.image.configDirPath .Values.release }}
subPath: CONFIG_FILE
type: File
readOnly: trueimage
imagePullPolicy
imagePullPolicy是k8s Pod规范(Pod Spec)中一个定义在容器(Container)级别的字段。它的作用是告诉Kubelet(每个节点上的代理)在创建/更新Pod时应该如何拉取镜像。
总共有三个值可以用:
IfNotPresent:如果本地没有镜像的话,再拉取。Always:总是拉取,不论是否存在镜像,Kubelet每次创建Pod时都会尝试从远程镜像仓库拉取最新的镜像。Never:从不拉去,仅使用本地的镜像,如果本地不存在则报告ErrImageNeverPull错误。
helm chart语法
chart的模板使用了go template的写法,以下给出了一些便于快速理解的例子:
常见的chart的文件夹结构:
.
├── Chart.yaml # 中
├── templates
│ ├── daemonset.yaml
│ └── _helpers.tpl
└── values.yaml