[Kubernetes]yaml文件详解
应前一段时间夸下的海口:[Kubernetes]如何使用yaml文件使得可以向外暴露服务,说过要写一篇关于yaml文件详解的文章出来的,今天来总结一下.yaml文件用在很多地方,但是这里以介绍在Kubernetes中的应用为主.
| YAML基础 |
YAML(Yet Another Markup Language)不是一种标志语言.它的应用很广泛,在这里着重讲一讲,在Kubernetes中的一些内容.
使用YAML用于k8s的定义将给你一些好处,包括:
YAML是一个JSON的超集,意味着任何有效JSON文件也都是一个YAML文件.关于Kubernetes中YAML的使用,只有两种类型你需要知道:
| YAML Maps |
咱们先来看看YAML Maps这种类型.Maps可以将键值组合,从而可以更加方便的去配置信息.像下面这样,你可能会有这样一个配置信息:
---
apiVersion: v1
kind: Service
第一行是分隔符,并且是可选的.如果在单个文件中只定义了一个服务,那么这种情况下,第一行的分隔符就可以忽略不计.
在上面的例子中,可以看出有两个值:v1和Service,对应它们的键是apiVersion和kind
| YAML Lists |
接下来介绍一下YAML Lists.其实它就是一个序列的对象,例如:
args
- sleep
- "1000"
- message
我们可以看到,可以有任何数量的项在列表中,项的定义以破折号(-)开头,并且和父元素之间存在缩进.但是要注意一点:在YAML文件中绝对不要使用tab键来进行缩进.
| 实际中的运用 |
基本上,不管我们想要什么样的结构,都可以通过这两个结构去组合实现.接下来我就以我在项目中使用的yaml文件为例来进行讲解一下(#后面内容为注释内容):
apiVersion: v1
kind: ReplicationController #类型是一个RC
metadata:
name: nginx-controller
spec:
replicas: 2 #我想要2个RC
selector:
name: mynginx
template:
metadata:
labels:
name: mynginx
spec:
containers:
- name: mynginx
image: reg.zll.com/web/nginx:1.12.2 #前端需要部署在nginx上,这里是对应的nginx的镜像。
volumeMounts:
- name: httpd-storage
mountPath: /etc/nginx/nginx.conf #镜像中nginx的配置文件地址,用下面的path:/home/nginx.conf去代替此路径。
- name: httpd-storag
mountPath: /usr/local/dist
ports:
- containerPort: 80
volumes:
- name: httpd-storage
hostPath:
path: /home/nginx.conf #自定义的nginx的配置文件,挂载到服务器上的这一路径下,去代替镜像中nginx的配置
- name: httpd-storag
hostPath:
path: /usr/local/dist #前端打包好的文件,放置的路径,去代替上放的mountPath:/usr/local/dist
---
apiVersion: v1
kind: Service #类型是个service
metadata:
name: nginx-service-nodeport
spec:
ports:
- port: 8000
targetPort: 80
nodePort: 30080 #暴露出来可供访问的IP.
protocol: TCP
type: NodePort
selector:
name: mynginx
就我目前知识,研究到了这种程度,感谢您的阅读~
[Kubernetes]yaml文件详解的更多相关文章
- Kubernetes (yaml 文件详解)
# yaml格式的pod定义文件完整内容:apiVersion: v1 #必选,版本号,例如v1kind: Pod #必选,Podmetadata: #必选,元数据 ...
- k8s之yaml文件详解
k8s之yaml文件详解 目录 k8s之yaml文件详解 1. k8s支持的文件格式 2. YAML语言格式 3. 查看api资源版本标签 4. 编写nginx-test.yaml资源配置清单 4.1 ...
- K8s创建pod yaml文件详解
kubernetes创建pod的yaml文件,参数说明 apiVersion: v1 #指定api版本,此值必须在kubectl apiversion中 kind: Pod #指定创建资源的角色/类型 ...
- dart系列之:元世界pubspec.yaml文件详解
目录 简介 pubspec.yaml支持的字段 一个例子 字段详情 总结 简介 pubspec.yaml是所有dart项目的灵魂,它包含了所有dart项目的依赖信息和其他元信息,所以pubspec.y ...
- 6.YAML文件详解、PyYaml操作
YAML简介: yaml是一种数据格式,支持注释,换行,多行字符串,裸字符串(正序,字符串) YAML作用: 用于全局的配置文件 用于测试用例编写 YAML语法规则: 区分大小写 使用缩进 ...
- k8s yaml文件详解
1.yaml格式的Pod配置文件内容及注解 深入Pod之前,首先我们来了解下Pod的yaml整体文件内容及功能注解. 如下: # yaml格式的pod定义文件完整内容: apiVersion: v1 ...
- Kubernetes YAML 文件全字段详解
Kubernetes YAML 文件全字段详解 Deployment yaml 其中主要参数都在podTemplate 中,DaemonSet StatefulSet 中的pod部分一样. apiVe ...
- Kubernetes 部署策略详解-转载学习
Kubernetes 部署策略详解 参考:https://www.qikqiak.com/post/k8s-deployment-strategies/ 在Kubernetes中有几种不同的方式发布应 ...
- 附005.Docker Compose文件详解
一 Docker Compose文件简介 compose文件使用yml格式,主要分为了四个区域: version:用于指定当前docker-compose.yml语法遵循哪个版本 services:服 ...
随机推荐
- Exp6 信息搜集与漏洞扫描 20165110
Exp6 信息搜集与漏洞扫描 20165110 一.实践目标 掌握信息搜集的最基础技能与常用工具的使用方法. 二.实践内容 (1)各种搜索技巧的应用 (2)DNS IP注册信息的查询 (3)基本的扫描 ...
- C#中字节数组(byte[])和字符串相互转换
转换过程主要使用到System.Text.Encoding命名空间下的类 1. 字符串转换成字节数组byte[]: string str = "This is test string&quo ...
- Spring表达式语言SpEL
Spring表达式语言,简称SpEL,是一个支持运行时查询和操作对象图的强大的表达式语言.语法类似于EL:SpEL使用#{…}作为定界符,所有在大括号中的字符都将被认为是SpEL SpEL为bean属 ...
- Java多线程9:中断机制
一.概述 之前讲解Thread类中方法的时候,interrupt().interrupted().isInterrupted()三个方法没有讲得很清楚,只是提了一下.现在把这三个方法同一放到这里来讲, ...
- 电脑装windows和ubuntu,如何卸载ubuntu系统
电脑装windows和ubuntu,如何卸载ubuntu系统 2018年01月17日 16:28:29 职业炮灰 阅读数:684 版权声明:本文为博主原创文章,未经博主允许不得转载. https ...
- Git submodule - 子模块【转】
子模块 有种情况我们经常会遇到:某个工作中的项目需要包含并使用另一个项目. 也许是第三方库,或者你独立开发的,用于多个父项目的库. 现在问题来了:你想要把它们当做两个独立的项目,同时又想在一个项目中使 ...
- linux服务端日志中截取自己所需要的部分
近期开发一个图片处理的业务,涉及base64字符串解析的问题,为方便与友商间接口调试,日志中保存Base64.日,想想就肝儿疼,记录下来容易,取的时候难.为准确提取,配合两条命令即可. 1.获取日志所 ...
- 川普和习G-20会面为缓和中美贸易战提供了很大的机会
川普和习将于这周在Buenos Aires(阿根廷首都)会面,互相商讨虚弱经济全球化的最大威胁. 自从川普在今年七月第一次开始提高中国商品关税之后,对全球的投资者和逐渐削弱的经济活动来说,两位领导人可 ...
- 用django2.1开发公司官网(上)
1.在MySQL中新建数据库 show databases;//查看已经有的数据库 create database guanwang; 2.新建django项目guan 1.使用pycharm新建dj ...
- '{}/{}_frames_{:02d}.npy'.format(dataset, train_or_test, i+1)函数
在阅读有关代码的时候,发现一段代码写为: data_frames = np.load(os.path.join(video_root_path, '{}/{}_frames_{:02d}.npy'.f ...