K8S中YAML案例

目录

案例:自主式创建service并关联上面的pod

案例:部署redis

案例:部署myapp

案例:部署MySQL数据库

总结

1.K8S集群中访问流向

K8S集群外部:客户端——nodeIP:nodeport——通过target port——podIP:containerport

2.语法格式

3.yaml文件组成部署

4.常用字段的含义


案例:自主式创建service并关联上面的pod

资源名称:my-nginx-kkk

命名空间:my-kkk

容器镜像:nginx:1.21

容器端口:80

标签:njzb: my-kkk

创建  server去关联上面的pod

结果:首先修改页面:tian  wai  lai  wu,对外访问,输入地址就能访问

1. 试创建文件获取模板文件

kubectl create ns my-kkk --dry-run -oyaml
kubectl run my-nginx-kkk --image=nginx:1.21 --port=80 --dry-run -oyaml > pod.yaml

2. 编写yaml文件 

kubectl get svc
kubectl get svc nginx -oyaml

vim pod.yaml 
kubectl apply -f pod.yaml 
kubectl get svc,pod -n my-kkk

将获取的yaml资源内容复制过来,进行修改 

vim pod.yamlapiVersion: v1
kind: Namespace
metadata:name: my-kkk
---
apiVersion: v1
kind: Pod
metadata:labels:njzb: my-kkkname: my-nginx-kkknamespace: my-kkk
spec:containers:- image: nginx:1.21name: my-nginx-kkkports:- containerPort: 80restartPolicy: Always
---
apiVersion: v1
kind: Service
metadata:labels:njzb: my-kkkname: my-nginx-kkknamespace: my-kkk
spec:ports:- nodePort: 31111  ###节点端口号port: 80         ###服务暴露端口protocol: TCP    ###通信协议targetPort: 80   ###要转发到的容器端口selector:njzb: my-kkk     ###该服务所选择的后端podtype: NodePort

3. 测试结果

案例:部署redis

[root@master01 demo]# vim redis.yaml apiVersion: apps/v1
kind: Deployment
metadata:name: redis-dpmlabels:app: redis
spec:               ###资源所需参数replicas: 1selector:matchLabels:app: redis   ###只会与标签app:redis的pod关联template:          ###业务模板,如果有多个副本,所有副本属性会按照模板进行匹配metadata:labels:app: redisspec:           ###资源所需参数containers:- name: redisimage: redis:latestports:- containerPort: 6379
---
apiVersion: v1
kind: Service
metadata:name: redis-dbmlabels:app: redis
spec:selector:app: redisports:- nodePort: 32379port: 6379protocol: TCPtargetPort: 6379type: NodePort

[root@master01 home]# kubectl get svc,pod

案例:部署myapp

apiVersion: apps/v1
kind: Deployment
metadata:name: myapp-kknamespace: defaultlabels:app: myapp
spec:replicas: 1selector:matchLabels:app: myapptemplate:metadata:labels:app: myappspec:containers:- name: myappimage: soscscs/myapp:v1ports:- containerPort: 80

案例:部署MySQL数据库

[root@master01 demo]# cat mysql.yaml 
apiVersion: v1
kind: Namespace
metadata:name: devops
---
apiVersion: apps/v1
kind: Deployment
metadata:name: devops-mysqlnamespace: devops
spec:replicas: 1revisionHistoryLimit: 5      ###保留5个可以回滚的历史纪录strategy:type: RollingUpdate        ###更新策略为:RollingUpdate;在进行更新时,将旧pod副本替换为            新的pod,确保服务的可用性selector:matchLabels:app: devops-mysqltemplate:metadata:labels:app: devops-mysqlspec:volumes:- name: devops-mysqlnfs:server: 192.168.91.104path: /root/data/nfs/mysql/devopscontainers:- name: devops-mysqlimage: mysql:5.7env:- name: MYSQL_ROOT_PASSWORDvalue: abc123imagePullPolicy: Alwaysports:- containerPort: 3306volumeMounts:- name: devops-mysqlmountPath: /var/lib/mysql
---
apiVersion: v1
kind: Service
metadata:name: devops-mysqlnamespace: devops
spec:ports:- port: 3306protocol: TCPtargetPort: 3306nodePort: 30011selector:app: devops-mysqltype: NodePortsessionAffinity: ClientIP     ###确保与客户端的会话一致性
[root@master01 demo]# vim mysql.yaml
[root@master01 demo]# kubectl apply -f mysql.yaml 

