三年运维开发你还不会编写k8s的资源清单yaml???速度进来学!

三年运维开发你还不会编写k8s的资源清单yaml???速度进来学!

在Kubernetes(K8s)中,YAML文件是用于描述集群资源(如Pod、Service、Deployment等)的常用方式。通过编写和操作这些YAML文件,开发者和运维人员可以声明性地定义和管理集群状态。本文将详细介绍Kubernetes YAML文件中常用的指令以及如何通过这些指令来创建和管理资源。

Kubernetes YAML基础

YAML(YAML Ain’t Markup Language)是一种人类可读的数据序列化标准,它以数据为中心的设计使得其易于阅读且适合表达层次化或复杂结构。在Kubernetes中,YAML被用来描述应用的配置信息。

一个基本的Kubernetes YAML文件通常包含以下部分:

  • apiVersion:指定API的版本。
  • kind:指定要创建的资源类型。
  • metadata:包含资源的元数据,如名称、标签等。
  • spec:具体描述资源的细节。

YAML指令详解

Pod

Pod是Kubernetes中的最小部署单元,一个Pod可以包含一个或多个紧密相关的容器。

apiVersion: v1
kind: Pod
metadata:name: my-pod
spec:containers:- name: my-containerimage: my-image:1.0ports:- containerPort: 8080

上述代码块定义了一个Pod,其中包含一个容器,该容器使用名为my-image:1.0的镜像,并监听8080端口。

Service

Service是定义一组Pod访问策略的抽象,它允许外部访问这些Pod。

apiVersion: v1
kind: Service
metadata:name: my-service
spec:selector:app: MyAppports:- protocol: TCPport: 80targetPort: 9376

在这个例子中,my-service将流量路由到带有标签app: MyApp的Pod上,并将外部端口80映射到目标端口9376。

Deployment

Deployment用于管理Pod副本,它允许你声明性地更新应用程序。

apiVersion: apps/v1
kind: Deployment
metadata:name: my-deployment
spec:replicas: 3selector:matchLabels:app: MyApptemplate:metadata:labels:app: MyAppspec:containers:- name: my-containerimage: my-image:1.0ports:- containerPort: 8080

这个Deployment确保始终有3个Pod副本运行,并且可以通过修改YAML文件和执行kubectl apply来无缝升级应用。

ConfigMap

ConfigMap用于存储配置信息,它可以作为卷挂载到容器中。

apiVersion: v1
kind: ConfigMap
metadata:name: my-config
data:key1: value1key2: value2

这个ConfigMap包含了两个键值对,可以在Pod中使用volumeMounts引用。

Secret

Secret用于存储敏感数据,如密码、密钥等。

apiVersion: v1
kind: Secret
metadata:name: my-secret
type: Opaque
data:username: dXNlcm5hbWU= # base64 encoded usernamepassword: cGFzc3dvcmQ= # base64 encoded password

Secrets通常以Base64编码的形式存储,并在Pod中以环境变量或文件形式使用。

高级特性

除了基本的资源定义外,Kubernetes YAML还支持许多高级特性,如:

  • 亲和性(Affinity):控制Pod调度到特定节点的策略。
  • 容忍度(Tolerations):允许Pod运行在特定的污点(Taints)节点上。
  • 生命周期钩子(Lifecycle Hooks):在容器生命周期的特定时刻执行命令或HTTP请求。
  • 资源限制(Resource Requests/Limits):为容器设置CPU和内存的使用限制。

结论

Kubernetes YAML文件是集群资源管理的核心,它们提供了一种灵活且强大的方式来形容和维护集群状态。理解和熟练使用YAML文件是高效使用Kubernetes的关键。通过YAML文件,你可以声明性地定义期望的集群配置,而Kubernetes则负责实现和维护这些配置。在实际工作中,你应该根据具体的应用场景和需求来编写和优化YAML文件,以便更好地利用Kubernetes的强大功能。

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

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

相关文章

gerrit 拉取失败

在浏览器gerrit的设置界面设置的邮箱地址和在命令行使用git config --gloable user.email设置的邮箱地址必须保持一致吗 在浏览器gerrit的设置界面设置的邮箱地址和在命令行使用git config --global user.email设置的邮箱地址并不一定需要保持一致。这两个邮箱地址是独立的&am…

【数据结构】4.List的介绍

目录 1.什么是List 2.常见接口介绍 3.List的使用 1.什么是List 在集合框架中,List是一个接口,继承自Collection。 Collection也是一个接口,该接口中规范了后序容器中常用的一些方法,具体如下: Iterable也是一个接口…

syscall的检测与绕过(下)

syscall的检测与绕过 ntdll中syscall被执行的格式大致 我们可以通过检测mov r10, rcx类似的代码来确定程序是否直接进行系统调用。 但是很容易被bypass 而且还可以写出很多不一样的写法,显然这个方式是不行的。很轻易就会被bypass。 当然也可以检测syscall指令&a…

UDTF函数 explode

场景: 原hive数据形式 split 处理到一个Array 形式 使用explode炸开后的效果是 explode结合侧面视图达到targeType 目标形式: 一进多出 explode 将hive 中复杂的 array 炸成多行 因为炸开后, movie 列值少于categoryname 列所以这里为了达到…

朴素模式匹配算法

什么是字符串的模式匹配? 字符串模式匹配:在主串中找到与模式串相同的字串,并返回其所在位置 算法思想: 算法思想为:从主串S的第一个字符起,与模式串T的第一个字符比较,若相等,则继续逐个比较后续字符;否则从主串的下一…

