1、ymal介绍
k8s是容器编排引擎,使用yaml来编排部署应用
特点:1、缩进表示层级关系
2、不支持制表符“tab”缩进,需要使用空格缩进
3、通常开头缩进两个空格
4、关键词字符后缩进一个空格,比如冒号与逗号后面需要缩进一个字符
5、“---”表示YAML格式,一个文件的开始
6、“#”表示注释
以下yaml为例
等同于

 kubectl create deployment web --image=lizhenliang/java-demo --replicas=3 -n default
2、编写示例yaml
在使用中我们可能存在API版本不一致导致报错,可以通过命令查看版本
kubectl api-resources |grep Deployment
1、其中,标签一般定义两个,由项目与应用组成,#键:值 可任意定义。例如
project:ec 
app: portal
2、matchLabels必须与下面的labels保持一致,否则apply会报错
例如下面这个创建deployment的yaml
kind: Deployment
metadata:
  name: web666
  namespace: team-a
spec:
  replicas: 3
  selector:
    matchLabels:
      project: ec
      app: portal
  template:
    metadata:
      labels:
        project: ec
        app: portal
    spec:
      containers:
      - name: web
        image: lizhenliang/java-demo:latest
其中,标签可以为两个,他是以键值对的方式存储,但matchLabels的值必须与labels相等,不相等会创建报错,而service是以标签来控制pod
           replicas为副本数,image为拉取镜像名
2、创建service
apiVersion: v1
kind: Service
metadata:
  name: web666
  namespace: team-a
spec:
  ports:
  - port: 80
    protocol: TCP
    targetPort: 8080
  selector:
    project: ec
    app: portal
  type: NodePort
标签与命名空间要确保与deployment一致
执行两个yaml文件
kubectl apply -f deployment.yaml
kubectl apply -f service.yam
查看服务
成功
3、快速生成yaml文件
直接手写yaml比较麻烦,而且容易出错,所以有提供以下方式获取标准yaml文件并修改
3.1生成新yaml
1、通过命令获取yaml,可以通过创建服务的命令后面加--dry-run=client -o yaml 来提取yaml,再根据获取到的yaml进行修改即可
例如
kubectl create deployment java-demo --image=nginx:1.20 -n team-a --dry-run=client -o yaml

他会输出yaml,加重定向导出即可,其中,creationTimestamp与status: {}可以删除

apiVersion: apps/v1
kind: Deployment
metadata:
  creationTimestamp: null
  labels:
    app: java-demo
  name: java-demo
  namespace: team-a
spec:
  replicas: 1
  selector:
    matchLabels:
      app: java-demo
  strategy: {}
  template:
    metadata:
      creationTimestamp: null
      labels:
        app: java-demo
    spec:
      containers:
      - image: nginx:1.20
        name: java-demo
        resources: {}
status: {}
3.2 将已有的服务yaml导出
k8s支持将正在运行的服务的yaml文件导出,使用get命令加-o yaml即可(xxx为服务名)
kubectl get deployment xxx -o yaml
例如下图
注意,此yaml内容不能直接在其他k8s环境中使用,在其他环境中使用的话要进行一些删除,要删除的内容如下:
剩余的内容则是一个标准yaml,可以直接使用也可以用作模板修改
3.3关键词提醒
kubectl explain pods.spec.containers
kubectl explain deployment
3.4官网查找
直接在官网搜索关键词,官方会给演示示例
官网地址:
https://kubernetes.io/zh/docs/home/Kubernetes

yaml文件格式说明及编写教程相关推荐

  1. yaml 文件格式简介

    from: http://www.cnblogs.com/phpgo/p/6480107.html .yaml 文件格式简介 命名 YAML 的意思其实是:"Yet Another Mark ...

  2. 【转载】Nessus安全测试插件编写教程

    Nessus安全测试插件编写教程 作者:Renaud Deraison 翻译:nixe0n 1.怎样编写一个高效的Nessus安全测试插件 在Nessus安全测试系统中, 所有的安全测试都是由ness ...

  3. Billy Belceb病毒编写教程---Win32篇

    正在处理中,请稍后-- Billy Belceb病毒编写教程---Win32篇                                      翻译:onlyu                ...

  4. [翻译]Billy Belceb 病毒编写教程for Win32

    Billy Belceb病毒编写教程---Win32篇                                      翻译:onlyu                            ...

  5. 老狼远程协助软件编写教程共62节全(作为作者,应该是最晚发布的了)

    老狼远程协助软件编写教程 本教程将深入剖析Gh0st内核,深入了解远程管理类软件编写的全过程,老狼将带领学员在参考Gh0st源码的基础上,纯手工打造一个新的远程协助软件,自从Gh0st开源后,各种改改 ...

  6. 一个很不错的bash脚本编写教程

    一个很不错的bash脚本编写教程 建立一个脚本 Linux中有好多中不同的shell,但是通常我们使用bash (bourne again shell) 进行shell编程,因为bash是免费的并且很 ...

  7. Exploit编写教程2:跳转的多种姿势

    本文为 Exploit编写教程 的学习笔记,原文请点击这里 本文仅作以防御为目的的技术总结,所有操作均在实验环境下进行,请勿用于非法行为,否则后果自负. 如有侵权烦请告知,我们会立即删除并致歉.谢谢. ...

  8. 最新的Xposed模块编写教程

    原标题:新手不要再被误导!这是一篇最新的Xposed模块编写教程 查看全文 http://www.taodudu.cc/news/show-5139296.html 相关文章: smartbi问题_S ...

  9. AndriodStudio 开发环境下实现Xposed模块开发入门。Xposed框架模块编写教程

    前言: Xposed框架是一款开源框架,其功能是可以在不修改APK的情况下影响程序运行(修改系统)的框架服务,基于它可以制作出许多功能强大的模块,且在功能不冲突的情况下同时运作.Xposed 就好比是 ...

最新文章

  1. es的聚合mysql聚合速度_Elasticsearch(8) --- 聚合查询(Metric聚合)
  2. 疾风之刃的最新服务器,《疾风之刃》服务器数据互通(合服)提前预览
  3. CF17E:Palisection——题解
  4. WPF解析Word为图片
  5. 小程序插件开发使用教程
  6. wordpress登录美化css,wordpress的XIU主题显示美化css配置
  7. 闲鱼如何高效打造一个多业务、低侵入的搜索链路
  8. 【Pytorch】model.train() 和 model.eval() 原理与用法
  9. STM32 CAN通信之二:正常模式
  10. 前端——》H5页面开屏分离特效
  11. 一个屌丝程序猿的人生(五十八)
  12. 多用户php商城 开源,php多用户商城选择开源的好
  13. hadoop start journalnode小坑
  14. Opengl显卡设置问题
  15. 安卓系统的电视机_换机顶盒比换电视机划算,海美迪4K播放器H7 Plus体验
  16. 【爬虫练习】天气预报查询
  17. 02. Java环境搭建
  18. 基于MQTT协议的远程监控-控制系统——ESP/STM32 MCUs 实现
  19. Delphi编程控制摄像头
  20. 计算道路曲线要素的小程序

热门文章

  1. GoodNotes5如何删除音频
  2. Weblogic安装失败
  3. 安装算量软件通风专业操作问答
  4. java画蝴蝶_java之数组
  5. CSS input输入框 placehoder的样式修改
  6. MySQL 默认最大连接数是多少?
  7. word空白页怎样删除
  8. 异或运算及异或运算的应用
  9. 大数据快速入门(06):秒懂资源调度框架 YARN
  10. 面向制造商的实用电子产品(N的第一部分)