当前位置: 首页 > news >正文

k8s-yaml文件

文章目录

  • 一、K8S支持的文件格式
    • 1、yaml和json的主要区别
    • 2、YAML语言格式
  • 二、YAML
    • 1、查看 API 资源版本标签
    • 2、编写资源配置清单
      • 2.1 编写 nginx-test.yaml 资源配置清单
      • 2.2 创建资源对象
      • 2.3 查看创建的pod资源
    • 3、创建service服务对外提供访问并测试
      • 3.1 编写nginx-svc-test.yaml文件
      • 3.2 创建资源对象
      • 3.3 访问测试
  • 三、详解K8S中的Port
  • 四、试运行生成 yaml 模板后创建实例
    • 1、–dry-run:试运行
    • 2、查看生成yaml格式
    • 3、查看生成json格式
    • 4、使用 yaml 格式导出生成模板
    • 5、使用 yaml 模板创建实例
    • 6、将现有资源生成 yaml 模板导出并保存为文件
    • 7、查看字段帮助信息
  • 五、总结

一、K8S支持的文件格式

kubernetes支持YAML和JSON文件格式管理资源对象。

  1. JSON格式:主要用于api接口之间消息的传递
  2. YAML格式:用于配置和管理,YAML是一种简洁的非标记性语言,内容格式人性化,较易读

1、yaml和json的主要区别

  1. YAML 使用空格缩进,这是 Python 开发人员熟悉的领域。
  2. JavaScript 开发人员喜欢 JSON,因为它是 JavaScript 的一个子集,可以直接在 JavaScript中解释和编写,同时使用简写方式声明 JSON,在使用没有空格的典型变量名时,不需要键中的双引号。
  3. 有很多解析器在 YAML 和 JSON 的所有语言中都能很好地工作。
  4. 在许多情况下,YAML 的空白格式可以更容易查看,因为格式化需要更人性化的方法。
  5. 如果您的编辑器中没有空格可见或缩进线指示符,那么 YAML 的空白虽然更紧凑,更容易查看,但可能难以手动编辑
  6. JSON 的序列化和反序列化要快得多,因为要检查的功能明显少于 YAML,这使得更小更轻的代码能够处理 JSON。
  7. 一个常见的误解是 YAML 需要较少的标点符号并且比 JSON更紧凑,但这完全是错误的。空格是不可见的,所以看起来字符较少,但是如果你计算实际的空格是必要的,以便正确解释 YAML以及正确的缩进,你会发现 YAML 实际上需要比 JSON 更多的字符。JSON不使用空格来表示层次结构或分组,并且可以通过删除不必要的空格来轻松展平,以实现更紧凑的传输。

2、YAML语言格式

  1. 大小写敏感
  2. 使用缩进表示层级关系
  3. 不支持 Tab 键制表符缩进,只使用空格缩进
  4. 缩进的空格数目不重要,只要相同层级的元素左侧对齐即可,通常开头缩进两个空格
  5. 符号字符后缩进一个空格,如冒号,逗号,短横杠(-)等
  6. — 表示 YAML 格式,一个文件的开始,用于分隔文件
  7. # 表示注释

二、YAML

1、查看 API 资源版本标签

kubectl api-versions

在这里插入图片描述

2、编写资源配置清单

2.1 编写 nginx-test.yaml 资源配置清单

vim nginx-test.yaml#指定api版本标签
apiVersion: apps/v1
#定义资源的类型/角色,deployment为副本控制器
#此处资源类型可以是Deployment、Job、Ingress、Service等
kind: Deployment
#定义资源的元数据信息,比如资源的名称、namespace、标签等信息
metadata:
#定义资源的名称,在同一个namespace空间中必须是唯一的name: nginx-deploymentlabels:app: nginx
#定义deployment资源需要的参数属性,诸如是否在容器失败时重新启动容器的属性
spec:
#定义副本数量replicas: 3
#定义标签选择器selector:
#定义匹配标签matchLabels:
#需与后面的.spec.template.metadata.labels定义的标签保持一致app: nginx
#定义业务模板,如果有多个副本,所有副本的属性会按照模板的相关配置进行匹配template:metadata:
#定义Pod副本将使用的标签,需与前面的.spec.selector.matchLabels定义的标签保持一致labels:app: nginxspec:
#定义容器属性containers:
#定义一个容器名,一个-name:定义一个容器- name: nginx
#定义容器使用的镜像以及版本image: nginx:1.15.4ports:
#定义容器对外的端口- containerPort: 80#------------------------------------------------------------------#
#无注释
apiVersion: apps/v1
kind: Deployment
metadata:name: nginx-deploymentlabels:app: nginx
spec:replicas: 3selector:matchLabels:app: nginxtemplate:metadata:labels:app: nginxspec:containers:- name: nginximage: nginx:1.15.4ports:- containerPort: 80

