Kubernetes——Kubectl_YAML文件创建资源

概述
使用YAML文件创建资源
1、查看资源版本标签
2、创建yaml文件测试
3、生成yaml格式
概述
Kubernetes支持YAML和JSON格式创建资源对象

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

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

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

使用缩进标识层级关系

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

通常开头缩进两个空格

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

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

“#”表示注释

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

布尔值必须用引号括起来

使用YAML文件创建资源
1、查看资源版本标签
在写yaml文件中第一个就要先写版本标签

 # kubectl api-versions

2、创建yaml文件测试
① 创建目录

[root@master01 ~]# mkdir demo
1
② 创建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 
1
③ 查看资源

[root@master01 demo]# kubectl get pods

④ 发布

#创建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

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

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

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


3、生成yaml格式,两种方式:

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

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

① 新创建

#查看生成yaml格式

[root@master01 demo]# kubectl run nginx-deployment --image=nginx --port=80 --replicas=3 --dry-run -o yaml
#将模板导出并命名为my-deployment.yaml

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

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


② 基于已有资源生成模板

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

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


#查看生成json格式

[root@master01 demo]# kubectl run nginx-deployment --image=nginx --port=80 --replicas=3 --dry-run -o json
1
③ 查看某字段帮助信息:explain

例如:查看containers的帮助信息

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

Guess you like

Origin blog.csdn.net/fish_study_csdn/article/details/120807944