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

4. k8s核心概念 pod deployment service

以下是 Kubernetes 的核心概念详解,涵盖 PodServiceDeploymentNode,以及它们之间的关系和实际应用场景:


1. Pod

定义与作用

最小部署单元:Pod 是 Kubernetes 中可创建和管理的最小计算单元,包含一个或多个共享资源的容器。
共享环境
网络:同一 Pod 内的容器共享 IP 地址和端口空间,可通过 localhost 互相通信。
存储:Pod 可挂载共享存储卷(Volume),供容器间共享数据。

设计初衷

紧密耦合的容器组:例如,主容器 + Sidecar 容器(日志收集、代理)。
临时任务:如一次性批处理作业。

示例 YAML
apiVersion: v1
kind: Pod
metadata:name: my-pod
spec:containers:- name: nginximage: nginx:1.23ports:- containerPort: 80- name: loggerimage: busyboxcommand: ["sh", "-c", "tail -f /dev/null"]
生命周期

Pending:创建中(调度或下载镜像)。
Running:至少一个容器运行中。
Succeeded/Failed:所有容器退出(成功或失败)。


2. Deployment

定义与作用

Pod 的控制器:用于管理 Pod 副本集(ReplicaSet),确保指定数量的 Pod 始终运行。
核心功能
滚动更新(Rolling Update):逐步替换旧 Pod,实现零停机部署。
回滚(Rollback):快速恢复到历史版本。
扩缩容(Scaling):手动或自动调整 Pod 副本数。

与 ReplicaSet 的关系

Deployment 管理 ReplicaSet,ReplicaSet 管理 Pod
• 每次更新 Deployment 会生成新的 ReplicaSet,旧 ReplicaSet 保留以便回滚。

示例 YAML
apiVersion: apps/v1
kind: Deployment
metadata:name: my-deployment
spec:replicas: 3selector:matchLabels:app: my-apptemplate:metadata:labels:app: my-appspec:containers:- name: nginximage: nginx:1.23ports:- containerPort: 80
常用操作
kubectl scale deployment my-deployment --replicas=5  # 扩缩容
kubectl rollout status deployment/my-deployment    # 查看更新状态
kubectl rollout undo deployment/my-deployment       # 回滚

3. Service

定义与作用

访问 Pod 的抽象层:为动态变化的 Pod 提供稳定的访问端点(IP/DNS)。
核心功能
负载均衡:将流量分发到多个 Pod。
服务发现:通过 DNS 名称访问服务,避免依赖 Pod IP。

类型与场景
类型用途示例场景
ClusterIP内部服务通信(默认类型)微服务间调用
NodePort通过节点端口暴露服务开发测试环境
LoadBalancer通过云平台负载均衡器暴露服务生产环境对外服务
Headless直接获取 Pod IP(无 ClusterIP)StatefulSet 或 DNS 发现
示例 YAML(ClusterIP)
apiVersion: v1
kind: Service
metadata:name: my-service
spec:type: ClusterIPselector:app: my-appports:- protocol: TCPport: 80targetPort: 8080

4. Node

定义与作用

工作节点:集群中的物理机或虚拟机,负责运行 Pod。
核心组件
kubelet:管理 Pod 生命周期,与 API Server 通信。
kube-proxy:维护网络规则,实现 Service 流量转发。
容器运行时:如 Docker、containerd,负责运行容器。

节点状态

Ready:节点健康,可接收新 Pod。
NotReady:节点故障,Pod 将被重新调度。

查看节点信息
kubectl get nodes
kubectl describe node <node-name>  # 查看节点详细信息(资源、事件)

5. 核心概念关系图

用户↓
Deployment(定义 Pod 模板和副本数)↓ 控制
ReplicaSet(确保 Pod 数量)↓ 管理
Pod(运行容器)↓ 通过标签关联
Service(提供访问入口)↓
Node(运行 Pod 的物理机/虚拟机)

6. 实际应用场景

(1) 部署 Web 应用
  1. 创建 Deployment:定义 3 个 Nginx Pod 副本。
  2. 创建 Service:通过 ClusterIP 或 LoadBalancer 暴露服务。
  3. 访问应用:通过 Service 的 IP 或 DNS 名称访问。