在这里插入图片描述

2.2 创建资源对象

kubectl create -f nginx-test.yaml --validate=false

在这里插入图片描述

2.3 查看创建的pod资源

kubectl get pods -o wide 

在这里插入图片描述

3、创建service服务对外提供访问并测试

3.1 编写nginx-svc-test.yaml文件

[root@master ~]# vim nginx-svc-test.yamlapiVersion: v1
kind: Service
metadata:name: nginx-svclabels:app: nginx
spec:type: NodePortports:- port: 80targetPort: 80selector:
#此处定义的selector要与deployment所定义的selector相同
#service依靠标签选择器来检索提供服务的nodesapp: nginx

在这里插入图片描述

3.2 创建资源对象

kubectl create -f nginx-svc-test.yaml
kubectl get svc

在这里插入图片描述

3.3 访问测试

访问nginx-test的ip

在这里插入图片描述

在这里插入图片描述

三、详解K8S中的Port

在这里插入图片描述

port

  • port 是 k8s 集群内部访问 service 的端口,即通过 clusterIP:port 可以从 Pod 所在的 Node上访问到service

nodePort

  • nodePort 是外部访问 k8s 集群中 service 的端口,通过 nodeIP:nodePort 可以从外部访问到service

targetPort

  • targetPort 是 Pod 的端口,从 port 或 nodePort 来的流量经过 kube-proxy反向代理负载均衡转发到后端 Pod 的 targetPort 上,最后进入容器

containerPort

  • containerPort 是 Pod 内部容器的端口,targetPort 映射到 containerPort

四、试运行生成 yaml 模板后创建实例

1、–dry-run:试运行

–dry-run:表示试运行,不真正执行命令(测试命令是否正确),即并不会真的创建出 pod 和 deployment 实例,去掉该参数后即可真正执行命令。

kubectl create deployment dryrun-test --image=nginx --port=80 --replicas=3 --dry-run
#打印相应的 API 对象而不执行创建

在这里插入图片描述

2、查看生成yaml格式

使用 --dry-run 试运行可不触发生成命令,然后通过 -o yaml 可实现对其 yaml 资源配置清单的查看

kubectl run dryrun-test --image=nginx --port=80 --replicas=3 --dry-run -o yaml

在这里插入图片描述

3、查看生成json格式

可通过 -o json 查看该命令产生的 json 配置清单

kubectl run dryrun-test --image=nginx --port=80 --replicas=3 --dry-run -o json

在这里插入图片描述

4、使用 yaml 格式导出生成模板

kubectl create deployment dryrun-test --image=nginx --port=80 --replicas=3 --dry-run=client -o yaml > dryrun-test.yaml

在这里插入图片描述

在这里插入图片描述

5、使用 yaml 模板创建实例

kubectl apply -f dryrun-test.yaml
kubectl get pod,deploy

在这里插入图片描述

在这里插入图片描述

6、将现有资源生成 yaml 模板导出并保存为文件

kubectl get deploy/dryrun-test -o yaml
kubectl get deploy/dryrun-test -o yaml > export-test.yaml

在这里插入图片描述

在这里插入图片描述

7、查看字段帮助信息

explain 可一层层的查看相关资源对象的帮助信息

kubectl explain deployments.spec.template.spec.containers

在这里插入图片描述

在这里插入图片描述

五、总结

没有相关资源,使用 run 命令 --dry-run 选项

kubectl run dryrun-test --image=nginx --port=80 --replicas=3 --dry-run -o yaml > dryrun-test.yaml

已有相关资源,使用 get 命令 --export 选项

kubectl get deploy dryrun-test --export -o yaml > export-test.yaml

相关文章:

k8s-yaml文件

