k8s中yaml文件的编写
目录
1.编写pod.yaml
2.编写deploment.yaml
3.编写service.yaml关联创建的pod
4.总结获取K8S资源配置清单文件模板方法
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: value1
key2: 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.yaml
kubectl 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。
相关文章:
k8s中yaml文件的编写
目录 1.编写pod.yaml 2.编写deploment.yaml 3.编写service.yaml关联创建的pod 4.总结获取K8S资源配置清单文件模板方法 5.补充 1.编写pod.yaml vim demo1-pod.yaml apiVersion: v1 kind: Pod metadata:name: scj-podnamespace: xy101labels:app: nginxmylove: tangjunmyc…...
打卡第37天------动态规划
加油!不要放弃,那些冲进清北复交的高材生的水平真不是盖的,名不虚传,有实力的全能选手。我在刷题的过程中不得不表达一下对他们的钦佩。 这里在遍历顺序上可就有说法了。 如果求组合数就是外层for循环遍历物品,内层for遍历背包。如果求排列数就是外层for遍历背包,内层for…...
openfeign本地试用
目的:在本地搭建一个简单的openfeign使用场景,测试查询、新增等功能 平台:win10 技术栈:Springboot, SpringCloud, Nacos, Mybatis, MySql, Logback 框架作用说明: Nacos用于服务注册,将provider应用注…...
数据库|SQLServer数据库:查询函数(SUM、COUNT、MAX、MIN、AVG)的使用
哈喽,你好啊,我是雷工! 日拱一卒,进一寸有进一寸的欢喜,本节学习数据库查询函数的使用。 以下为学习笔记。 01 求和 SUM:对某一字段列进行求和运算; 示例: 对账号表Account的文章…...
简单Qt贪吃蛇项目
目录 先看效果 项目介绍 界面一:游戏大厅界面 界面二:关卡选择界面编辑 界面三:游戏界面 游戏大厅页面 游戏关卡选择页面 游戏房间页面 封装贪吃蛇数据结构 初始化游戏房间界面 设置窗口大小、标题、图标等 蛇的移动 初始化贪…...
画菱形(曼哈顿距离)
输入一个奇数 nn,输出一个由 * 构成的 nn 阶实心菱形。 输入格式 一个奇数 nn。 输出格式 输出一个由 * 构成的 nn 阶实心菱形。 具体格式参照输出样例。 数据范围 1≤n≤991≤n≤99 输入样例: 5输出样例: * *** ******** * #i…...
CSP初赛知识点讲解(六)
CSP初赛知识点讲解(六) 运算表达式中缀变后缀表达式求值前缀表达式 例题训练(八) 运算表达式 运算表达式有三种,前缀表达式,中缀表达式,后缀表达式,我们常用的是中缀表达式…...
linux rocky 9.2系统安装mysql-wsrep-8.4.2-26.20-linux-x86_64.tar.gz二进制包
1.环境准备, ①装好Rocky linux9.2系统,设置好IP nmcli con mod ens160 ipv4.addresses 192.168.0.106/24 nmcli con mod ens160 ipv4.gateway 192.168.0.2 nmcli con mod ens160 ipv4.dns 114.114.114.114 nmcli con up ens160 nmcli con mod ens…...
QT实现上传服务器功能
代码如下所示: void UploadZipFileToServer(const QString& strPath) {m_pFile new QFile(strPath);// 创建HTTP多部份请求QHttpMultiPart *multiPart new QHttpMultiPart(QHttpMultiPart::FormDataType);QHttpPart keyPart;keyPart.setHeader(QNetworkReques…...
元岳食堂采购供应链系统-智慧食堂数据化解决方案
随着社会的发展和科技的进步,在数字化浪潮的推动下,智慧食堂供应链系统逐渐成为食堂管理的重要工具。在此背景下,元岳食堂采购供应链系统应运而生,该系统通过其独特的数字化和自动化功能,能够对食堂的采购、储存、配送…...
基于Java+SpringBoot+Vue的影城管理系统
基于JavaSpringBootVue的影城管理系统 前言 ✌全网粉丝20W,csdn特邀作者、博客专家、CSDN[新星计划]导师、java领域优质创作者,博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java技术领域和毕业项目实战✌ 🍅文末获取项目下载方式🍅 哈喽…...
自定义starter
依赖 <?xml version"1.0" encoding"UTF-8"?> <project xmlns"http://maven.apache.org/POM/4.0.0" xmlns:xsi"http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation"http://maven.apache.org/POM/4.0.0 ht…...
Docker 入门全攻略:安装、操作与常用命令指南
目录 Docker 入门全攻略:安装、操作与常用命令指南 一、引言 二、Docker 下载与安装 2.1 Docker 的系统要求 2.2 安装步骤 ①对于 Windows 的安装指南 ②对于 macOS 的安装指南 ③对于 Linux 的安装指南 三、Docker 的基本概念 3.1 镜像(Image…...
mstsc被卸载,远程桌面mstsc.exe重装
官网下载地址g卸载和重新安装远程桌面连接 | Microsoft Learn 卸载和重新安装远程桌面连接 | Microsoft Learn 下载地址 https://wwm.lanzouj.com/ioR4y26z7rle 下载后重新安装...
从根儿上学习spring 十一 之run方法启动第四段(5)
图15-AbstractAutowireCapableBeanFactory#doCreateBean方法 我们接着讲doCreateBean方法,之前对循环依赖做了些解释,我们接着往下看populateBean(beanName, mbd, instanceWrapper)方法 图15-572行 这行就是调用populateBean(beanName, mbd, instanceW…...
常见8种数据结构
常见的数据结构包括数组、链表、队列、栈、树、堆、哈希表和图,每种数据结构都有其特点,如下: 常见数据结构 1.数组2.链表3.队列4.栈5.树6.图7.哈希表8.堆 1.数组 特点: 固定大小的线性数据结构支持快速随机访问插入和删除效率…...
黑马Java零基础视频教程精华部分_11_面向对象进阶(3)_抽象类、接口、适配器
《黑马Java零基础视频教程精华部分》系列文章目录 黑马Java零基础视频教程精华部分_1_JDK、JRE、字面量、JAVA运算符 黑马Java零基础视频教程精华部分_2_顺序结构、分支结构、循环结构 黑马Java零基础视频教程精华部分_3_无限循环、跳转控制语句、数组、方法 黑马Java零基础视…...
Promethues Metrics
Metrics Metrics可分为三部分: HELP 描述metric作用TYPE metric类别 TYEP Counter 某个事件发生的次数数字只能增长 Total reuqests Total ExceptionsGauge 描述当前值可以上升或下降 CurrentCPU Utilization Available System Memory Number of concurren…...
公网IP与私网IP具体有哪些区别?
1.接入方式不同 公网IP以公网连接Internet上的非保留地址,私网IP则是局域网上的IP,通过NAT才能够与公网进行通信。 2.特点不同 公网IP由国际互联网络信息中心InterNIC负责,将IP地址分配给注册并向InterNIC提出申请的机构或组织。私网IP则是为节省可分配…...
LeetCode——3143. 正方形中的最多点数
通过万岁!!! 题目:给你一个n*2的数组,然后第i行表示第i个点的坐标,然后还给你了一个字符串s,s[i]则表示第i个点的名称。然后让你找一个中心是(0,0)的正方形,…...
万能学习方法论的理论建构与多领域适配性研究(乖乖数学)
万能学习方法论的理论建构与多领域适配性研究(乖乖数学)这篇题为《万能学习方法论的理论建构与多领域适配性研究》的博士学位论文提纲,展现了一个极为宏大、系统且雄心勃勃的理论构建尝试。它试图整合经典教育心理学理论(尤其是知…...
豆包导出的Excel公式失效
豆包导出的Excel公式为何失效?结构化分析与实用解决方案 在AI辅助办公场景中,豆包(Doubao)凭借数据分析模块成为不少职场用户的选择。用户通过自然语言指令生成销售报表、预算模板或统计表格后,期待直接导出可用的.xls…...
PowerToys中文汉化版:微软官方增强工具箱的终极本地化体验
PowerToys中文汉化版:微软官方增强工具箱的终极本地化体验 【免费下载链接】PowerToys-CN PowerToys Simplified Chinese Translation 微软增强工具箱 自制汉化 项目地址: https://gitcode.com/gh_mirrors/po/PowerToys-CN PowerToys中文汉化版是微软官方系统…...
别再硬用Search API了!Qdrant纯Payload查询的正确姿势:Scroll API实战与性能调优
别再硬用Search API了!Qdrant纯Payload查询的正确姿势:Scroll API实战与性能调优 最近在重构一个电商后台系统时,我发现团队里不少工程师都在用Qdrant的Search API做纯Payload字段查询——比如按订单状态筛选数据、根据商品标签过滤结果集。这…...
重构游戏串流体验:Sunshine如何突破设备与场景限制
重构游戏串流体验:Sunshine如何突破设备与场景限制 【免费下载链接】Sunshine Self-hosted game stream host for Moonlight. 项目地址: https://gitcode.com/GitHub_Trending/su/Sunshine 当你想在平板上玩3A游戏时,最大的障碍是什么?…...
安装即用:基于快马创建实战项目,让openclaw成为你的自动化文件分类利器
今天想和大家分享一个特别实用的自动化文件分类工具开发过程。这个项目用到了openclaw库,配合InsCode(快马)平台的便捷功能,从零开始搭建了一个能自动整理杂乱文件夹的小工具。 项目背景与需求分析 平时工作中经常遇到文件堆积如山的困扰,特…...
Vue甘特图实战:从零构建高效项目管理视图
1. 为什么选择VueECharts实现甘特图 在项目管理工具中,甘特图是最直观的任务排期展示方式。传统方案往往需要引入复杂的第三方库,而VueECharts的组合却能以最小成本实现专业效果。我去年负责一个电商大促项目时,就用这个方案替代了原本采购的…...
为Cosmos-Reason1-7B开发自定义前端界面:Streamlit快速搭建
为Cosmos-Reason1-7B开发自定义前端界面:Streamlit快速搭建 你是不是已经部署好了Cosmos-Reason1-7B模型,但每次调用都得在命令行里敲代码,或者用那些不太顺手的脚本?想不想给你的模型加一个漂亮、好用,还能分享给别人…...
OpenScreen——Screen Studio平替开源屏幕录制神器
你是否也曾为制作一个简单的产品演示视频而焦头烂额?花大价钱买的录屏软件,结果导出的视频角落里永远有个去不掉的水印?今天给大家安利一款刚在 GitHub 爆火的开源神器,彻底解决你的录屏烦恼。一、那些年,我们踩过的录…...
AI辅助开发:利用快马平台为520888·moc中创造交互式视觉艺术效果
AI辅助开发:利用快马平台为520888moc中创造交互式视觉艺术效果 最近在做一个创意项目,需要把"520888moc中"这个特殊字符串做成一个酷炫的交互式视觉艺术效果。作为一个前端开发新手,我一开始有点无从下手,直到发现了In…...
