贾鸿硕的博客

  博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理

K8S通过yaml格式的声明式API与资源对象交互
API版本由apiVersion字段指定,API对象类型由kind字段指定
除此之外,每个API对象有三大类属性:

  • metadata:元数据
  • spec:规范
  • status:状态

Pod

一般很少单独定义Pod,字段如下:

  • apiVersion: v1
  • kind: pod
  • metadata
    • namespace:非必须,默认为"default"
    • name:必须指定,命名空间内唯一
  • spec
    • containers:Pod内的容器,数组类型,每个元素以-开头

Containers元素字段:

  • args: <[]string>,entrypoint的参数,$()取变量,$$$
  • command<[]string>,entrypoint数组
  • image<string>,容器镜像名
  • imagePullPolicy<string>,镜像拉取策略
    • Always(默认)
    • Never
    • IfNotPresent
  • workingDir:容器工作目录
  • volumeMounts:数据卷挂载
  • ports:暴露端口,不阻止未指定的端口的暴露
  • readinessProbe:就绪探头
  • livenessProbe:存活探头

Deployment

Deployment定义如下:

  • apiVersion: apps/v1
  • kind: Deployment
  • metadata
    • namespace
    • name
  • spec
    • replicas:期望的pod数,默认为1
    • strategy:pod替换策略(非必需)
      • type
        • Recreate:创建新pod前删除所有旧pod
        • RollingUpdate:默认,使rollingUpdate字段生效,滚动更新策略
      • rollingUpdate:指定滚动更新的参数
        • maxSurge:最大的可以存在的pod超出replicas的数量
        • maxUnavailable:最大的不可用pod数量
    • selector:pod的标签选择器
      • matchLabels:键值对map,逻辑与相连
    • template:描述创建pod的模板
      • matadatapod.metadata
      • specpod.spec
posted on 2023-05-31 11:42  jhsss  阅读(50)  评论(0编辑  收藏  举报