当前位置: Http > K8S > Kubernetes之yaml文件详解(汇总-详细)

Kubernetes之yaml文件详解(汇总-详细)

2023-05-16 分类:K8S 作者:admin 阅读(33)

一、YAML基础

YAML是专门用来写配置文件的语言,非常简洁和强大,使用比json更方便。它实质上是一种通用的数据串行化格式。

YAML语法规则:

1.1 YAML Maps

Map顾名思义指的是字典,即一个Key:Value 的键值对信息。例如:

Maps的value既能够对应字符串也能够对应一个Maps。例如:

注:上述的YAML文件中,metadata这个KEY对应的值为一个Maps,而嵌套的labels这个KEY的值又是一个Map。实际使用中可视情况进行多层嵌套。

YAML处理器根据行缩进来知道内容之间的关联。上述例子中,使用两个空格作为缩进,但空格的数据量并不重要,只是至少要求一个空格并且所有缩进保持一致的空格数 。例如,name和labels是相同缩进级别,因此YAML处理器知道他们属于同一map;它知道app是lables的值因为app的缩进更大。

注意:在YAML文件中绝对不要使用tab键

1.2 YAML Lists

List即列表,说白了就是数组,例如:

可以指定任何数量的项在列表中,每个项的定义以破折号(-)开头,并且与父元素之间存在缩进。在JSON格式中,表示如下:

当然Lists的子项也可以是Maps,Maps的子项也可以是List,例如:

如上述文件所示,定义一个containers的List对象,每个子项都由name、image、ports组成,每个ports都有一个KEY为containerPort的Map组成,转成JSON格式文件:

二、说明

定义配置时,指定最新稳定版API
配置文件应该存储在集群之外的版本控制仓库中。如果需要,可以快速回滚配置、重新创建和恢复
应该使用YAML格式编写配置文件,而不是json。YAML对用户更加友好
可以将相关对象组合成单个文件,通常会更容易管理
不要没必要指定默认值,简单和最小配置减小错误
在注释中说明一个对象描述更好维护

三、使用YAML创建Pod

apiVersion:此处值是v1,这个版本号需要根据安装的Kubernetes版本和资源类型进行变化,记住不是写死的。
kind:此处创建的是Pod,根据实际情况,此处资源类型可以是Deployment、Job、Ingress、Service等。
metadata:包含Pod的一些meta信息,比如名称、namespace、标签等信息。
spec:包括一些container,storage,volume以及其他Kubernetes需要的参数,以及诸如是否在容器失败时重新启动容器的属性。可在特定Kubernetes API找到完整的Kubernetes Pod的属性。
(1)查看apiVersion

(2)下面是一个典型的容器定义:

上述例子只是一个简单的最小定义:一个名字(front-end)、基于nginx的镜像,以及容器将会监听的指定端口号(80)。

除了上述的基本属性外,还能够指定复杂的属性,包括容器启动运行的命令、使用的参数、工作目录以及每次实例化是否拉取新的副本。 还可以指定更深入的信息,例如容器的退出日志的位置。容器可选的设置属性包括:

name、image、command、args、workingDir、ports、env、resource、volumeMounts、livenessProbe、readinessProbe、livecycle、terminationMessagePath、imagePullPolicy、securityContext、stdin、stdinOnce、tty

(3)kubectl创建Pod

(4)查看Pod状态

四、创建Deployment

名词解释

(1)创建一个yaml文件

(2)创建deployment

(3)查看标签

(4)通过标签查找Pod

(5)deployment创建过程

Deployment 管理的是replicaset-controller,RC会创建Pod。Pod自身会下载镜像并启动镜像

(6)升级镜像(nginx1.10–>nginx1.11)

升级镜像的过程是逐步进行的,pod不会一下子全部关闭,而是一个一个升级

(7)查看发布状态

(8)查看deployment历史修订版本

(8)编辑deployment

升级过程:

(10)扩容/缩容(指定–replicas的数量)

(11)创建Service提供对外访问的接口

创建service

查看service(访问Pod是有负载均衡的)

对service的描述

(12)回滚到以前的版本

(13)回滚到指定版本

附上一个具体的yaml解释文件:

来源:https://blog.csdn.net/BigData_Mining/article/details/88535356

继续阅读:

暴露service供外部访问的4种方法:https://blog.csdn.net/annita2019/article/details/109053070

「三年博客,如果觉得我的文章对您有用,请帮助本站成长」

赞(0) 打赏

支付宝
微信
0

支付宝
微信
标签:

上一篇:

下一篇:

你可能感兴趣

共有 0 - Kubernetes之yaml文件详解(汇总-详细)

博客简介

精彩评论

  • admin(6年前 (2020-03-09))

    分别用不同厚度的筏板定义,画图后这设置筏板变截面处理。 http://f.fwxgx.co...

    评:新文章!
  • admin(6年前 (2020-03-09))

    分别用不同厚度的筏板定义,画图后这设置筏板变截面处理。 http://f.fwxgx.co...

    评:新文章!
  • admin(6年前 (2020-03-09))

    新增一个框架图! http://biji.jinli.vip/wp-content/upl...

    评:新文章!
  • 一位WordPress评论者(6年前 (2020-02-13))

    嗨,这是一条评论。 要开始审核、编辑及删除评论,请访问仪表盘的“评论”页面。 评论者头像来自...

    评:世界,您好!