文章目录一、K8S支持的文件格式1、yaml和json的主要区别2、YAML语言格式二、YAML1、查看 API 资源版本标签2、编写资源配置清单2.1 编写 nginx-test.yaml 资源配置清单2.2 创建资源对象2.3 查看创建的pod资源3、创建service服务对外提供访问并测试3.1 编写nginx-svc-test.yaml文…...

存储引擎

目录 ❤ MySQL存储引擎 什么是存储引擎? MySQL支持哪个存储引擎? ❤ 各种存储引擎的特性 概述 各种存储引擎的特性 各种搜索引擎介绍 ❤ 常用存储引擎及适用场景 ❤ 存储引擎在mysql中的使用 存储引擎相关sql语句 指定存储引擎建表 在建表时指定 在配置文件中…...

Go中 channel的使用

文章目录背景channel 简介使用说明声明发送和接受数据关闭channel使用示例背景 使用 sync 包和 context 包的工具可以实现多个协程之间互相协作, 但是没有一种很好的方式解决多个协程之间通信的问题. golang 作者 Rob Pike 说过一句话,不要通过共享内存来通信&…...

【C++】string OJ练习

文章目录1. 仅仅反转字母思路分析代码实现2. 字符串中的第一个唯一字符题目分析代码实现3. 《剑指offer》——替换空格解法一:寻找替换思路分析代码实现优化解法二:空间换时间思路分析代码实现4.字符串最后一个单词的长度思路分析代码实现5. 字符串相加思…...

进程间通信IPC

进程间通信IPC (InterProcess Communication) 一、进程间通信的概念 每个进程各自有不同的用户地址空间,任何一个进程的全局变量在另一个进程中都看不到,所以进程之间要交换数据必须通过内核,在内核中开辟一块缓冲区,进程1把数据…...

操作系统-页面淘汰算法(下)-软件设计(二十六)

操作系统-PV操作(上)-软件设计(二十五)https://blog.csdn.net/ke1ying/article/details/129476031 存储管理-分区存储组织 问:计算机系统内存大小为128k,当前系统分配情况如图,那么作业4再次申…...

23种设计模式-责任链模式(Android开发实际应用场景介绍)

什么是责任链模式 责任链模式是一种行为型设计模式,它的核心思想是将请求从一系列处理者中传递,直到其中一个处理者能够处理它为止。在这个过程中,请求可以被任何一个处理者处理,也可以被拒绝,直到有一个处理者能够处…...

Socket+Select+Epoll笔记

讲到epoll,就必须了解Socket,上篇博客写了Socket的基本使用方法,步骤主要为创建一个socketsocket是进程之间通信的,那么进程通信如何找到这个socket呢?当然是端口号,所以socket就要和端口号进行绑定&#x…...

git查看最近修改的文件

git log --name-status 每次修改的文件列表, 显示状态 git log --name-only 每次修改的文件列表 git log --stat 每次修改的文件列表, 及文件修改的统计 git whatchanged 每次修改的文件列表 git whatchanged --stat 每次修改的文件列表, 及文件修改的统计 git show 显示最…...

【算法基础(四)】堆排序(二)

堆排序(二) 把数组从零开始连续的一段 完全二叉树 size i 左 son 2*11 i 右 son 2*12 父 (i-1) / 2 堆是完全二叉树,分为大根堆和小根堆 在完全二叉树里,每一棵子数最大的值是头节点的值,就是大根堆 同理&…...

C++类型转换

C语言的转换是在变量前加类型名进行转换的,比如double pi 3.14;int a (int) pi;对于指针也是如此double* dptr πint* iptr (int*)dptr;虽然c兼容了C语言的转型方式,但是也做了很多限制,比如向上类型转换,在c中建议使用…...

Keil MDK6要来了,将嵌入式软件开发水平带到新高度,支持跨平台(2023-03-11)

注:这个是MDK6,不是MDK5 AC6,属于下一代MDK视频版: https://www.bilibili.com/video/BV16s4y157WF Keil MDK6要来了,将嵌入式软件开发水平带到新高度,支持跨平台一年一度的全球顶级嵌入式会展Embedded Wor…...

蓝桥杯刷题第九天

题目描述本题为填空题,只需要算出结果后,在代码中使用输出语句将所填结果输出即可。素数就是不能再进行等分的整数。比如7,11。而 9 不是素数,因为它可以平分为 3 等份。一般认为最小的素数是2,接着是 3,5&…...