Windows环境下删除MySQL

文章目录 一、关闭MySQL服务1、winR打开运行,输入services.msc回车2、服务里找到MySQL并停止 二、卸载MySQL软件1、打开控制模板--卸载程序--卸载MySQL相关的所有组件 三、删除MySQL在物理硬盘上的所有文件1、删除MySQL的安装目录(默认在C盘下的Program …

多线程代码案例之阻塞队列

目录 1.生产者消费者模型 2.使用标准库中的阻塞队列 3.模拟实现阻塞队列 在介绍阻塞队列之前,会先介绍一些前置知识,像队列:有普通队列、优先级队列、阻塞队列、和消息队列。前面两个是线程不安全的,而后面两个是线程安全的。本…

前端如何单独做虚拟奖金池?

公司业务需求要做一个虚拟奖金池,具体是需求是,不需要后端数据支持,但是又需要不同用户看到的奖金池数据每次变动都是一致的,并且要在给定的最小最大值中变动。 一开始看需求,因为需要所有登录/未登录,不同…

全栈的自我修养 ———— react实现滑动验证

实现滑动验证 展示依赖实现不借助create-puzzle借助create-puzzle 展示 依赖 npm install rc-slider-captcha npm install create-puzzleapi地址 实现 不借助create-puzzle 需要准备两张图片一个是核验图形,一个是原图------> 这个方法小编试了后感觉比较麻烦…

【七 (1)FineBI FCP模拟试卷-股票收盘价分析】

目录 文章导航一、字段解释二、需求三、操作步骤1、添加计算字段(每月最后一天的收盘价)2、绘制折线图 文章导航 【一 简明数据分析进阶路径介绍(文章导航)】 一、字段解释 Company Name:公司名称 Date:…

【vue】绑定事件 v-on

v-on 简写&#xff1a; clickkeyupkeydownkeyup.wkeyup.ctrl.a <!DOCTYPE html> <html lang"en"><head><meta charset"UTF-8"><meta name"viewport" content"widthdevice-width, initial-scale1.0"><…

今天掏心窝子!聊聊35岁了程序员何去何从?

今天的内容不聊技术&#xff0c;聊聊轻松的话题&#xff0c;脑子高速转了好几周&#xff0c;停下来思考一下人生…… 不对&#xff0c;关于35岁的问题好像也不轻松&#xff0c;些许有点沉重&#xff0c;反正不是技术&#xff0c;不用高速转动脑细胞了&#xff0c;哈哈。 兄弟…

策略模式【行为模式C++】

1.概述 策略模式是一种行为设计模式&#xff0c; 它能让你定义一系列算法&#xff0c; 并将每种算法分别放入独立的类中&#xff0c; 以使算法的对象能够相互替换。 策略模式通常应用于需要多种算法进行操作的场景&#xff0c;如排序、搜索、数据压缩等。在这些情况下&#x…

厨房安全监控系统设计方案

厨房安全监控系统设计方案 一、系统架构 厨房安全监控系统的架构主要分为感知层、网络层、平台层和应用层四个层次。 感知层&#xff1a;通过各种传感器实时采集厨房环境数据。网络层&#xff1a;负责数据的传输&#xff0c;将感知层采集的数据传输到平台层。平台层&#xf…

Pandas相比Excel的优势是哪些?

熟悉Pandas的同学会知道&#xff0c;Pandas相当于Python中的Excel&#xff0c;都是基于二维表的进行数据处理分析&#xff0c;不同的是&#xff0c;Pandas基于代码操作数据&#xff0c;Excel是图形化的分析工具。 不少人会问Excel比Pandas更简单&#xff0c;为什么还要学习Pan…

wangEditor 测试环境对,但是生产环境无法显示

package.json 文件版本 "wangeditor": "4.3.0"开发环境 new Editor(#${this.id});出来的数据 正式环境 new Editor(#${this.id});出来的数据 原因&#xff1a; vue.config 文件 打包策略的时候 const assetsCDN {css: [https://lf6-cdn-tos.bytecd…

三 maven的依赖管理

一 maven依赖管理 Maven 依赖管理是 Maven 软件中最重要的功能之一。Maven 的依赖管理能够帮助开发人员自动解决软件包依赖问题&#xff0c;使得开发人员能够轻松地将其他开发人员开发的模块或第三方框架集成到自己的应用程序或模块中&#xff0c;避免出现版本冲突和依赖缺失等…

算法1: 素数个数统计

统计n以内的素数个数 素数&#xff1a;只能被1和自身整除的自然数&#xff0c;0和1除外&#xff1b; 举例&#xff1a; 输入&#xff1a;100 输出&#xff1a;25 import java.util.*; class Test1{public static void main(String[] args){int a 100; //输入数字//…

配电站房黄色灯智能识别:提升安全与效率的关键技术---豌豆云

随着智能化技术的快速发展&#xff0c;配电站房的安全管理与运维效率得到了显著提升。 其中&#xff0c;黄色灯智能识别技术在配电站房中的应用&#xff0c;不仅有助于及时发现设备故障&#xff0c;还能提高巡检效率&#xff0c;确保电力系统的稳定运行。 今天豌豆云将给大家…

AI来了,Spring还会远吗?(Spring AI初体验)

目录 一、创建项目二、first demo1、application.properties2、ChatController3、结果 三、个人思考 一、创建项目 官方文档的Getting Started 最低要求&#xff1a;JDK17 阿里云的Server URL&#xff08;https://start.aliyun.com/&#xff09;搜不到Spring AI&#xff0c;…