[root@master01 home]# kubectl get svc,pod -n devops

总结

1.K8S集群中访问流向

port:为service在clusterIP上暴露的端口

targetport:对应容器映射在pod上的端口

nodeport:可以通过在K8S集群外部使用nodeIP+nodePort来去访问service

containerport:容器内部使用的端口

K8S集群内部:客户端——clusterIP:port——通过target port——podIP:containerport

K8S集群外部:客户端——nodeIP:nodeport——通过target port——podIP:containerport

2.语法格式

通过缩进表示层级关系

不能使用tab进行缩进,只能使用空格,一般开头缩进2个空格

字符后缩进一个空格,比如冒号,逗号等

使用—表示新的yaml文件的开始

使用#表示注释

3.yaml文件组成部署

(1)控制器定义

deployment:定义metadaea、spec、selector

通过yaml完成副本的定义,自主式的

(2)被控制对象

由哪一个控制器(自主式、deployment、statusfulset等)

4.常用字段的含义

如何快速编写yaml

(1)第一种使用kubectl create 命令生成yaml文件

(2)第二种使用kubectl get 命令导出yaml文件

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

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

相关文章

Java入门基础学习笔记44——String

为什么要学习String的处理呢? 开发中,对字符串的处理是非常常见的。 String是什么?可以做什么? java.lang.String 代表字符串。可以用来创建对象封装字符串数据,并对其进行处理。 1、创建对象 2、封装字符串数据 3…

blender 烘焙渲染图片,已经导出fbx,导出贴图。插件生成图片

1.新建一个模型。选择资产浏览器的材质,并拖动到模型身上,如下图。资产浏览器的材质可以网上找。 2.打开着色器面板。正下方着色器窗口中,点击空白取消选择,然后右击-添加-着色器-原理化BSDF,右击-添加-纹理-图像纹理。…

宝塔Linux下安装EMQX服务并设置匿名访问

简述 之前有在Windows和Linux下搭建过EMQX服务并且使用方面都没问题,但那都是使用的用户和密码方式访问,且前提都是通过浏览器进入EMQX的配置页面设置的属性; 但这次使用的是腾讯云租用的宝塔Liniux,由于没有浏览器只能通过命令行方式修改EMQX配置以达到目的;由于事先没看…

【博主推荐】HTML5实现520表白、情人节表白模板源码

文章目录 1.设计来源1.1 表白首页1.2 甜蜜瞬间11.3 甜蜜瞬间21.4 甜蜜瞬间31.5 甜蜜瞬间41.6 甜蜜瞬间51.7 甜蜜瞬间61.8 永久珍藏 2.效果和源码2.1 页面动态效果2.2 页面源代码2.3 源码目录2.4 更多为爱表白源码 3.源码下载地址 作者:xcLeigh 文章地址:…

国内安装Axure RP Extension for Chrome插件

1、到项目的当前目录来 2、后缀改成.rar 3、解压成文件夹 4、拖入chrome中 我这里直接准备好了文件 链接:https://pan.baidu.com/s/1V98tx5LgXZRoKY7XjnIcrA 提取码:gh13

中国上市公司融资约束指数数据上市公司SA指数与WW指数(2000-2023年)

上市公司融资约束指数,是用来评估公司面临的融资限制程度的工具。SA指数由Hadlock和Pierce开发,基于公司规模和年龄计算,其中较小且较年轻的公司通常会有更高的指数值,表明其融资约束较大。另一方面,WW指数由Whited和W…

【静态分析】在springboot使用太阿(Tai-e)03

参考:使用太阿(Tai-e)进行静态代码安全分析(spring-boot篇三) - 先知社区 1. JavaApi 提取 1.1 分析 预期是提取controller提供的对外API,例如下图中的/sqli/jdbc/vuln 先看一下如何用tai-e去获取router…

浅谈分布式系统

目录 一、单机架构二、分布式架构1、应用服务与数据库分离2、负载均衡3、数据库读写分离4、引入缓存5、数据库分库分表6、引入微服务 一、单机架构 单机架构,只有一台服务器,这个服务器负责所有工作。 绝大多数公司的产品,都是这种单机架构。…

[论文笔记]REACT: SYNERGIZING REASONING AND ACTING IN LANGUAGE MODELS

