ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

Kubernetes yaml 学习

2021-01-27 08:33:37  阅读:254  来源: 互联网

标签:容器 String Kubernetes 学习 yaml 字符串 spec containers name


分类:
  • 名称空间级别 kube-system
  • 集群级别 role
  • 元数据 HPA
K8s 中所有的内容都抽象为资源,资源实例化之后,叫做对象   名称空间级别资源 (workload):
  • Pod,ReplicaSet,Deployment,StatefullSet,DaemonSet,Job,CronJob(ReplicationController 在v1.11版本废弃)
  • 服务发现及负载均衡型资源(ServiceDiscovery LoadBalance):Service、Ingress、...
  • 配置与存储型资源:Volume 、CSI(容器存储接口,可以扩展各种各样的第三方存储卷)
  • 特殊类型的存储卷:ConfigMap\Secret\DownwardAPI(把外部环境中的信息输出给容器)
集群级别资源
  • 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 '内容\n字符串' s1 "内容\n字符串" 单引号之中如果还有单引号,必须连续使用两个单引号转义 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时,无法在同一台宿主上启动第二个副本


标签:容器,String,Kubernetes,学习,yaml,字符串,spec,containers,name
来源: https://www.cnblogs.com/tingxin/p/14333218.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有