K8s集群文件中对资源管理和资源对象编排部署都可以通过声明样式yaml
,文件来解决,也就是说可以把需要对资源对象操作编辑到yaml
,文件中。
我们称之为资源清单
或资源清单文件
通过kubectl命令直接使用资源清单文件就可以实现对大量资源对象进行编排部署
---
表示新的yaml文件的开始YAML 支持以下几种数据类型:
常量是最基本的,不可再分的值,包括:
& 锚点和 * 别名,可以用来引用: & 用来建立锚点(defaults),<< 表示合并到当前数据,* 用来引用锚点。
defaults: &defaults
adapter: postgres
host: localhost
development:
database: myapp_development
<<: *defaults
test:
database: myapp_test
<<: *defaults
---相当于
defaults:
adapter: postgres
host: localhost
development:
database: myapp_development
adapter: postgres
host: localhost
test:
database: myapp_test
adapter: postgres
host: localhost
apiVersion: v1 # API版本 可使用命令kubeclt api--verison查看
kind: ReplicationController # 资源类型 - 副本控制器RC
metadata: # 资源元数据
name: mysql # - RC的名称(全局唯一),符合目标的Pod拥有此标签
spec: # 资源的规格(RC的相关属性的定义)
replicas: 1 # 副本的期望数量
selector: # 标签选择器
app: mysql
# *********************************************
template: # Pod 模版
metadata:
name: mysql
labels: # 标签 Pod 副本拥有的标签,对应RC的Selector
app: mysql
spec: # Pod规格
containers: # 容器的配置
- name: mysql # 容器名称
image: mysql # 容器镜像(对应的Docker images)
ports:
- containerPort: 3306 # 容器引用监听的端口号
env: # 环境配置
- name: MYSQL_ROOT_PASSWORD
value: "123456"
---
apiVersion: v1
kind: Service # 资源类型 服务
metadata:
name: mysql
spec:
selector:
app: mysql
ports:
- port: 3306
# kubectl create kubectl create deployment web --image=nginx -o yaml --dry-run# -o 使用yaml格式展示# -dry-run 尝试运行,并不会真正运行# 保存至myweb.yamlkubectl create deployment web --image=nginx -o yaml --dry-run > myweb.yaml
kubectl get
kubectl get deploy # 查看部署kubectl get deploy nginx -o yaml --export > myweb.yaml