当前位置: 首页 > news >正文

K8s工作流程与YAML实用指南

K8s 工作流程

K8s 采用声明式管理(用户说"要什么",K8s 负责"怎么做")方式,通过 YAML 文件描述期望的状态,K8s控制平面会自动确保实际状态与期望状态一致。
核心工作流程如下:
用户提交 YAML → API Server → etcd 存储 → 控制器监听 → 调度器分配 → Kubelet 执行 → 运行状态监控

  • 用户定义期望状态:通过 YAML 文件定义工作负载
  • API Server 接收:验证并存储到 etcd
  • 控制器工作:各种控制器监听资源变化
  • 调度决策:Scheduler 决定 Pod 运行在哪个节点
  • 节点执行:Kubelet 拉取镜像并启动容器
  • 持续监控:控制器持续确保实际状态符合期望

Kubernetes Yaml标准结构

实际上用户只用考虑怎么编写yaml文件布置任务。

YAML 基础语法结构
#注释以 # 开头
key: value                    # 键值对
string_value: "Hello World"   # 字符串
number_value: 42              # 数字
boolean_value: true           # 布尔值
null_value: null              # 空值#数据结构类型
#对象/映射(Object/Mapping)
person:name: "张三"age: 30city: "北京"
#数组/列表(Array/List)
fruits:- apple- banana- orange
#或者内联格式
fruits: [apple, banana, orange]#嵌套结构
company:name: "科技公司"employees:- name: "李四"position: "工程师"- name: "王五"position: "设计师"locations:- "北京"- "上海"
Kubernetes YAML 文件标准结构

四大核心部分

#1. API 版本
apiVersion: apps/v1
#e.g.
apiVersion: apps/v1        # Deployment, ReplicaSet, DaemonSet
apiVersion: v1             # Pod, Service, ConfigMap
apiVersion: batch/v1       # Job
apiVersion: batch/v1beta1  # CronJob#2. 资源类型
kind: Deployment
#e.g.
kind: Deployment    # 部署
kind: Service       # 服务
kind: ConfigMap     # 配置映射
kind: Secret        # 密钥
kind: Pod           # Pod
#工作负载类型:
#Deployment:长期运行的无状态应用
#StatefulSet:有状态应用(如数据库)
#DaemonSet:每个节点运行一个实例(如日志收集)
#Job/CronJob:一次性任务或定时任务#3. 元数据
metadata:name: my-appnamespace: defaultlabels:app: my-appversion: v1.0
#e.g. 
metadata:name: my-application           # 必需:资源名称namespace: production          # 可选:命名空间labels:                        # 可选:标签app: web-serverenvironment: productionversion: "1.0"annotations:                   # 可选:注解description: "主要的web服务器"created-by: "开发团队"#4. 规格定义
spec:# 具体配置内容
#e.g.
spec:replicas: 3                    # 副本数量selector:                      # 选择器matchLabels:app: web-servertemplate:                      # Pod 模板metadata:labels:app: web-serverspec:containers:                # 容器定义- name: web-containerimage: nginx:1.20ports:- containerPort: 80env:                     # 环境变量- name: ENV_VARvalue: "production"resources:               # 资源限制requests:memory: "64Mi"cpu: "250m"limits:memory: "128Mi"cpu: "500m"
完整的 Deployment 示例
apiVersion: apps/v1
kind: Deployment
metadata:name: nginx-deploymentnamespace: defaultlabels:app: nginxenvironment: productionannotations:description: "Nginx web server deployment"
spec:replicas: 3strategy:type: RollingUpdaterollingUpdate:maxSurge: 1maxUnavailable: 1selector:matchLabels:app: nginxtemplate:metadata:labels:app: nginxspec:containers:- name: nginximage: nginx:1.20ports:- containerPort: 80name: httpenv:- name: NGINX_PORTvalue: "80"resources:requests:memory: "64Mi"cpu: "250m"limits:memory: "128Mi"cpu: "500m"livenessProbe:httpGet:path: /port: 80initialDelaySeconds: 30periodSeconds: 10readinessProbe:httpGet:path: /port: 80initialDelaySeconds: 5periodSeconds: 5restartPolicy: Always

实际工作示例

apiVersion: apps/v1
kind: Deployment
metadata:name: web-app
spec:replicas: 3          # 安排:运行3个副本selector:matchLabels:app: webtemplate:metadata:labels:app: webspec:containers:- name: webimage: nginx:1.20  # 安排:使用nginx镜像ports:- containerPort: 80
Kubernetes 收到这个"工作安排"后会:

工作内容是创建 3 个 nginx Pod,如果某个 Pod 失败,自动重新创建,确保始终有 3 个健康的 Pod 运行。

相关文章:

  • 编程之巅:语言的较量
  • 清华大学发Nature!光学工程+神经网络创新结合
  • vue2 + webpack 老项目升级 node v22 + vite + vue2 实战全记录
  • BaseTypeHandler用法-笔记
  • 【Unity】模型渐变技术 BlendShapes变形
  • UE5蓝图暴露变量,类似Unity中public一个变量,在游戏运行时修改变量实时变化和看向目标跟随目标Find Look at Rotation
  • 当 Redis 作为缓存使用时,如何保证缓存数据与数据库(或其他服务的数据源)之间的一致性?
  • BKP(备份寄存器)和 RTC(实时时钟)
  • Datatable和实体集合互转
  • go的select多路复用
  • 如何在 Vue.js 中集成 Three.js —— 创建一个旋转的 3D 立方体
  • 《算力觉醒!ONNX Runtime + DirectML如何点燃Windows ARM设备的AI引擎》
  • 优化版本,增加3D 视觉 查看前面的记录
  • 基于 HT for Web 轻量化 3D 数字孪生数据中心解决方案
  • 山海鲸轻 3D 渲染技术深度解析:预渲染如何突破多终端性能瓶颈
  • Docker 替换宿主与容器的映射端口和文件路径
  • @Pushgateway自定义脚本推送数据
  • 数据基座觉醒!大数据+AI如何重构企业智能决策金字塔(上)
  • @Pushgateway 数据自动清理
  • 40. 自动化异步测试开发之编写异步业务函数、测试函数和测试类(类写法)
  • css代码大全/丹东网站seo
  • 万州那家做网站/免费自建网站有哪些
  • 美国网站备案/whois查询 站长工具
  • 成都集团网站建设/网站制作app免费软件
  • 中国外发加工网真实吗/关键词排名优化是什么意思
  • 站长工具推荐/百度sem竞价推广pdf