zoukankan      html  css  js  c++  java
  • Kubernetes yaml 学习

    分类:
    • 名称空间级别 kube-system
    • 集群级别 role
    • 元数据 HPA
    K8s 中所有的内容都抽象为资源,资源实例化之后,叫做对象
     
    名称空间级别资源 (workload):
    • Pod,ReplicaSet,Deployment,StatefullSet,DaemonSet,Job,CronJob(ReplicationController 在v1.11版本废弃)
    • 服务发现及负载均衡型资源(ServiceDiscovery LoadBalance):Service、Ingress、...
    • 配置与存储型资源:Volume 、CSI(容器存储接口,可以扩展各种各样的第三方存储卷)
    • 特殊类型的存储卷:ConfigMapSecretDownwardAPI(把外部环境中的信息输出给容器)
    集群级别资源
    • Namespace,Node,Role,ClusterRole,RoleBinding,ClusterRoleBinding
    元数据资源
    • HPA,PodTemplate,LimitRange
     
    yaml:是一种标记语言,可读性高,用来表达数据,以数据为中心
    语法:
    • 缩进不允许使用Tab,只充许使用空格
    • 缩进的空格数目不重要,只要相同层级的元素左侧对齐即可
    • #标识注释,从这个字符一直到行尾,都会被解释忽略
    支持的数据结构:
    • 对象:键值的集合,又称为映射(mapping)/哈希(hashes)/字典(dictionary)
    • 数组:一组按次序排列的值,又称为序列(sequence)/列表(list)
    • 纯量(scalars):单个的,不可再分的值
    对象类型:对象的一组键值对,使用冒号结构表示
    name: Steve age: 18
    yaml 也充许另一种写法,将所有的键值写成一个对象
    hash:{name: Steve,age: 18}
    数组类型:一组连词线开头的行,构成一个数组
    animal - cat - Dog
    数组也可以采用行内表示法
    animal: [Cat, Dog]
    复合结构:对角和数组可以结合使用,形成复合结构
    languages: - Ruby - Perl - python websites: YAML: yaml.org Ruby: ruby-lang.org Python: python.org Perl: use.perl.org
    纯量:纯量是最基本的,不可再分的值。以下的数据都属于纯量
    字符串 布尔值 整数 浮点数 Null 时间 日期 数值直接以字面量的形式表示 number: 12.30 布尔值用true和false表示 isSet: true null 用 ~ 表示 parent: ~ 时间采用ISO8601格式 iso8601: 2001-12-14t21:59:43.10-05:00 日期采用复合iso8601 格式的年月日表示 date: 1976-07-31 yaml 充许使用两个感叹号,强制转换数据类型 e: !!str 123 f: !!str true
    字符串
    字符串默认不使用引号表示
    str : 这是一个字符串
    如果字符串之中包含空格或特殊字符,需要放在引号之中
    str: '内容: 字符串'
    单引号和双引号都可以使用,双引号不会对特殊字符转义
    s1 '内容 字符串' s1 "内容 字符串"
    单引号之中如果还有单引号,必须连续使用两个单引号转义
    str: 'labor''s day'
    字符串可以写多行,从第二行开始,必须有一个单空格缩进。换行符会被转为空格
    str: 这是一段 多行 字符串
    多行字符串可以使用|保留换行符,也可以使用>折叠换行
    this: | Foo Bar that: > Foo Bar
    +表示保留文字块末尾的换行,-表示删除字符串末尾的换行
    s1 : | Foo s1 : |+ Foo s1 : |- Foo
    常用字段
    kubectl expain pod kubectl explain pod.apiVersion kubectl explain pod.spec kubectl explain pod.spec.containers
     
    参数名
    字段类型
    说明
    version
    String
    这是是指k8s 的版本,目前基本上是v1,可以用
    kubectl api-versions 命令查询
    kind
    String
    这里是指yaml 文件定义的资源类型和角色,比如 Pod
    metadata
    Object
    元数据对象,固定值就写metadata
    metadata.name
    String
    元数据对象的名字,由我们编写 ,比如命名Pod的名字
    metadata.namespace
    String
    元数据对象的命名空间,由我们自身定义;默认是default
    spec
    Object
    详细定义对象,固定值就写Spec
    spec.containers[]
    list
     
    spec.containers[].name
    String
     
    spec.containers[].image
    String
     
    spec.containers[].imagePullPolicy
    String
    Always 默认值
    Never
    IfNotPresent
    spec.containers[].command[]
    list
    指定容器启动命令,因为是数组可以指定多个,不指定则使用镜像打包时使用的启动命令
    spec.containers[].args[]
    list
    指定容器启动命令参数,因为是数组可以指定多个
    spec.containers[].workingDir
    String
    指定容器的工作目录
    spec.containers[].volumeMounts[]
    list
     
    spec.containers[].volumeMounts[].name
    String
     
    spec.containers[].volumeMounts[].mountPath
    String
     
    spec.containers[].volumeMounts[].readOnly
    String
    true/false 默认为读写
    spec.containers[].ports[]
    list
     
    spec.containers[].ports[].name
    String
     
    spec.containers[].ports[].containerPort
    String
     
    spec.containers[].ports[].hostport
    String
    指定容器所在主机需要监听的端口号,默认跟上面的containerPort相同,注意设置了hostPort同一台主机无法启动该容器的相同副本(因为主机的端口不能相同,会冲突)
    spec.containers[].ports[].protocol
    String
    TCP/UDP 默认为TCP
    spec.containers[].env[]
    String
     
    spec.containers[].env[].name
    String
     
    spec.containers[].env[].value
    String
     
    spec.containers[].resources
    Object
    指定资源限制和资源请求的值 (这里开始就是设置容器的资源上限)
    spec.containers[].resources.limits
    Object
    指定设置容器运行时资源的运行上限
    spec.containers[].resources.limits.cpu
    String
    单位是core docker run --cpu-shares
    spec.containers[].resources.limits.memory
    String
    单位是 MIB GIB
    spec.containers[].resources.requests
    Object
    指定容器启动和调度时的限制设置
    spec.containers[].resources.requests.cpu
    String
    单位是core docker run --cpu-shares
    spec.containers[].resources.requests.memory
    String
    单位是 MIB GIB
    spec.restartPolicy
    String
    Always 默认
    OnFailure 只有POD以非零退出码终止时,kubectl才会重启
    Never
    spec.nodeSelector
    Object
    定义Node 的Label过滤标签,以Key: Vaule格式指定
    spec.imagePullSecrets
    Object
    定义pull镜像时使用secret名称,以name:secretkey格式指定
    spec.hostNetwork
    Boolean
    false:默认值,设为true时,无法在同一台宿主上启动第二个副本


  • 相关阅读:
    Neditor 2.1.16 发布,修复缩放图片问题
    Neditor 2.1.16 发布,修复缩放图片问题
    每日 30 秒 ⏱ 强风吹拂
    每日 30 秒 ⏱ 强风吹拂
    Python3的日期和时间
    内置函数:exec、eval、compile
    内置函数:zip、filter、map、stored
    匿名函数
    列表推导式和生成器表达式
    生成器send的用法案例
  • 原文地址:https://www.cnblogs.com/tingxin/p/14333218.html
Copyright © 2011-2022 走看看