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

云原生K8S------Yaml文件详解

目录

一:K8S支持的文件格式

1,yaml和json的主要区别

2,YAML语言格式

二:yuml

1、查看 api 资源版本标签

 2、写一个yaml文件demo

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

4、详解k8s中的port

 三:文件生成

1、kubectl run 生成

2、 kubectl get将现有的资源生成模板导出

 3、写yaml太累怎么办?

4、官网下载资源模板


一:K8S支持的文件格式

kubernetes支持yaml和json文件格式管理资源对象

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

1,yaml和json的主要区别

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

2,YAML语言格式

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

二:yuml

1、查看 api 资源版本标签

//查看 api 资源版本标签
kubectl api-versionsadmissionregistration.k8s.io/v1beta1
apiextensions.k8s.io/v1beta1
apiregistration.k8s.io/v1
apiregistration.k8s.io/v1beta1
apps/v1								#如果是业务场景一般首选使用 apps/v1
apps/v1beta1						#带有beta字样的代表的是测试版本,不用在生产环境中
apps/v1beta2
authentication.k8s.io/v1
authentication.k8s.io/v1beta1
authorization.k8s.io/v1
authorization.k8s.io/v1beta1
autoscaling/v1
autoscaling/v2beta1
autoscaling/v2beta2
batch/v1
batch/v1beta1
certificates.k8s.io/v1beta1
coordination.k8s.io/v1beta1
events.k8s.io/v1beta1
extensions/v1beta1
networking.k8s.io/v1
policy/v1beta1
rbac.authorization.k8s.io/v1
rbac.authorization.k8s.io/v1beta1
scheduling.k8s.io/v1beta1
storage.k8s.io/v1
storage.k8s.io/v1beta1
v1

 2、写一个yaml文件demo

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

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

vim nginx-service.yaml
apiVersion: v1  
kind: Service  
metadata:name: nginx-servicelabels:app: nginx  
spec:type: NodePort  ports:- port: 80targetPort: 80  selector:app: nginx//创建资源对象
kubectl create -f nginx-service.yaml //查看创建的service
kubectl get svc//在浏览器输入 nodeIP:nodePort 即可访问

 

 

4、详解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。
 

 三:文件生成

1、kubectl run 生成

//kubectl run --dry-run=client 打印相应的 API 对象而不执行创建
kubectl run nginx-test --image=nginx --port=80 --dry-run=client
kubectl create deployment nginx-deploy --image=nginx --port=80 --replicas=3 --dry-run=client//查看生成yaml格式
kubectl run nginx-test --image=nginx --port=80 --dry-run=client -o yaml
kubectl create deployment nginx-deploy --image=nginx --port=80 --replicas=3 --dry-run=client -o yaml//查看生成json格式
kubectl run nginx-test --image=nginx --port=80 --dry-run=client -o json
kubectl create deployment nginx-deploy --image=nginx --port=80 --replicas=3 --dry-run=client -o json//使用yaml格式导出生成模板,并进行修改以及删除一些不必要的参数
kubectl run nginx-test --image=nginx --port=80 --dry-run=client -o yaml > nginx-test.yaml
kubectl create deployment nginx-deploy --image=nginx --port=80 --replicas=3 --dry-run=client -o yaml  > nginx-deploy.yamlvim nginx-test.yaml
apiVersion: v1
kind: Pod
metadata:creationTimestamp: null     #删除labels:run: nginx-testname: nginx-test
spec:containers:- image: nginxname: nginx-testports:- containerPort: 80resources: {}             #删除dnsPolicy: ClusterFirstrestartPolicy: Always
status: {}                    #删除

 

2、 kubectl get将现有的资源生成模板导出


//将现有的资源生成模板导出
kubectl get svc nginx-service -o yaml//保存到文件中
kubectl get svc nginx-service -o yaml > my-svc.yaml//查看字段帮助信息,可一层层的查看相关资源对象的帮助信息
kubectl explain deployments.spec.template.spec.containers
或
kubectl explain pods.spec.contain

 3、写yaml太累怎么办?

