k8s中yaml文件的编写

目录

1.编写pod.yaml

2.编写deploment.yaml

3.编写service.yaml关联创建的pod

4.总结获取K8S资源配置清单文件模板方法

方法1:根据现有资源导出yaml文件修改配置,重新创建

方法2:根据现有资源,进入其配置中,复制模板,再进行创建

方法3:通过--dry-run选项模拟运行创建资源的命令获取

方法4:手写yaml配置文件,可以根据 kubectl explain 命令获取资源的字段信息

5.补充


1.编写pod.yaml

vim demo1-pod.yaml
apiVersion: v1
kind: Pod
metadata:name: scj-podnamespace: xy101labels:app: nginxmylove: tangjunmyclass: xy101
spec:containers:- name: nginximage: nginx:1.20ports:- containerPort: 80name: httpprotocol: TCPenv:- name: mylovevalue: tangjun

各行详细介绍

使用kubectl explain pods可查看到编写pod的一级标题
apiVersion: apps/v1		#指定api版本标签
kind: Deployment		#定义资源的类型/角色,deployment为副本控制器,此处资源类型可以是Deployment、Job、Ingress、Service等
metadata:					#定义资源的元数据信息,比如资源的名称、namespace、标签等信息spec:					#定义deployment资源需要的参数属性,诸如是否在容器失败时重新启动容器的属性

metadata:					#定义资源的元数据信息,比如资源的名称、namespace、标签等信息
kubectl explain pods.metadata  进一步查看metadata所包含内容
书写格式:
<string>       字符串           字段: 字符串      字段: "字符串"      字段: '字符串'
<map[string]string>    映射(值是一个或多个键值对)   字段:key1: value1key2: value2

spec:					#定义deployment资源需要的参数属性,诸如是否在容器失败时重新启动容器的属性
kubectl explain pods.spec  #进一步查看spec
containers	<[]Object> -required-  #-required-表示必备字段;<[]Object>表示字符串列表      
格式
<[]Object>字段:             字段: ["值1", "值2"]- 值1- 值2

containers:				#定义容器属性kubectl explain pods.spec.containers  #进一步查看containers字段


kubectl explain pods.spec.containers.ports

kubectl explain pods.spec.containers.env

kubectl apply -f demo1-pod.yaml   #创建pod
kubectl get pods -n xy101   #查看pod
kubectl describe -n xy101 pod scj-pod   #可查看调度创建容器的具体过程


kubectl get -n xy101 pod --show-labels   #查看标签
kubectl exec -n xy101 -it scj-pod sh  #进入容器查看env

2.编写deploment.yaml

vim demo2-deploy.yaml
apiVersion: apps/v1
kind: Deployment
metadata:name: scj-deploynamespace: xy101labels:app: nginxmylove: tangjun
spec:replicas: 5selector:matchLabels:app: nginxtemplate:metadata:labels:app: nginxspec:containers:- name: nginximage: nginx:1.20ports:- containerPort: 80name: httpprotocol: TCPenv:- name: mylovevalue: tangjun- name: yourlovevalue: scj

查看编写deployment.yaml文件的第一字段

kubectl explain deployment   #查看编写deployment的第一字段

查看第一字段下metadata和spec下的字段

kubectl explain deployment.metadata  #可根据此命令进一步查看metadata字段
metadata:                #其中包含三大项必不可少,name、namespace、labelsname: scj-deploynamespace: xy101labels:app: nginxmylove: tangjun

kubectl explain deployment.spec #进一步查看spec的字段​​​​​​​


查看spec下selector的字段

kubectl explain deployment.spec.selector  #查询selector的字段matchLabels:		#定义匹配标签

查看spec下template的字段

kubectl explain deployment.spec.template   #查看spec中template字段下的字段
metadata   #定义pod元数据  通常主要定义labels,labels的值需要与标签选择器的值一致
spec   #定义pod属性


查看template下spec的字段

