Kubernetes——Kubectl_YAML文件创建资源

文章目录

    • 概述
    • 使用YAML文件创建资源
      • 1、查看资源版本标签
      • 2、创建yaml文件测试
      • 3、生成yaml格式

概述

Kubernetes支持YAML和JSON格式创建资源对象

  • JSON格式用于接口之间消息的传递(适合二次开发)

  • YAML格式用于配置和管理(适合运维)

YAML是一种简洁的非标记性语言,语法格式

  • 使用缩进标识层级关系

  • 不支持制表符tab缩进,使用空格缩进(相同层级的元素要左对齐)

  • 通常开头缩进两个空格

  • 字符后缩进一个空格(如冒号、逗号、短横杠等)

  • “—”表示YAML格式,一个文件的开始

  • “#”表示注释

  • 如果包含特殊字符用单引号引起来

  • 布尔值必须用引号括起来

使用YAML文件创建资源

1、查看资源版本标签

在写yaml文件中第一个就要先写版本标签

[root@master01 ~]# kubectl api-versions
admissionregistration.k8s.io/v1beta1
apiextensions.k8s.io/v1beta1
apiregistration.k8s.io/v1
apiregistration.k8s.io/v1beta1
apps/v1
apps/v1beta1
apps/v1beta2
authentication.k8s.io/v1
authentication.k8s.io/v1beta1
authorization.k8s.io/v1
authorization.k8s.io/v1beta1
autoscaling/v1
autoscaling/v2beta1
autoscaling/v2beta2
batch/v1
batch/v1beta1
certificates.k8s.io/v1beta1
coordination.k8s.io/v1beta1
events.k8s.io/v1beta1
extensions/v1beta1
networking.k8s.io/v1
policy/v1beta1
rbac.authorization.k8s.io/v1
rbac.authorization.k8s.io/v1beta1
scheduling.k8s.io/v1beta1
storage.k8s.io/v1
storage.k8s.io/v1beta1
v1

2、创建yaml文件测试

① 创建目录

[root@master01 ~]# mkdir demo

② 创建nginx-deployment.yaml文件

[root@master01 ~]# cd demo/
[root@master01 demo]# vim nginx-deployment.yaml
#定义资源类型及描述
apiVersion: apps/v1		# apiVersion:语法关键字,注意大小写。apps/v1:版本标签
kind: Deployment	#资源类型:deployment控制器
metadata:		#资源的元数据
  name: nginx-deployment	#定义资源的名称,在同一个namespace中必须唯一
  labels:	#定义资源的标签 
    app: nginx	
spec:	#定义容器模板
  replicas: 3	#定义副本数量
  selector:	#选择器
    matchLabels:	#匹配标签
      app: nginx	#匹配模板名称
  template:		#模板
    metadata:	
      labels:
        app: nginx
    spec:
      containers:		#定义容器信息
      - name: nginx			#-:表示参数,容器名与标签名要相同
        image: nginx:1.15.4		#容器使用的镜像以及版本
        ports:
        - containerPort: 80		#定义容器的对外端口

③ 使用yaml文件创建资源

[root@master01 demo]# kubectl create -f nginx-deployment.yaml 

③ 查看资源

[root@master01 demo]# kubectl get pods

Kubernetes——Kubectl_YAML文件创建资源_第1张图片

④ 发布

#创建ginx-service.yaml文件

[root@master01 demo]# vim nginx-service.yaml
apiVersion: v1  #定义版本
kind: Service  #类型
metadata:	#信息描述
  name: nginx-service	#资源名称
  labels:	#标签
    app: nginx  
spec:
  type: NodePort  #发布的类型:NodePort
  ports:
  - port: 80	#内部端口
    targetPort: 80  #映射指向的端口
  selector:		#选择器
    app: nginx

#使用ginx-service.yaml文件创建service资源(对外提供访问)

[root@master01 demo]# kubectl create -f nginx-service.yaml 

#查看service资源

[root@master01 demo]# kubectl get svc

在这里插入图片描述

⑤ 访问
Kubernetes——Kubectl_YAML文件创建资源_第2张图片

#自动测试命令的正确性,并不执行创建

语法验证,自动测试命令的正确性,并不去执行创建

[root@master01 demo]# kubectl run nginx-deployment --image=nginx --port=80 --replicas=3 --dry-run

Kubernetes——Kubectl_YAML文件创建资源_第3张图片

3、生成yaml格式

两种方式:

1、新创建(可以使用命令生成模板)

2、基于已有资源生成模板

① 新创建

#查看生成yaml格式

[root@master01 demo]# kubectl run nginx-deployment --image=nginx --port=80 --replicas=3 --dry-run -o yaml

Kubernetes——Kubectl_YAML文件创建资源_第4张图片

#将模板导出并命名为my-deployment.yaml

可以将生成的模板进行更改使用

[root@master01 demo]# kubectl run nginx-deployment --image=nginx --port=80 --replicas=3 --dry-run -o yaml > my-deployment.yaml

Kubernetes——Kubectl_YAML文件创建资源_第5张图片

② 基于已有资源生成模板

#将现有的资源生成模板并导出命名为test-nginx.yaml

[root@master01 demo]# kubectl get deploy/nginx --export -o yaml > test-nginx.yaml

Kubernetes——Kubectl_YAML文件创建资源_第6张图片

#查看生成json格式

[root@master01 demo]# kubectl run nginx-deployment --image=nginx --port=80 --replicas=3 --dry-run -o json

③ 查看某字段帮助信息:explain

例如:查看containers的帮助信息

[root@master01 demo]# kubectl explain pods.spec.containers

你可能感兴趣的:(Kubernetes,kubernetes,yaml,kubectl)