Fork me on GitHub

kubernetes系列之《YAML配置文件管理对象》

一、配置文件说明

  • 定义配置时,指定最新稳定版API(当前为v1);
  • 配置文件应该存储在集群之外的版本控制仓库中。如果需要,可以快速回滚配置、重新创建和恢复;
  • 应该使用YAML格式编写配置文件,而不是JSON。尽管这些格式都可以使用,但YAML对用户更加友好;
  • 可以将相关对象组合成单个文件,通常会更容易管理;
  • 不要没必要的指定默认值,简单和最小配置减少错误;
  • 在注释中说明一个对象描述更好维护。

二、示例

deployment

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
apiVersion: apps/v1beta2 # api版本

kind: Deployment# 指定资源名称
metadata:
name: nginx-deployment # 元数据名称
spec:# 资源控制器
replicas: 3 # 指定副本数量
selector: # 通过标签关联资源
matchLabels: # 匹配标签
app: nginx
template:
metadata:
labels:
app: nginx
spec:
containers: # 容器标签
- name: nginx # 容器名称
image: nginx:1.10# 容器镜像&版本
ports: # 容器端口
- containerPort: 80

service

1
2
3
4
5
6
7
8
9
10
11
12
apiVersion: v1
kind: Service
metadata:
name: nginx-service
labels:
app: nginx
spec:
ports:80
selector:
app: nginx
- port: 88
targetPort:

三、快速配置YAML的方法

3.1、用run命令生成

1
2
3
$ kubectl run --image=nginx my-deploy -o yaml --dry-run >my-deploy.yaml
$ kubectl create -f deploy-nginx.yaml -o yaml --dry-run >my-deploy.yaml
$ kubectl create -f deploy-nginx.yaml -o json --dry-run >my-deploy.json # 指定输出json格式
  • – image # 指定模板镜像
  • my-deploy # 运行标签名称
  • –dry-run # 只测试运行,不会实际运行pod
  • -o yaml # 指定输出格式

3.2、用get命令导出

1
$ kubectl get deploy/my-deploy -o=yaml --export > my-deploy.yaml

3.3、查询Pod容器的字段资源内部文档

使用kubectl explain –help 查询pod字段内部说明

1
2
3
$ kubectl explain pods  # 每一个层级的指令都会有字段信息
$ kubectl explain pods.spec
$ kubectl explain pods.spec.containers

-------------本文结束感谢您的阅读-------------