》 kubernetes资源的创建、更新、删除等操作均可以使用json或者yaml文件进行操作,更新和删除可以依赖之前的文件进行更改。但是资源清单文件就没那么容易了,k8s的配置项实在是太多,稍微不注意就会犯错。要写好一个yaml文件,需要了解yaml文件的语法,需要整我k8s的各种配置。本文按照k8s资源分类,详细列出各个资源的yaml字段与格式。以加深记忆
1、资源控制器
1.1 Deployment
- yaml模版
apiVersion: apps/v1 #必填,版本号
kind: Depolyment #必填,资源乐行
metadata: #必填,元数据
name: <name>-deploy #必填,pod名称
namespace: <name> #pod所属的命名空间
labels: #自定义pod标签
- name: string #pod标签名字<key: value>
spec: #必填,pod的详细定义
selector: #必填,标签选择
matchLabels: #必填,标签匹配
name: <name> #必填,通过此标签匹配对应pod<key: value>
replicas: <number> #必填,副本数量
minReadySeconds: int #新创建的Pod状态为Ready持续的时间
revisionHistoryLimit: int #保留的历史版本个数,默认是10
minAvailable: int #Pod自愿中断的场景中,至少要保证可用的Pod对象数量或比例,要阻止任何Pod对象发生自愿中断,可将其设置为100%。
maxUnavailable: int #Pod自愿中断的场景中,最多可转换为不可用状态的Pod对象数量或比例,0值意味着不允许Pod对象进行自愿中断;此字段与minAvailable互斥
strategy: #版本更新控制
type: RollingUpdate #更新策略,滚动更新(也可以是Recreate 重建更新)
rollingUpdate: #滚动更新配置
maxSurge: int #升级期间存在的总Pod对象数量最多不超过多少(百分比)
maxUnavailable: int #升级期间正常可用的Pod副本数(包括新旧版本)不低于多少(百分比)
template: #必填,应用容器模版定义
metadata:
labels:
name: <name> #必填,与上面matchLabels的标签相同
spec:
containers: #此处参考pod的containers