kubectl explain deployment.spec.template.spec   #查看template下spec字段
containers	<[]Object> -required-   #必选字段kubectl explain deployment.spec.template.spec.containers  #进一步查看spec下containers 字段kubectl explain deployment.spec.template.spec.containers.ports   #进一步查看containers下ports字段

查看spec下containers中的字段

kubectl explain deployment.spec.template.spec.containers



查看containers下ports的字段

kubectl explain deployment.spec.template.spec.containers.ports

查看containers下的env字段

kubectl explain deployment.spec.template.spec.containers.env


创建deployment控制器

kubectl apply -f demo2-deploy.yaml
kubectl get -n xy101 all

3.编写service.yaml关联创建的pod

apiVersion: v1
apiVersion: v1
kind: Service
metadata:name: scj-svcnamespace: xy101labels:app: nginxmylove: tangjun
spec:selector:app: nginxtype: NodePortports:- port: 8080targetPort: 80

查看编写svc.yaml文件的第一字段

kubectl explain svc

metadata三要素1.name2.namespace3.labels

设置spec下的字段

kubectl explain svc.spec



进一步查看spec下ports的字段

kubectl explain svc.spec.ports


创建service

kubectl apply -f demo3-svc.yaml
kubectl get -n xy101 svc
kubectl describe -n xy101 endpoints scj-svc
kubectl get -n xy101 pod -o wide

如何固定nodeport、clusterip

kubectl explain svc.spec.ports   #查询指定nodeport的字段,于ports下
kubectl explain svc.spec    #查询指定clusterip的字段,于svc下的spec中

kubectl apply -f demo3-svc.yaml
kubectl get -n xy101 svc

kubectl apply -f demo3-svc.yaml 
kubectl get -n xy101 svc

4.总结获取K8S资源配置清单文件模板方法

方法1:根据现有资源导出yaml文件修改配置,重新创建

kubectl get -n xy101 svc scj-svc -o yaml > demo4.yaml
vim demo4.yaml
只保留常用配置,删除多余的,配置,进行修改创建即可

方法2:根据现有资源,进入其配置中,复制模板,再进行创建

kubectl edit -n xy101 svc scj-svc2   
即可复制其中的配置,获取模板

方法3:通过--dry-run选项模拟运行创建资源的命令获取

kubectl create|run|expose -n <命名空间> <资源类型> <资源名称> [参数选项] --dry-run=client -o yaml > XXX.yamlkubectl create -n xy101 deployment deploy-tan --image=soscscs/myapp:v1 --port=80 --replicas=3 --dry-run=client   #创建资源的结尾添加--dry-run选项模拟运行创建资源,此时不会创建资源kubectl create -n xy101 deployment deploy-tan --image=soscscs/myapp:v1 --port=80 --replicas=3 --dry-run=client -o yaml > tan-deploy.yaml  #导出yaml文件,即可获取配置模板文件

方法4:手写yaml配置文件,可以根据 kubectl explain 命令获取资源的字段信息

5.补充

1.什么是external-traffic-policy

kubectl explain svc.spec  #存在于 svc.spec中

在k8s的Service对象(申明一条访问通道)中,有一个“externalTrafficPolicy”字段可以设置。有2个值可以设置:Cluster或者Local。

1)Cluster表示:流量可以转发到其他节点上的Pod。

2)Local表示:流量只发给本机的Pod。

图示:

2.k8s的service如何确保客户端的tcp消息每次都发给同一个pod?

设置Service的sessionAffinity为 ClientIP. 这样同一个client的请求会被kube-proxy转发到同一个Pod。
sessionAffinity 默认是None,客户端的请求被kube-proxy按照RR或Random算法转发到service的pod set,不能保证每次发到同一个Pod。

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

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

相关文章

中国AI大模型场景探索及产业应用调研报告

AI大模型发展态势 定义 AI大模型是指在机器学习和深度学习领域中&#xff0c;采用大规模参数(至少在一亿个以上)的神经网络模型&#xff0c;AI大模型在训练过程中需要使用大量的算力和高质量的数据资源。 产业规模 2023年&#xff0c;中国大模型市场规模为147亿。结合《202…