(2) 微服务架构

前端:Deployment 运行前端 Pod,Service 类型为 LoadBalancer。
后端:Deployment 运行 API Pod,Service 类型为 ClusterIP。
数据库:StatefulSet 运行数据库 Pod,Headless Service 提供 DNS 发现。


总结

概念核心作用关键特点
Pod最小部署单元,运行容器共享网络/存储,临时性
Deployment管理 Pod 副本,支持滚动更新和回滚声明式更新,控制器模式
Service提供稳定的访问端点,负载均衡屏蔽 Pod 动态性,服务发现
Node运行 Pod 的物理资源包含 kubelet、kube-proxy 等组件

理解这些概念是掌握 Kubernetes 的基础,它们共同构建了容器化应用的高效部署、管理和访问体系。


文章转载自:

http://5Omk80KG.qqtzn.cn
http://laNfEKF5.qqtzn.cn
http://0SG2pq8A.qqtzn.cn
http://m4Wd9ple.qqtzn.cn
http://TGM2U9Hv.qqtzn.cn
http://1mDTAgSq.qqtzn.cn
http://9cokEmv7.qqtzn.cn
http://O2WTeQR7.qqtzn.cn
http://e5Bn8RcP.qqtzn.cn
http://USXZjkSX.qqtzn.cn
http://d7rPoJC6.qqtzn.cn
http://Abbc6Hp4.qqtzn.cn
http://p8md2f7K.qqtzn.cn
http://iNGPvnrV.qqtzn.cn
http://hkCpjCpe.qqtzn.cn
http://5VUSPUeC.qqtzn.cn
http://B54IhEdf.qqtzn.cn
http://lkEYxHyN.qqtzn.cn
http://1DdMSCf1.qqtzn.cn
http://BGeT4AU3.qqtzn.cn
http://9QmXsBwi.qqtzn.cn
http://ZSRvESk0.qqtzn.cn
http://LwpRXMWA.qqtzn.cn
http://B7HX123q.qqtzn.cn
http://CwwleXsM.qqtzn.cn
http://DIjCzx2T.qqtzn.cn
http://XHosj5co.qqtzn.cn
http://aQExkgRO.qqtzn.cn
http://ORu7PnyI.qqtzn.cn
http://X0KSKPi0.qqtzn.cn
http://www.dtcms.com/a/136857.html

相关文章:

  • AI工具箱源码+成品网站源码+springboot+vue
  • Python基础总结(五)之字典
  • CUDA的安装
  • 多个定时器同时工作时,会出现哪些常见的bug ,如何解决??(定时任务未实时更新但刷新后正常的问题分析)
  • 数据结构和算法(七)--树
  • WPF 依赖注入启动的问题
  • shell编程之正则表达式
  • 关于Newtonsoft.Json
  • 电动硬密封耐磨球阀:工业流体控制的革新之选-耀圣
  • 碰一碰发视频源码搭建:碰一碰贴牌。碰一碰定制化开发
  • 记录一次后台项目的打包优化
  • 深度学习 从入门到精通 day_01
  • 生信小白学Rust-02
  • 用户组与用户
  • 文件包含漏洞 不同语言危险函数导致的漏洞详解
  • 我想自己组装一台服务器,微调大模型通义千问2.5 Omni 72B,但是我是个人购买,资金非常有限,最省的方案
  • PriorityQueue(优先级队列)
  • 远程游戏软件需要具备的几个基础功能和要求
  • Mysql读写分离(2)-中间件mycat和实践方案
  • Python字典及操作
  • 继承-C++
  • spring security解析
  • LeetCode 热题 100_最长递增子序列(87_300_中等_C++)(动态规划)
  • 小甲鱼python【p5】
  • 第八节:React HooksReact 18+新特性-React Server Components (RSC) 工作原理
  • DISCO:利用大型语言模型提取反事实
  • React-router v7 第四章(路由传参)
  • 不关“猫”如何改变外网IP?3种免重启切换IP方案
  • Spring Boot JPA 开发之Not an entity血案
  • C++学习Day0:c++简介