Kubernetes 集群中对资源管理和资源对象的编排部署可以通过声明样式(yaml)文件的方式来解决,把需要对资源对象的操作都编辑到 yaml 格式的文件中,这种文件叫做 资源清单文件。通过 kubectl 命令可以直接使用资源清单文件实现对大量的资源对象进行编排和部署。
yaml 的可读性非常高,它是用来表达 数据序列 的格式。它本身仍是一种 标记语言,但这种语言是以数据为中心,而不是以标记语言为中心。
yaml 文件基本语法如下:
通常在一个完整的 yaml 文件中,包含两个部分,控制示例 和 被控制的对象。文件中必须存在的属性有如下几个:
如下是一个最基本的完整的 yaml 文件模板:
#第一部分:控制器示例
apiVersion: apps/v1
kind: Deployment
metadata:
name: nginx
namespace: default
spec:
replicas: 3
selector:
matchLabels:
app: nginx
#第二部分:被控制的对象
template:
metadata:
labels:
app: nginx
spec:
containers:
- name: nginx
image: nginx
ports:
- containerPort: 80
在实际开发过程中,如果说让我们从零开始编写一个完整的 yaml 文件出来,还是有一定难度的,至少字段以及格式上就很难保证不出错。手写是不现实的,所以我们通常需要通过一定的方式 快速生成yaml文件:
• 方法一:kubectl create 生成
如下,我使用 kubectl create 命令创建一个名为 web 的 deployment 资源,但是不让它真正创建,而是生成一个 yaml 文件;
kubectl create deployment web --image=nginx -o yaml --dry-run
–dry-run:尝试运行,不真正运行。
运行结果如下:
可以看到 yaml 文件已经生成,包含了所有字段以及格式,之后对它进行复制修改即可。此过程并未在集群中执行,而仅仅是以 yaml 文件的形式输出了,我们索取需要的文件内容和格式即可。
为了更加方便,我们也可以直接将生成的 yaml 文件内容输入到某一个文件当中,之后修改文件内容,如下;
kubectl create deployment web --image=nginx -o yaml --dry-run > ma.yaml
• 方法二:kubectl get 导出
此方法适用于已经部署好的项目中,将项目中的 yaml 文件导出。在这里我先查看以下集群中已经部署的项目资源;
以操作 nginx 资源为例,将 nginx 资源相关内容以 yaml 格式导出并输入到 ma2.yaml 文件中,命令如下:
kubectl get deploy nginx -o=yaml --export > ma2.yaml
执行结果如下,ma2.yaml 文件已生成:
阅读量:1042
点赞量:0
收藏量:0