滚雪球学Java(65-5):面对Properties的各种坑,你需要知道的Java小技巧

咦咦咦&#xff0c;各位小可爱&#xff0c;我是你们的好伙伴——bug菌&#xff0c;今天又来给大家普及Java SE相关知识点了&#xff0c;别躲起来啊&#xff0c;听我讲干货还不快点赞&#xff0c;赞多了我就有动力讲得更嗨啦&#xff01;所以呀&#xff0c;养成先点赞后阅读的好…

C++初学者指南-5.标准库(第二部分)--移除元素算法

C初学者指南-5.标准库(第二部分)–移除元素算法 文章目录 C初学者指南-5.标准库(第二部分)--移除元素算法remove / remove_ifremove_copy / remove_copy_ifunique / unique_copyerase / erase_if相关内容 不熟悉 C 的标准库算法&#xff1f; ⇒ 简介 remove / remove…

【解决error】安装torch 1.1.0

第一步 当云服务器上没有指定版本的torch可以选择 先确定指定torch符合的python版本号 例如这里&#xff0c;我需要安装torch1.1.0&#xff0c;所以需要python>3.6 且 python<3.7 根据python版本&#xff0c;确定服务器安装torch的版本配置 第二步 新建conda虚拟环境…

iPhone苹果密码解锁工具专业版_不限制电脑

iPhone苹果密码解锁工具专业版_不限制电脑 Aiseesoft iPhone Unlocker&#xff1a;轻松解锁iPhone。功能强大&#xff1a;一键移除4位、6位密码、Touch ID和Face ID。 隐私保护&#xff1a;创建密码&#xff0c;安全无忧。数据提醒&#xff1a;解锁时&#xff0c;注意数据和设…

docker部署可执行的jar

1.将项目打包&#xff0c;上传到服务器的指定目录 2.在该目录下创建Dockerfile文件 3.Dockerfile写入如下指令 # 基于哪个镜像 FROM java:8 # 拷贝文件到容器&#xff0c;也可以直接写成ADD xxxxx.jar /app.jar ADD springboot-file-0.0.1.jar file.jar RUN bash -c touch /…

用TypeScript完成的贪吃蛇小游戏

食物类Fod // 定义 class Food {// 定义一个属性表示食物所对应的元素element:HTMLElement;constructor(){//加个&#xff01;表示不能为空,非空断言操作符 //获取页面中的food元素并将其赋值给element this.elementdocument.getElementById(food)!;}// 定义一个获取食物x轴坐…

(六)activiti-modeler 设计器属性编辑弹窗bug修复

BUG重现 在使用流程设计器时&#xff0c;经常碰到弹窗不小心关闭&#xff0c;比如不小心点击了灰色背景上&#xff0c;此时BUG就出现了。弹窗被关闭了&#xff0c;分配用户属性被置空了&#xff0c;以前有数据也被清空了&#xff0c;还无法再次点击弹窗编辑。 不仅仅是分配用…

【Vue3】组件通信之v-model

【Vue3】组件通信之v-model 背景简介开发环境开发步骤及源码总结 背景 随着年龄的增长&#xff0c;很多曾经烂熟于心的技术原理已被岁月摩擦得愈发模糊起来&#xff0c;技术出身的人总是很难放下一些执念&#xff0c;遂将这些知识整理成文&#xff0c;以纪念曾经努力学习奋斗的…

LDR6020快充线,科技与便捷的新宠

在快节奏的现代生活中&#xff0c;充电效率成为了我们不可忽视的一个重要因素。随着智能手机、平板电脑等电子设备的普及&#xff0c;快充线以其独特的优势逐渐成为充电设备市场的新宠。 快充线&#xff0c;相比于传统的普通充电线&#xff0c;快充线在充电速度上有着显著的提升…

五、一个quad同时支持pcie和sfp两种高速接口的ref时钟配置