●用 --dry-run 命令生成
kubectl run my-deploy --image=nginx --dry-run=client -o yaml > my-deploy.yaml●用get命令导出
kubectl get svc nginx-service -o yaml > my-svc.yaml
或
kubectl edit svc nginx-service  #复制配置,再粘贴到新文件

4、官网下载资源模板

www.kubernetes.io

 

 

 

 

相关文章:

云原生K8S------Yaml文件详解

目录 一:K8S支持的文件格式 1,yaml和json的主要区别 2,YAML语言格式 二:yuml 1、查看 api 资源版本标签 2、写一个yaml文件demo 3、创建service服务对外提供访问并测试 4、详解k8s中的port 三:文件生成 1、kubec…...

测试开发环境安装

安装python运行环境 下载地址:链接 http://python.p2hp.com/downloads/windows/index.html 选择合适自己的版,我下载的3.8.10的进行安装 安装码编辑器Pychrom 下载地址:链接 https://www.jetbrains.com/pycharm/ 拉到最下面可以下载社区版…...

微信小程序如何引入Iconfont

在小程序中引入 Iconfont 可以通过以下步骤进行操作: 打开 Iconfont 网站(https://www.iconfont.cn/)并登录账号,创建一个项目并添加所需的图标到项目中。 在项目中选中需要使用的图标,点击右上角的 “下载代码” 按钮…...

php使用get和post传递数据出现414 Request-URI Too Large的解决方案

递数据出现414 Request-URI Too Large的解决方案 一、Request-URI Too Large的原因二、GET与POST三、项目分析1.读取源数据2.将读取的到数据,进行传递3.ajax获取传递的数据并传递到后台4.传递数据5.解决方案 一、Request-URI Too Large的原因 “Request-URI Too La…...

复现大华智慧园区综合管理平台SQL注入漏洞

目录 一、漏洞描述 二、影响版本 三、资产测绘 四、漏洞复现 一、漏洞描述 大华智慧园区综合管理平台是一个集智能化、信息化、网络化、安全化为一体的智慧园区管理平台,旨在为园区提供一站式解决方案,包括安防、能源管理、环境监测、人员管理、停车管理等多个方面。大华…...

【uniapp】uniapp设置安全区域:

文章目录 一、效果图:二、实现代码: 一、效果图: 二、实现代码: {"path": "pages/index/index","style": {"navigationStyle": "custom","navigationBarTextStyle": "white","navigationBarTitle…...

Grafana技术文档--基本安装-docker安装并挂载数据卷-《十分钟搭建》-附带监控服务器

阿丹: Prometheus技术文档--基本安装-docker安装并挂载数据卷-《十分钟搭建》_一单成的博客-CSDN博客 在正确安装了Prometheus之后开始使用并安装Grafana作为Prometheus的仪表盘。 一、拉取镜像 搜索可拉取版本 docker search Grafana拉取镜像 docker pull gra…...

24大连交通大学软件工程813题库

1.下面错误的说法是( )。 A. 每个数据流必须用名词或名词短语命名 B.每个加工必须有名字,通常是动词短语 c.每个数据存储必须用名词或名词短语 D.每个数据源点或终点必须有名字 答案:C 2.下…...

数据治理-组织变革

为什么要有组织变革 组织变更的原因是,数据管理,对大多数企业而言,意味着原有的思维理念、工作模式、写作方式和信息技术的改变。这些改变无法依赖单纯的技术创新优化实现,而是通过组织管理的变更来实现。 数据管理成功实践的机制…...

html的语义化

说说对 html 语义化的理解 去掉或者丢失样式的时候能够让页面呈现出清晰的结构有利于 SEO:和搜索引擎建立良好沟通,有助于爬虫抓取更多的有效信息:爬虫依赖于标签来确定上下文和各个关键字的权重;方便其他设备解析(如屏…...

8/12 题解

解题思路 贪心&#xff0c;小的搭配大的&#xff0c;和会最小 AC代码 #include <iostream> using namespace std;int main() {int n;cin >> n;int l 1;int r n;while(l < r){ cout << l << ;l;cout << r << ;--r;if(l r){cout …...

九耶丨阁瑞钛伦特-产品经理面试题

在产品上线后&#xff0c;会着重观察6类指标&#xff1a; 1、活跃用户指标 衡量APP用户规模的指标&#xff0c;一个产品是否成功&#xff0c;如果只看一个指标&#xff0c;那么这个指标一定是活跃用户数。 日活(DAU)&#xff1a;一天内日均活跃设备数(去重&#xff0c;每个公…...

前后端分离项目接口权限检查方案

基于handleMethod写的一款分级式接口权限检查方案。 权限自动同步机制&#xff08;启动更新&#xff0c;页面不提供增删改&#xff09;&#xff1a; public class AuthorizationMappingGenerateExecutor implements EasyApplicationRunner {Autowiredprivate AuthorizationMap…...

步入React正殿 - 事件处理

目录 扩展学习资料 React事件和DOM事件 和传统DOM事件处理异同 this关键字的处理 this关键字 在JSX中使用bind方法 在构造函数中使用bind方法 使用箭头函数【推荐】 向事件处理程序传递参数【不跨组件】 向父组件传递参数 /src/App.js /src/components/listItem.jsx…...

NLP(六十四)使用FastChat计算LLaMA-2模型的token长度

LLaMA-2模型部署 在文章NLP&#xff08;五十九&#xff09;使用FastChat部署百川大模型中&#xff0c;笔者介绍了FastChat框架&#xff0c;以及如何使用FastChat来部署百川模型。   本文将会部署LLaMA-2 70B模型&#xff0c;使得其兼容OpenAI的调用风格。部署的Dockerfile文件…...

个保新标 | 《信息安全技术 敏感个人信息处理安全要求》(征求意见稿)发布

8 月 9 日&#xff0c;全国信息安全标准化技术委员会公开发布关于国家标准《信息安全技术 敏感个人信息处理安全要求》&#xff08;征求意见稿&#xff09;&#xff08;以下简称《标准》&#xff09;的通知&#xff0c;面向社会广泛征求意见。 《标准》的制定背景是为支撑《个人…...

【uniapp 返回顶部】

返回顶部 参数说明示例官方链接 uni.pageScrollTo(OBJECT) 将页面滚动到目标位置。 参数说明 参数名类型必填说明scrollTopNumber否滚动到页面的目标位置&#xff08;单位px&#xff09;selectorString否选择器&#xff0c;App、H5、微信小程序2.7.3 、支付宝小程序1.20.0支持…...

无代码集成励销云CRM连接更多应用

场景描述&#xff1a; 基于励销云的开放API&#xff0c;实现无代码集成连接励销云与其它应用。通过Aboter可轻松搭建业务自动化流程&#xff0c;实现多个应用之间的数据连接。 接口能力&#xff1a; 用户模块业务模块拜访签到模块公海客户模块联系人模块合同模块客户模块任务…...

QT自带PDF库的使用

QT自带PDF库可以方便的打开PDF文件&#xff0c;并将文件解析为QImage&#xff0c;相比网上提供的开源库&#xff0c;QT自带PDF库使用更方便&#xff0c;也更加可靠&#xff0c;然而&#xff0c;QT自带PDF库的使用却不同于其他通用库的使用&#xff0c;具备一定的技巧。 1. 安装…...

SQL | 排序检索的数据

3-排序检索的数据 使用order by语句排序检索到的数据。 3.1-排序数据 使用SQL语句返回一个数据表的列。 select prod_id from products; --------------------- | prod_name | --------------------- | 8 inch teddy bear | | 12 inch teddy bear | | 18 inch teddy bear |…...

国防科技大学计算机基础课程笔记02信息编码

1.机内码和国标码 国标码就是我们非常熟悉的这个GB2312,但是因为都是16进制&#xff0c;因此这个了16进制的数据既可以翻译成为这个机器码&#xff0c;也可以翻译成为这个国标码&#xff0c;所以这个时候很容易会出现这个歧义的情况&#xff1b; 因此&#xff0c;我们的这个国…...

基于FPGA的PID算法学习———实现PID比例控制算法

基于FPGA的PID算法学习 前言一、PID算法分析二、PID仿真分析1. PID代码2.PI代码3.P代码4.顶层5.测试文件6.仿真波形 总结 前言 学习内容&#xff1a;参考网站&#xff1a; PID算法控制 PID即&#xff1a;Proportional&#xff08;比例&#xff09;、Integral&#xff08;积分&…...

基于Flask实现的医疗保险欺诈识别监测模型

基于Flask实现的医疗保险欺诈识别监测模型 项目截图 项目简介 社会医疗保险是国家通过立法形式强制实施&#xff0c;由雇主和个人按一定比例缴纳保险费&#xff0c;建立社会医疗保险基金&#xff0c;支付雇员医疗费用的一种医疗保险制度&#xff0c; 它是促进社会文明和进步的…...

从零实现STL哈希容器:unordered_map/unordered_set封装详解

本篇文章是对C学习的STL哈希容器自主实现部分的学习分享 希望也能为你带来些帮助~ 那咱们废话不多说&#xff0c;直接开始吧&#xff01; 一、源码结构分析 1. SGISTL30实现剖析 // hash_set核心结构 template <class Value, class HashFcn, ...> class hash_set {ty…...

在鸿蒙HarmonyOS 5中使用DevEco Studio实现录音机应用

1. 项目配置与权限设置 1.1 配置module.json5 {"module": {"requestPermissions": [{"name": "ohos.permission.MICROPHONE","reason": "录音需要麦克风权限"},{"name": "ohos.permission.WRITE…...

基于SpringBoot在线拍卖系统的设计和实现

摘 要 随着社会的发展&#xff0c;社会的各行各业都在利用信息化时代的优势。计算机的优势和普及使得各种信息系统的开发成为必需。 在线拍卖系统&#xff0c;主要的模块包括管理员&#xff1b;首页、个人中心、用户管理、商品类型管理、拍卖商品管理、历史竞拍管理、竞拍订单…...

Netty从入门到进阶(二)

二、Netty入门 1. 概述 1.1 Netty是什么 Netty is an asynchronous event-driven network application framework for rapid development of maintainable high performance protocol servers & clients. Netty是一个异步的、基于事件驱动的网络应用框架&#xff0c;用于…...

OD 算法题 B卷【正整数到Excel编号之间的转换】

文章目录 正整数到Excel编号之间的转换 正整数到Excel编号之间的转换 excel的列编号是这样的&#xff1a;a b c … z aa ab ac… az ba bb bc…yz za zb zc …zz aaa aab aac…; 分别代表以下的编号1 2 3 … 26 27 28 29… 52 53 54 55… 676 677 678 679 … 702 703 704 705;…...

Vue ③-生命周期 || 脚手架

生命周期 思考&#xff1a;什么时候可以发送初始化渲染请求&#xff1f;&#xff08;越早越好&#xff09; 什么时候可以开始操作dom&#xff1f;&#xff08;至少dom得渲染出来&#xff09; Vue生命周期&#xff1a; 一个Vue实例从 创建 到 销毁 的整个过程。 生命周期四个…...

云原生周刊:k0s 成为 CNCF 沙箱项目

开源项目推荐 HAMi HAMi&#xff08;原名 k8s‑vGPU‑scheduler&#xff09;是一款 CNCF Sandbox 级别的开源 K8s 中间件&#xff0c;通过虚拟化 GPU/NPU 等异构设备并支持内存、计算核心时间片隔离及共享调度&#xff0c;为容器提供统一接口&#xff0c;实现细粒度资源配额…...