玩k8s----资源编排(YAML)
1.1 编写YAML注意事项
-
Kubernetes支持YAML和JSON格式创建资源对象
-
JSON格式用于接口之间消息的传递
YAML格式用于配置和管理
-
YAML 是一种简洁的非标记语言。
语法格式:
-
缩进表示层级关系
-
不支持制表符“tab”缩进,使用空格缩进
-
通常开头缩进 2 个空格
-
字符后缩进 1 个空格,如冒号、逗号等
-
“—” 表示YAML格式,一个文件的开始
-
“#”注释
1.2 YAML内容解析
在K8S部署一个应用的YAML内容大致分为两部分:
控制器定义:定义控制器属性
被控制对象:Pod模板,定义容器属性
具体字段意义:
apiVersion | API版本 |
---|---|
kind | 资源类型 |
metadata | 资源元数据 |
spec | 资源规格 |
replicas | 副本数量 |
selector | 标签选择器 |
template | Pod模板 |
metadata | Pod元数据 |
spec | Pod规格 |
containers | 容器配置 |
name: nginx-deployment | 控制器的名字 |
namespace: default | 命名空间 |
- 查看资源版本标签
[root@master ~]# kubectl api-versions
admissionregistration.k8s.io/v1beta1
apiextensions.k8s.io/v1beta1
apiregistration.k8s.io/v1 "注册相关"
apiregistration.k8s.io/v1beta1
apps/v1 "apps/v1代表:包含一些通用的应用层的api组合,如:Deployments, RollingUpdates, and ReplicaSets"
apps/v1beta1 "在kubernetes1.8版本中,新增了batch/v1beta1,后CronJob 已经迁移到了 batch/v1beta1,然后再迁入batch/v1"
apps/v1beta2
authentication.k8s.io/v1 "资源鉴权相关的api组合"
authentication.k8s.io/v1beta1
authorization.k8s.io/v1
authorization.k8s.io/v1beta1
autoscaling/v1 "弹性伸缩相关的api组合"
autoscaling/v2beta1
<