k8s,声明式API对象理解

命令式API

比如:

先kubectl create,再replace的操作,我们称为命令式配置文件操作

kubectl replace的执行过程,是使用新的YAML文件中的API对象,替换原有的API对象;而kubectl apply,则是执行了一个对原有API对象的PATCH操作。

kube-apiserver在响应命令式请求(比如,kubectl replace)的时候,一次只能处理一个写请求,否则会有产生冲突的可能。而对于声明式请求(比如,kubectl apply),一次能处理多个写操作,并且具备Merge能力。

什么是API对象

要快速掌握 Kubernetes (k8s) 中 API 对象的核心知识,以下是最重要的20%,这将帮助你理解和操作80%的 k8s 功能:

  1. API对象的概念

    • API对象是 k8s 集群中的管理操作单元,每支持一项新功能,就会引入对应的API对象。
    • API对象具有三大类属性:元数据(metadata)、规范(spec)和状态(status)
      • 元数据(metadata):用于标识API对象,包括namespace、name和uid,以及用于匹配不同对象的标签(labels)。
      • 规范(spec) :描述对象的期望状态(Desired State),即用户希望对象所具有的特征。
      • 状态(status) :描述对象的实际状态(Actual State),由 Kubernetes 系统提供和更新。
  2. API对象的管理方式

    • 使用 kubectl 工具,可以通过命令式命令、命令式对象配置和声明式对象配置三种方式管理API对象。
  3. 标签(Label)和选择器(Selector)

    • 标签是识别 Kubernetes 对象的标签,以 key/value 的方式附加到对象上。
    • 选择器用于选择具有特定标签的一组对象。
  4. API 组和版本

    • Kubernetes API 遵循 OpenAPI 规范,并以端点 /openapi/v2 提供 API 规范。
    • API 组和版本是 Kubernetes API 的重要概念,不同的功能模块被划分为不同的 API 组。
  5. 核心API对象

    • Pod:k8s中的基本部署单元,可以包含一个或多个容器。
    • Node:k8s中的工作节点,负责运行Pod。
    • Master:集群控制节点,负责整个集群的管理和控制。
    • Deployment:用于描述应用的部署状态,包括应用的副本数、更新策略等。
    • Service:定义了一种访问Pod的方式,可以是ClusterIP、NodePort、LoadBalancer等。
  6. API 交互

    • Kubernetes 支持 application/jsonapplication/yaml 媒体类型用于请求和响应。
    • 客户端可以通过设置 Accept 头部来请求服务器以表格形式返回对象。

掌握这些核心概念和操作,将为你在 Kubernetes 中管理复杂的应用和服务打下坚实的基础。

相关推荐
张忠琳5 小时前
【containerd 2.1.8】(Part 1)containerd 2.1.8 超深度源码分析 — 总体架构与模块全景
云原生·kubernetes·containerd
真实的菜7 小时前
微服务注册配置中心终极选型:2026指南
微服务·云原生·架构
正经教主8 小时前
【docker基础】第五课:Docker网络详解
运维·docker·容器
Waay10 小时前
K8s ETCD 详解|备份恢复+静态Pod原理+kubectl查询底层流程(面试必考)
面试·kubernetes·etcd
松岩10 小时前
dcgm-exporter部分指标
kubernetes
我是谁??12 小时前
ubuntu22.04 通过docker部署vLLM(Qwen3-0.6B)大模型+New API+OpenWebUI
docker·容器·vllm
Patrick_Wilson13 小时前
K8s 探针避坑:Next.js 不同部署模式下的健康检查实践
kubernetes·node.js·next.js
运维瓦工13 小时前
DevOps 生态介绍(十):Docker Compose 核心 YAML 配置详解与常用命令大全
spring cloud·docker·容器
Plastic garden13 小时前
K8s(10)NFS 的动态 PV 创建数据库给k8s的mysql和redis
docker·容器·kubernetes
Plastic garden13 小时前
k8s(11) Pod 控制器,服务发现与存储管理
kubernetes