yaml文件详解

目录

一、yaml的简介

 二、yaml示例

1.编写yaml文件创建pod资源

2. 创建资源对象

3.查看创建的pod资源

4.创建service服务对外提供访问并测试

5.创建资源对象

6.查看创建的service

7.在浏览器输入 nodeIP:nodePort 即可访问

三、 获取yaml配置资源

四、将现有资源生成模板导出

 


一、yaml的简介

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

yaml的语法格式:

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

 二、yaml示例

#查看字段帮助信息,可一层层的查看相关资源对象的帮助信息
kubectl explain deployments.spec.template.spec.containers
或
kubectl explain pods.spec.containers

1.编写yaml文件创建pod资源

vim nginx-deployment.yamlapiVersion: apps/v1             #指定api版本标签
kind: Deployment                #定义资源的类型,可以为Deployment,Job,Ingress,Service等
metadata:                       #定义资源元数据信息,如资源名称,namespace,标签等信息name: myapp-nginx             #定义资源名称,在同一个namespace空间中必须是唯一的namespace: kube-public        #定义namespace,默认为defaultlabels:                       #定义Deployment资源标签,可定义多个标签app: myapp                 spec:                           #定义资源的参数属性                        replicas: 3                   #定义副本数量,默认值为1selector:                     #定义标签选择器matchLabels:                #定义匹配标签app: myqpp-pod            #指定pod的标签template:                     #定义pod的模板metadata:                   #定义pod的元数据信息labels:                   #定义pod副本将使用的标签app: myqpp-pod          #与标签选择器定义的标签相同,否则无法管理生成的podspec:containers:               #定义容器属性- name: myapp             #定义一个容器名,一个name:定义一个容器image: nginx:1.14       #定义容器使用的镜像以及版本ports:                  - containerPort: 80     #定义容器对外的端口  name: http            #定义端口名称protocol: TCP         #端口协议,支持TCP和UDP,默认TCP

2. 创建资源对象

kubectl create -f nginx-deployment.yaml

3.查看创建的pod资源

kubectl get pods -n kube-public -owide --show-labels

4.创建service服务对外提供访问并测试

vim nginx-service.yaml apiVersion: v1                 
kind: Service
metadata:                    name: nginx-service              #定义service的名称namespace:kube-publiclabels:app: service
spec:type: NodePort                   #定义资源类型,默认为ClusterIPports:                           #定义资源端口号- port: 8080                     #ClusterIP的端口,集群内部访问service的端口targetPort: 80                 #pod的端口nodePort: 31000                #外部访问集群service的端口protocol: TCP                  #指定协议externalTrafficPolicy: Clusterselector:                        #标签选择器app: myqpp-pod                 #指定pod的标签

注:

在k8s的service对象(申明一条访问通道)中,其中有一个字段:externalTrafficPolicy。可设置为:

  • Local:只转到本节点的容器
  • Cluster:可以转到其它节点的容器

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

5.创建资源对象

kubectl create -f nginx-service.yaml 

6.查看创建的service

kubectl get svc

7.在浏览器输入 nodeIP:nodePort 即可访问

curl http://192.168.88.70:31000

三、 获取yaml配置资源

#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.yaml

四、将现有资源生成模板导出

#将现有的资源生成模板导出
kubectl get svc nginx-service -o yaml#保存到文件中
kubectl get svc nginx-service -o yaml > my-svc.yaml

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/57728.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Xcode升级导致关联库报错

想办法找到对应的库 然后到 Build Phases -- LinkBinary With Libraries中点击,选择对应的framework即可,就像我工程的报错 Undefined symbol: _OBJC_CLASS_$_ADClient _OBJC_CLASS_$_ASIdentifierManager 缺失的库是AdSupport.framework 添加后再次编…

在钡铼技术ARM嵌入式控制器上安装Node-RED的详细步骤