a-tree-select 基本使用,下拉框高度和宽度设置、回显时滚动条定位解决。

目录一、基本使用1. 界面效果2. 代码实现3. 问题1:下拉框占满整个屏幕4. 问题4:菜单内容过长时,下拉菜单宽度无限变宽。二、数据回显、滚动条定位1. 界面效果2. 代码实现2.1 获取默认展开节点2.1.1 代码实现2.1.2 说明2.2 设置滚动条定位2.2.…...

【Linux】之nc命令(连接与扫描指定端口、监测服务端口的使用情况)解析、详解实例、邮件告警

🍁博主简介 🏅云计算领域优质创作者   🏅华为云开发者社区专家博主   🏅阿里云开发者社区专家博主 💊交流社区:运维交流社区 欢迎大家的加入! 文章目录nc命令简介nc命令的安装nc命令语法格式…...

cdn简单配置

cdn配置域名接入CDN编辑CDN配置本地修改hosts文件,绕过公网解析域名接入CDN 添加CDN域名以及回源配置 编辑CDN配置 默认后端端口是80,如果测试发现无法访问,则可能是443或其它 如果域名在CDN后端有https强制跳转,后端端口一定是44…...

前端安全(自留)

目录XSS——跨站脚本常见解决CSRF ——跨站请求伪造常见解决XSS——跨站脚本 当目标站点在渲染html的过程中,遇到陌生的脚本指令执行。 攻击者通过在网站注入恶意脚本,使之在用户的浏览器上运行,从而盗取用户的信息如 cookie 等。 常见 解…...

零基础转行云计算可行吗

