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)的正方形,…...

【WiFi帧结构】
文章目录 帧结构MAC头部管理帧 帧结构 Wi-Fi的帧分为三部分组成:MAC头部frame bodyFCS,其中MAC是固定格式的,frame body是可变长度。 MAC头部有frame control,duration,address1,address2,addre…...

安宝特方案丨XRSOP人员作业标准化管理平台:AR智慧点检验收套件
在选煤厂、化工厂、钢铁厂等过程生产型企业,其生产设备的运行效率和非计划停机对工业制造效益有较大影响。 随着企业自动化和智能化建设的推进,需提前预防假检、错检、漏检,推动智慧生产运维系统数据的流动和现场赋能应用。同时,…...
Linux简单的操作
ls ls 查看当前目录 ll 查看详细内容 ls -a 查看所有的内容 ls --help 查看方法文档 pwd pwd 查看当前路径 cd cd 转路径 cd .. 转上一级路径 cd 名 转换路径 …...
Python如何给视频添加音频和字幕
在Python中,给视频添加音频和字幕可以使用电影文件处理库MoviePy和字幕处理库Subtitles。下面将详细介绍如何使用这些库来实现视频的音频和字幕添加,包括必要的代码示例和详细解释。 环境准备 在开始之前,需要安装以下Python库:…...

Maven 概述、安装、配置、仓库、私服详解
目录 1、Maven 概述 1.1 Maven 的定义 1.2 Maven 解决的问题 1.3 Maven 的核心特性与优势 2、Maven 安装 2.1 下载 Maven 2.2 安装配置 Maven 2.3 测试安装 2.4 修改 Maven 本地仓库的默认路径 3、Maven 配置 3.1 配置本地仓库 3.2 配置 JDK 3.3 IDEA 配置本地 Ma…...

Golang——7、包与接口详解
包与接口详解 1、Golang包详解1.1、Golang中包的定义和介绍1.2、Golang包管理工具go mod1.3、Golang中自定义包1.4、Golang中使用第三包1.5、init函数 2、接口详解2.1、接口的定义2.2、空接口2.3、类型断言2.4、结构体值接收者和指针接收者实现接口的区别2.5、一个结构体实现多…...
Oracle11g安装包
Oracle 11g安装包 适用于windows系统,64位 下载路径 oracle 11g 安装包...

ubuntu系统文件误删(/lib/x86_64-linux-gnu/libc.so.6)修复方案 [成功解决]
报错信息:libc.so.6: cannot open shared object file: No such file or directory: #ls, ln, sudo...命令都不能用 error while loading shared libraries: libc.so.6: cannot open shared object file: No such file or directory重启后报错信息&…...
webpack面试题
面试题:webpack介绍和简单使用 一、webpack(模块化打包工具)1. webpack是把项目当作一个整体,通过给定的一个主文件,webpack将从这个主文件开始找到你项目当中的所有依赖文件,使用loaders来处理它们&#x…...
Windows 下端口占用排查与释放全攻略
Windows 下端口占用排查与释放全攻略 在开发和运维过程中,经常会遇到端口被占用的问题(如 8080、3306 等常用端口)。本文将详细介绍如何通过命令行和图形化界面快速定位并释放被占用的端口,帮助你高效解决此类问题。 一、准…...