嵌入式ARM控制器BL301/BL302系列是工业级坚固型工业控制器,采用NXP的高性能处理器I.MX6ULL,搭配先进的ARM Cortex-A7构架,运行速度高达800MHz,具有高度的稳定性。本产品最高可提供4路RS485/RS232,1路CAN口,…

Linux系统中redis基础

本节主要学习redis的概述,安装目录结构,命令解析和redis登录更改,数据库的操作,和redis的持久化。 目录 一、概述 二、安装 1.编译安装 2.rpm安装 三、目录结构 四、命令解析 五、redis登陆更改 问题 解决办法 六、数据…

CSS实现图像填充文字

效果如下 具体代码&#xff1a; <!DOCTYPE html> <html><head><meta charset"utf-8"><title>CSS图像填充文字</title><style>.text {background-image: url(./imgs/1.webp);/* 一定要让背景透明&#xff0c;这样后面的背…

Qt小项目贪吃蛇实线,主要掌握定时器、信号与槽、按键事件、绘制事件、坐标运算、随机数生成等

Qt小项目贪吃蛇实线&#xff0c;主要掌握定时器、信号与槽、按键事件、绘制事件、坐标运算、随机数生成等 Qt 贪吃蛇演示QWidget 绘制界面项目源文件 注释清晰widget.hwidget.cpp 拓展QTimerQKeyEventQRectFQPointFQPainterQIcon Qt 贪吃蛇演示 QWidget 绘制界面 项目源文件 注…

2023集成电路产业发展与产教融合高峰论坛会议顺利举行

8月5日&#xff0c;由中国半导体行业协会和市政府共同主办&#xff0c;天水师范学院、天水华天科技股份有限公司、杭州加速科技有限公司承办的2023集成电路产业发展与产教融合高峰论坛在天水举行。天水市委书记冯文戈&#xff0c;教育部学生服务与素质发展中心副主任方伟&#…

4 三组例子,用OpenCV玩转图像-AI-python

读取&#xff0c;缩放&#xff0c;旋转&#xff0c;写入图像 首先导入包&#xff0c;为了显示导入matplotlib/为了在matplotlib显示 导入CV2/查看版本 导入图片/查看图片类型 图片数组 数组大小 对于opencv通道顺序蓝色B、绿色G、红色R matplotlib通道顺序为 红色R、绿色G、蓝…

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

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

Stephen Wolfram:ChatGPT 的训练

The Training of ChatGPT ChatGPT 的训练 OK, so we’ve now given an outline of how ChatGPT works once it’s set up. But how did it get set up? How were all those 175 billion weights in its neural net determined? Basically they’re the result of very large…

以指标驱动,保险、零售、制造企业开启精益敏捷运营的新范式

近日&#xff0c;以“释放数智生产力”为主题的 Kyligence 用户大会在上海前滩香格里拉大酒店成功举行。大会包含上午的主论坛和下午的 4 场平行论坛&#xff0c;并举办了闭门会议、Open Day 等活动。来自金融、零售、制造、医药等行业的客户及合作伙伴带来了超过 23 场主题演讲…

python 封装sql 增删改查连接MySQL

select * from Teacher limit 10 连接字符串配置MysqlConfig.py class MysqlConfig:HOST 192.168.56.210PORT 3306USER rootPASSWORD 1qaz0987654321DBStudentDBCHARSET utf8封装增删改查MysqlConnection.py Author: tkhywang 2810248865qq.com Date: 2023-06-19 15:44:48 Las…

嵌入式虚拟仿真实验教学平台之登录注册功能使用

登录注册功能的使用 本文将介绍嵌入式虚拟仿真实验教学平台的账号如何注册以及登录账号。 注册账号 1、首先谷歌或Edge等主浏览器中输入https://app.puliedu.com/网址&#xff0c;然后会跳转到登录页&#xff0c;如下所示: 2、点击上图中框中的新注册账号&#xff0c;跳转…