目前处于云年代,云计算运维工程师的工作远景还是十分广泛的。像是阿里云计算,滴滴,抖音等等互联网大厂目前都在使用云核算技能。 云计算运维工程师的薪资水平也十分可观。 运维工程师(Operations),在国内又称为运维开发工程师(Dev…...

【AcWing】蓝桥杯备赛-深度优先搜索-dfs(1)

目录 写在前面: 题目:92. 递归实现指数型枚举 - AcWing题库 读题: 输入格式: 输出格式: 数据范围: 输入样例: 输出样例: 解题思路: 代码: AC &…...

孩子免费就读|私企经理自费赴美国东海岸高校访学

私企U经理无文章无课题,出国访学除了为考察市场、拓宽人脉、提升履资外,另一个主要目的是带孩子在美国接受当地免费的公立中小学教育,并把访学目标学校定位在东海岸。最终其采纳了板凳费相对较低的佐治亚大学邀请函,签证时居然全家…...

前端面试hr经常会问的问题

文章目录前言1.自我介绍2.为什么你要离职?3.工作经历4.职业规划5.优点、缺点6.还有什么要问的总结前言 这里记录了一些面试中hr或者项目负责人经常会问的一些问题,可以提前参考参考,想想该怎么回答,为之后的面试做好准备&#xf…...

C动态数组

在实际项目中,我们经常与各式各样的数据打交道。 例如:我们处理的是学生的数据。 struct student {int id; // 学号char name[20]; // 姓名int gender; // 性别int mark; // 成绩 };学生数据使用一个结构体表示,该结构体拥有4个成员。分别为…...

【STL一】STL组件(容器、迭代器、算法)

【STL一】STL组件(容器、迭代器、算法)一、STL二、STL组件(component)1、stl六大组件2、C STL的13个头文件3、stl所有头文件三、容器(container)1、序列容器(Sequence container)——顺序容器2、关联容器&a…...

Java每日一练(20230312)

目录 1. 两数之和 II ★ 2. 反转链表 ★★ 3. 二叉树的层序遍历 II ★★★ 🌟 每日一练刷题专栏 C/C 每日一练 ​专栏 Python 每日一练 专栏 Java 每日一练 专栏 1. 两数之和 II 给定一个已按照 非递减顺序排列 的整数数组 numbers ,请你从数…...

Linux中sudo,su与su -命令的区别

前言 su命令就是切换用户的工具,怎么理解呢?比如我们以普通用户tom登录的,但要添加用户任务,执行useradd ,tom用户没有这个权限,而这个权限恰恰由root所拥有。解决办法无法有两个,一是退出tom用…...

归并排序有多简单?一幅图教你看懂【C语言】

目录 归并排序的递归实现 代码实现 归并排序的非递归实现 代码实现 归并排序的思想很简单——分治法。简单地说,归并排序的是将序列拆分成几段子序列,将每一段子序列分别进行排序,排好之后再将有序的子序列归并(有点像合并两…...

C++-Z字扫描实现(Zigzag Scan)

Z字扫描(Zigzag Scan) 将二维矩阵压缩成行输出&#xff1a; int index0; for(int i0;i<rowscols-1;i){//i是第几条对角线if(i&1){//odd,向下扫描for(int jmax(0,i-cols1);j<min(i,row-1);j){res[index]mtx[j][i-j];}//}else{//偶数&#xff0c;向上扫描for(int jmi…...

【华为机试真题详解 Python实现】求最大数字【2023 Q1 | 100分】

文章目录 前言题目描述输入描述输出描述示例 1示例 2题目解析参考代码前言 《华为机试真题详解》专栏含牛客网华为专栏、华为面经试题、华为OD机试真题。 如果您在准备华为的面试,期间有想了解的可以私信我,我会尽可能帮您解答,也可以给您一些建议! 本文解法非最优解(即…...

面对数万亿产业规模,如何掘金工业互联网?

近年来&#xff0c;加速工业互联网建设的声音越来越响亮。一方面&#xff0c;政策利好&#xff0c;持续驱动。从2017年的《国务院关于深化“互联网先进制造业” 发展工业互联网的指导意见》到《工业互联网创新发展三年行动计划&#xff08;2021-2023年&#xff09;》&#xff0…...

#ifdefine #define #endif (避免头文件被重复包含的真正含义)

宏定义 首先在谈论正式话题之前&#xff0c;需要先介绍一个基础概念&#xff0c;也是前提&#xff0c;那就是宏定义。 #define demo 1 #define PI 3.14我们都知道这样会将demo 在预处理阶段替换或者说展开为1&#xff0c;Pi 替换为3.14。 #define 宏定义一个标识符来表示一个…...

商丘网站建设方案/长沙百度首页优化排名

前段时间看到在V公司工作的朋友们都开始使用Mac电脑了。 一直对苹果电脑充满向往的我&#xff0c;实在是好心动&#xff08;同时伴随着一小股心痛&#xff0c;只有一小股…这得花多少银子呀…虽然我用得也是Mac….&#xff09; 堆得小山般的Apple iPAD 批量安装Mac Book Pro系统…...

找人做网站需要准备什么材料/济南今日头条新闻

删除软件要删除软件非常简单&#xff0c;只要执行下面的命令就行&#xff1a;# rpm –e xanim这时&#xff0c;用户要注意使用的是软件的名称xanim&#xff0c;而不是软件包的名称xanim-27.64-3.i386.rpm。如果要删除的软件是其它软件所需要的&#xff0c;用户会得到类似下面…...

广州外贸营销型网站/网址缩短在线生成器

实现效果&#xff1a;实现功能&#xff1a;viewpagerfragment实现加载界面sqlite数据获取并显示到listview上listview的item监听并携带数据跳转到其他界面使用sharedpreference存储部分测试数据实现过程&#xff1a;各方法和变量的作用请详见代码注释。listview的数据显示请见a…...

jsp做网站遇到的问题/百度竞价点击价格公式

1、修改manifest.json中的id 2、修改包名 转载于&#xff1a;https://www.jianshu.com/p/ce4688b9c856...

什么网站做任务赚钱/制作网站需要什么软件

一、测试数据&#xff1a;手机上网日志1.1 日志假设我们如下一个日志文件&#xff0c;这个文件的内容是来自某个电信运营商的手机上网日志&#xff0c;文件的内容已经经过了优化&#xff0c;格式比较规整&#xff0c;便于学习研究。每一行不同的字段又有不同的含义&#xff0c;…...

河北住房和城乡建设厅网站驱动/惠州seo网站管理

文章目录命名空间的 using 声明标准库类型string定义和初始化string对象string对象上的操作字面值和string对象相加处理string对象中的字符标准库类型vector定义和初始化vector对象向vector对象中添加元素等操作迭代器使用迭代器迭代器运算数组复杂的数组声明访问数组元素指针和…...