项目描述 上位机将截图数据通过 XDMA 写入到 FPGA 侧的 DDR 内存区域 1 中通过 axi_lite 接口给 axi_read_start 信号&#xff0c;通知 AXI_read 模块启动读取数据&#xff0c;然后通过 GTP TX 模块发送出去。经过光纤回环&#xff0c;GTP RX 端接收到数据&#xff0c;送给 AX…

微分方程的数值解法——Runge-Kutta (RK4)

Runge-Kutta (RK4)   The Runge-Kutta (RK4) methods are used to solve the solution of the non-liner ordinary differential equation. Here, we will simply summary this method.   Assume the Intial Value Piont (IVP) is satisfied: y ′ f ( t , y ) , y ( t 0 )…

python-查找元素3(赛氪OJ)

[题目描述] 有n个不同的数&#xff0c;从小到大排成一列。现在告诉你其中的一个数x&#xff0c;x不一定是原先数列中的数。你需要输出最后一个<x的数在此数组中的下标。输入&#xff1a; 输入共两行第一行为两个整数n、x。第二行为n个整数&#xff0c;代表a[i]。输出&#x…

椭圆曲线加法运算

1. 定义 椭圆曲线 (Elliptic Curve) 不是函数&#xff0c;而是一条平面曲线&#xff0c;其方程是定义如下&#xff1a; y 2 x 3 a x b y^2x^3axb y2x3axb 其中&#xff0c;判别式 Δ − 16 ( 4 a 3 27 b 2 ) ≠ 0 \Delta -16(4a^327b^2)\neq 0 Δ−16(4a327b2)0。判别…

Java 并发编程:一文了解 synchronized 的使用

大家好&#xff0c;我是栗筝i&#xff0c;这篇文章是我的 “栗筝i 的 Java 技术栈” 专栏的第 027 篇文章&#xff0c;在 “栗筝i 的 Java 技术栈” 这个专栏中我会持续为大家更新 Java 技术相关全套技术栈内容。专栏的主要目标是已经有一定 Java 开发经验&#xff0c;并希望进…

keil编译报错error:#8:missing closing quote 处理

MDK5采用UTF-8&#xff0c;提示很多个这样的error:#8&#xff1a;missing closing quote 的错误信息。提供以下几种方式解决&#xff1a; 在KEIL中Options for Target Flash -> C/C -> Misc Controls添加“--localeenglish”。

49 序列解包的多种形式和用法

序列解包&#xff08;Sequence Unpacking&#xff09;是 Python 中非常重要和常用的一个功能&#xff0c;可以使用非常简洁的形式完成复杂的功能&#xff0c;提高了代码的可读性&#xff0c;减少了程序员的代码输入量。 x, y, z 1, 2, 3 # 多个变量同时赋值 v_tuple (False…

【课程系列07】某乎AI大模型全栈工程师-第7期

网盘链接 链接&#xff1a;百度网盘 请输入提取码 --来自百度网盘超级会员v6的分享 课程目标 学习完毕咱们可以收获什么种能力&#xff1a; 1、传统前端 后端 数据分析 产品 绘图 算法工程等工作&#xff0c;一个人都可以实现&#xff0c;实现超级个体的能力 2、可以解决…

【C语言】Top K问题【建小堆】

前言 TopK问题&#xff1a;从n个数中&#xff0c;找出最大&#xff08;或最小&#xff09;的前k个数。 在我们生活中&#xff0c;经常会遇到TopK问题 比如外卖的必吃榜&#xff1b;成单的前K名&#xff1b;各种数据的最值筛选 问题分析 显然想开出40G的空间是不现实的&#…

基于STM32的温湿度监控系统

目录 引言环境准备工作 硬件准备软件安装与配置系统设计 系统架构硬件连接代码实现 初始化代码主循环代码应用场景 家居环境监控工业环境监控常见问题及解决方案 常见问题解决方案结论 1. 引言 在智能家居和工业自动化中&#xff0c;温湿度监控系统是一个非常重要的组成部分…