在日常的K8S运维工作中,我们通常会通过以下两种友好的方式来获取YAML模板:
- 平时自己收集和整理各种YAML模板文件。
- 通过试运行的方式临时生成所需的YAML模板文件。例如,可以通过以下命令生成一个deployment的YAML文件。
kubectl create deploy deploy-nginx -o yaml \
--port=80 --image=nginx --dry-run=client
执行上述命令后,会在终端生成一个deploy的YAML文件,如下所示:
apiVersion: apps/v1
kind: Deployment
metadata:
creationTimestamp: null
labels:
app: deploy-nginx
name: deploy-nginx
spec:
replicas: 1
selector:
matchLabels:
app: deploy-nginx
strategy: {}
template:
metadata:
creationTimestamp: null
labels:
app: deploy-nginx
spec:
containers:
- image: nginx
name: nginx
ports:
- containerPort: 80
resources: {}
status: {}
以上的基本的信息都已经生成了。但是如果需要部署到其他的命名空间,就需要自行添加命名空间。或者在命令行中添加参数指定部署的命名空间,命令如下:
kubectl create deploy deploy-nginx -o yaml \
--port=80 --image=nginx \
--namespace=dev \
--dry-run=client
插件安装
今天为大家介绍一个非常好用的工具,可以一键生成K8S资源的YAML模板,使用这个工具需要提前准备以下环境:
安装Visual studio Code(版本要>=1.38)
安装Red Hat YAML,该插件是一款为Visual Studio Code 提供全面YAML语言支持的插件。
安装Kubernetes Templates插件,该插件可以帮助我们一键生成K8S资源YAML模板文件。
以上两个插件安装好,最后重启一下vscode。
基本使用
使用方式也十分简单,打开vscode,新建文件,然后文件格式选择YAML,如下图所示:
例如,我们想创建一个deploy模板文件,只需要在文件输入k,然后,vscode就会智能的提示有关k开头的所有模板,如下图所示:
当我们选择k8sDeployment回车时,就会生成非常详细的模板。如下图所示:
这个工具真是太棒了,让我们不再为寻找K8S资源模板而烦恼,它几乎覆盖了K8S所有的资源文件。使用之后,我们的工作效率得到了显著提升。