kubernetes-5 yaml文件详解

概述

k8s集群中对资源管理和资源对象编排部署都可以通过生命式(YAML)文件来解决,也就是可以把需要对资源对象操作编辑到YAML格式文件中,我们把这中文件叫做资源清单文件,通过kubectl命令直接使用资源清单文件就可以实现对大量的资源对象进行编排部署。一般在我们开发的时候,都是通过配置yaml文件来部署集群的。
YAML文件:资源清单文件,用于资源编排

YAML文件介绍

YAML概述

YAML:是一种标记语言。为了强调这种语言以数据做为中心,而不是以标记语言为重点。
YAML是一个可读性高,用来表达数据序列的格式。

YAML基本语法

使用空格作为缩进
缩进的空格数目不重要,只要相同层级的元素左对齐即可
低版本缩进时不允许使用Tab键,只允许使用空格
使用#标识注释,从这个字符一直到行尾,都会被解释器忽略掉
使用—表示一个新的yaml文件开始

YAML支持的数据结构

对像

键值对集合,又称为映射/哈希/字典
#对象类型:对象的一组键值对,使用冒号结构表示
name: Ben
age: 18

#yaml也允许另一种写法,将所有的键值对写成一个行内对象
hash: {name: Ben, age: 18}

数组

#数组类型:一组连词线开头的行,构成一个数组
People
– Tom
– Jack

#数组也可以采用行内表示法
People: [Tom, Jack]

YAML文件组成部分

主要分为两个部分,一个是控制器的定义,一个是被控制的对象

控制器的定义

api版本、控制器类型

apiVersion: apps/v1
kind: Deployment
metadata:
  name: nginx-deployment
  namespace: default
spec:
  replicas: 3
  selector: 
    matchLables:
      app: nginx

被控制的对象

包含一些镜像、版本、端口等

  template:
    metadata:
      lables:
        app: nginx
    spec:
      containers:
      - name: nginx
        image: nginx:latest
        ports: 
        - containerPort: 80

属性说明

在YAML文件的控制器定义中,有很多属性名称

属性名称 介绍
apiVersion API版本
kind 资源类型
metadata 资源元数据
spec 资源规格(期望)
replicas 副本数量
selector 标签选择器
template Pod模板
spec Pod的期望
containers 容器配置

快速编写YAML文件的方法

一般来说,我们很少自己手写YAML文件,因为这里面涉及到了很多内容,我们一般都会借助工具来创建。

使用kubectl create命令

这种方式一般用于资源没有部署的时候,我们可以直接创建一个YAML配置文件

#尝试运行,并不会真正的创建镜像
kubectl create deployment web --image=nginx -o yaml --dry-run=client

或者可以重定向到一个文件中

kubectl create deployment web --image=nginx -o yaml --dry-run=client > web.yaml

然后就可以通过这个模板修改即可

使用kubectl get命令导出yaml文件

这里需要一个已经部署好的镜像,导出配置文件

kubectl get deployment web -o yaml > web.yaml

修改自己想要的YAML文件

谢谢浏览!!!

猜你喜欢

转载自blog.csdn.net/qq_51574197/article/details/115192215
今日推荐