首页 > 编程知识 正文

kubernetes yaml文件编写,k8s导出某个pod的yaml文件

时间:2023-05-05 01:47:53 阅读:270342 作者:4197

一、yaml文件简介

Kubernetes只支持YAML和JSON格式创建资源对象,JSON格式用于接口之间消息的传递,适用于开发

YAML格式用于配置和管理,适用于云平台管理,YAML是一种简洁的非标记性语言

yaml的语法格式:

缩进标识层级关系
不支持制表符缩进,使用空格缩进
通常开头缩进两个空格
字符后缩进一个空格, 如冒号,逗号,- 等
“—”表示YAML格式,一个文件的开始,用于分隔文件间。
“#”表示注释

二、使用YAML文件创建资源对象

1、查看资源版本标签

[root@master ~]# kubectl api-versions


2、例如:写一个yaml文件

[root@master ~]# mkdir demo[root@master ~]# cd demo/[root@master1 demo]# vim nginx-test.yamlapiVersion: apps/v1 #指定api版本标签kind: Deployment #定义资源的类型/角色,deployment为控制器metadata: #定义资源的元数据信息 name: nginx-test #定义资源的名称,在同一个namespace空间中必须是唯一的 labels: #定义资源标签 app: nginxspec: replicas: 3 #定义副本数量 selector: #定义选择器 matchLabels: #匹配上面的标签 app: nginx #匹配模板名称 template: #定义模板 metadata: labels: app: nginx spec: containers: #定义容器信息 - name: nginx #容器名,与标签名要相同 image: nginx:1.15.4 #容器使用的镜像以及版本 ports: - containerPort: 80 #定义容器的对外端口

3、创建资源对象

[root@master1 demo]# kubectl create -f nginx.yaml deployment.apps/nginx created[root@master demo]# kubectl get pod查看创建的pod资源NAME READY STATUS RESTARTS AGEnginx-deployment-d55b94fd-df6wp 1/1 Running 0 84snginx-deployment-d55b94fd-j9mhz 1/1 Running 0 84snginx-deployment-d55b94fd-qzc8r 1/1 Running 0 84s

4、创建service服务对外提供访问并测试

[root@master1 demo]# vi nginx-service.yamlapiVersion: v1 kind: Service metadata: name: nginx-service labels: app: nginx spec: type: NodePort ports: - port: 80 targetPort: 80 selector: app: nginx [root@master1 demo]# kubectl create -f nginx-service.yaml service/nginx-service created[root@master1 demo]# kubectl get svcNAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGEkubernetes ClusterIP 10.0.0.1 <none> 443/TCP 5d13hnginx-service NodePort 10.0.0.227 <none> 80:38425/TCP 14s

在浏览器输入node节点:端口即可访问。

使用命令快速生成YAML或者JSON文件
1、自动测试命令的正确性,并不执行创建(类似shell脚本中的sh -n)

[root@master1 demo]# kubectl run nginx-deployment --image=nginx --port=80 --replicas=3 --dry-runkubectl run --generator=deployment/apps.v1beta1 is DEPRECATED and will be removed in a future version. Use kubectl create instead.deployment.apps/nginx-deployment created (dry run)

2、自动生成yaml格式的文件不保存

#此命令直接生成yaml文件内容展示出来,并不会保存[root@master ~]# kubectl run nginx-1 --image=nginx --port=80 --replicas=3 --dry-run -o yaml


3、自动生成json格式的文件

[root@master ~]# kubectl run nginx-2 --image=nginx --port=80 --replicas=3 --dry-run -o json


4、将生成YAML格式或者JSON格式文件导出

[root@mas快三游戏高手心得ginx-service created[root@master1 demo]# kubectl get svcNAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGEkubernetes ClusterIP 10.0.0.1 <none> 443/TCP 5d13hnginx-service NodePort 10.0.0.227 <none> 80:38425/TCP 14s

在浏览器输入node节点:端口即可访问。

使用命令快速生成YAML或者JSON文件
1、自动测试命令的正确性,并不执行创建(类似shell脚本中的sh -n)

[root@master1 demo]# kubectl run nginx-deployment --image=nginx --port=80 --replicas=3 --dry-runkubectl run --generator=deployment/apps.v1beta1 is DEPRECATED and will be removed in a future version. Use kubectl create instead.deployment.apps/nginx-deployment created (dry run)

2、自动生成yaml格式的文件不保存

#此命令直接生成yaml文件内容展示出来,并不会保存[root@master ~]# kubectl run nginx-1 --image=nginx --port=80 --replicas=3 --dry-run -o yaml


3、自动生成json格式的文件

[root@master ~]# kubectl run nginx-2 --image=nginx --port=80 --replicas=3 --dry-run -o json


4、将生成YAML格式或者JSON格式文件导出

[root@master ~]# kubectl run nginx-1 --image=nginx --port=80 --replicas=3 --dry-run -o json(yaml) > test.json(yaml)


5、将现有的资源生成模板并导出

#可以用pod中的nginx来生成模板并导出[root@master1 demo]# kubectl get podsNAME READY STATUS RESTARTS AGEnginx-deployment-d55b94fd-df6wp 1/1 Running 0 14mnginx-deployment-d55b94fd-j9mhz 1/1 Running 0 14mnginx-deployment-d55b94fd-qzc8r 1/1 Running 0 14m[root@master1 demo]# kubectl get deployment/nginx-deployment --export -o yaml > nginx-backup.yaml[root@master1 demo]# lsnginx-backup.yaml nginx-service.yaml nginx.yaml

6、查看yaml文件某一字段的帮助信息

[root@master ~]# kubectl explain pods.spec.containers

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。