引言 今天带来一篇经典论文REACT: SYNERGIZING REASONING AND ACTING IN LANGUAGE MODELS的阅读笔记,论文中文意思是 在语言模型中协同推理和行动。 虽然大型语言模型(LLMs)在语言理解和互动决策任务中展现出强大的能力,但它们在推理(例如思维链提示)和…

画图工具之PlantUML插件使用

文章目录 1 PlantUML插件1.1 引言1.2 什么是PlantUML1.3 PlantUML插件1.3.1 IntelliJ IDEA中插件1.3.2 VS Code中插件1.3.3 使用例子 1.4 PlantUML时序图语法1.4.1 声明参与者1.4.2 消息传递1.4.2.1 同步消息1.4.2.2 异步消息1.4.2.3 返回消息1.4.2.4 自调用 1.4.3 生命线&…

【大模型】fineturn Q-wen

github上下载qwen1_5源码 修改finetun.sh 然后在路径qwen1_5/examples/sft下修改finetun.sh, 内容如下 #!/bin/bash export CUDA_DEVICE_MAX_CONNECTIONS1 DIRpwd# Guide: # This script supports distributed training on multi-gpu workers (as well as single-worker trai…

Leetcode刷题2

文章目录 前言寻找两个正序数组的中位数1️⃣ 双指针快速排序2️⃣ 第k小数解法 Z 字形变换1️⃣ 个人解法2️⃣巧妙解法13️⃣巧妙解法2 字符串转换整数 (atoi)1️⃣ 常规方法2️⃣ 作弊方法😫 整数转罗马数字1️⃣ 常规方法:按照给定规则写出判断条件即…

WSL调用docker

WSL(windows subsystem linux)是window系统的原生linux子系统,用于代码开发很方便。 希望在wsl里面运行docker,首先要安装docker在WSL中使用,大部分人的第一想法肯定是用以下命令行安装(个人不推荐&#x…

java的unsafe

在Java中,sun.misc.Unsafe 是一个强大且危险的类,它提供了一些直接操作内存、对象和线程的底层功能。这个类通常不鼓励普通开发者使用,因为它绕过了Java语言的一些安全性和内存管理机制,可能会导致难以追踪的错误和安全漏洞。 Un…

2.go环境配置与开发工具选择

go 环境配置 下载安装包 官网(https://go.dev/dl/) 下载地址(国内)(https://golang.google.cn/dl/) 根据自己的操作系统选择下载即可 下载后安装 记住地址 比如: D:\work\devtool\go 配置系统环境变量 PATH 指向 go 的安装 bin 目录 比如: D:\work…

若依前端vue实现 输入框下拉选择加搜索用户

探索代码以及详细的注解 <template><div><el-select v-model"selectedUserId" filterable placeholder"选择用户" change"handleChange"><el-optionv-for"user in filteredUsers":key"user.userId":l…

集合框框框地架

这一次来介绍一下常用的集合&#xff1a; 首先是两种集合的《家庭系谱图》&#xff1a; 接下来介绍一下集合的种类&#xff1a; Collection Set SetTreeSet&#xff1a;基于红⿊树实现&#xff0c;⽀持有序性操作&#xff0c;例如&#xff1a;根据⼀个范围查找元素的操作。但…

Unity实现TableView

基于Scrollview封装的TableView&#xff0c;实现对视野外的Cell回收利用&#xff0c;减少创建Cell的开销。 核心逻辑如下&#xff1a; /***************************************动态使用cell核心逻辑开始 **************************************///计算所有cell的坐标信息 …

利用java8 的 CompletableFuture 优化 Flink 程序,性能提升 50%

你好&#xff0c;我是 shengjk1&#xff0c;多年大厂经验&#xff0c;努力构建 通俗易懂的、好玩的编程语言教程。 欢迎关注&#xff01;你会有如下收益&#xff1a; 了解大厂经验拥有和大厂相匹配的技术等 希望看什么&#xff0c;评论或者私信告诉我&#xff01; 文章目录 一…

AI图书推荐:用100个ChatGPT提示词掌握Python编程

《用100个ChatGPT提示词掌握Python编程》&#xff08;ChatGPT:Your Python Coach Mastering the Essentials in 100 Prompts&#xff09; 塞尔吉奥罗哈斯-加莱亚诺&#xff08;Sergio Rojas-Galeano&#xff09;是一位热情的计算机科学家&#xff0c;对人工智能、机器学习、进化…