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

做游戏网站打鱼矿泉水瓶50种手工制作

做游戏网站打鱼,矿泉水瓶50种手工制作,wordpress插件 盗版,wordpress网站欣赏文章目录有状态无状态(1)无状态--deployment(2)有状态--statefulsetKubernetes StatefulSet 控制器详解1. StatefulSet 的核心特性(1) 稳定的 Pod 标识(2) 有序部署与扩展(3) 持久化存储(4) 稳定的网络标识2. StatefulSet 的典型应…

文章目录

  • 有状态无状态
    • (1)无状态--deployment
    • (2)有状态--statefulset
  • Kubernetes StatefulSet 控制器详解
    • 1. StatefulSet 的核心特性
      • (1) 稳定的 Pod 标识
      • (2) 有序部署与扩展
      • (3) 持久化存储
      • (4) 稳定的网络标识
    • 2. StatefulSet 的典型应用场景
    • 3. StatefulSet 的工作流程
    • 4. StatefulSet 的关键操作
      • (1) 扩容与缩容
      • (2) 更新策略
      • (3) 删除 StatefulSet
    • 5. StatefulSet 的注意事项
    • 6.案列
    • 7. 对比 StatefulSet 与 Deployment

有状态无状态

(1)无状态–deployment

  • 认为pod都是一样的
  • 没有顺序要求
  • 不用考虑在哪个pod上运行
  • 随意扩展和伸缩

(2)有状态–statefulset

  • 上面因素都要考虑到
  • 每个pod是独立的,保持pod的启动顺序和唯一性
  • 唯一网络标识符,持久存储
  • 有序(比如mysql主从)

Kubernetes StatefulSet 控制器详解

StatefulSet 是 Kubernetes 中用于管理 有状态应用(Stateful Applications) 的核心控制器,它确保 Pod 拥有稳定的标识、有序部署/扩展、持久化存储和稳定的网络身份。与 Deployment(适用于无状态应用)不同,StatefulSet 为每个 Pod 提供唯一的标识,并保证其生命周期中的可预测性。

StatefulSet 是 Kubernetes 管理有状态应用的核心控制器,通过 唯一标识、有序性、持久化存储和稳定网络 满足数据库、消息队列等场景的需求。正确使用时需注意存储配置、更新策略和备份方案。

1. StatefulSet 的核心特性

(1) 稳定的 Pod 标识

  • 每个 Pod 的名称是 唯一且有序 的,格式为 <statefulset-name>-<ordinal-index>(如 mysql-0mysql-1)。
  • Pod 重启后名称不变,且会绑定到相同的持久化存储。
    在这里插入图片描述
    在这里插入图片描述
    每个pod名称都是唯一的

(2) 有序部署与扩展

  • 顺序性:Pod 按索引顺序创建(从 0N-1)、删除(从 N-10)。
    • 例如,扩容时先创建 mysql-1,再创建 mysql-2;缩容时先删除 mysql-2,再删除 mysql-1
  • 适用场景:主从架构的数据库(如 MySQL 主库需先于从库启动)。

(3) 持久化存储

  • 通过 PersistentVolume (PV)PersistentVolumeClaim (PVC) 为每个 Pod 提供独立的存储。
    • 删除 Pod 后,关联的 PVC 和 PV 不会被删除,数据得以保留。
    • 重新调度时,Pod 会绑定到原来的 PVC。

(4) 稳定的网络标识

  • 每个 Pod 拥有稳定的 DNS 名称:
    • Pod 专属域名<pod-name>.<headless-service-name>.<namespace>.svc.cluster.local
    • 例如:mysql-0.mysql.default.svc.cluster.local
  • 通过 Headless Service(无头服务)暴露 Pod,直接解析到 Pod IP。

2. StatefulSet 的典型应用场景

  • 数据库集群:MySQL、PostgreSQL、MongoDB 等。
  • 分布式存储系统:Etcd、ZooKeeper、Redis Cluster。
  • 消息队列:Kafka、RabbitMQ(需持久化存储和固定节点标识)。

3. StatefulSet 的工作流程

  1. 创建 Headless Service
    定义一个无 ClusterIP 的 Service,用于 Pod 的网络标识。

    apiVersion: v1
    kind: Service
    metadata:name: mysql
    spec:clusterIP: None  # Headless Serviceselector:app: mysqlports:- port: 3306
    
  2. 定义 StatefulSet
    指定副本数、存储模板(volumeClaimTemplates)和 Pod 模板。

    apiVersion: apps/v1
    kind: StatefulSet
    metadata:name: mysql
    spec:serviceName: mysql  # 关联 Headless Servicereplicas: 3selector:matchLabels:app: mysqltemplate:metadata:labels:app: mysqlspec:containers:- name: mysqlimage: mysql:5.7volumeMounts:- name: datamountPath: /var/lib/mysqlvolumeClaimTemplates:  # 每个 Pod 独立的 PVC- metadata:name: dataspec:accessModes: [ "ReadWriteOnce" ]resources:requests:storage: 10Gi
    
  3. Pod 与存储的绑定

    • StatefulSet 会自动为每个 Pod 创建 PVC,名称格式为 <volumeClaimTemplate-name>-<pod-name>(如 data-mysql-0)。
    • Pod 重启或重新调度时,会绑定到相同的 PVC。

4. StatefulSet 的关键操作

(1) 扩容与缩容

  • 扩容:增加 replicas 字段,新 Pod 按顺序创建。
    kubectl scale statefulset mysql --replicas=5
    
  • 缩容:减少 replicas,Pod 按逆序终止。
    kubectl scale statefulset mysql --replicas=2
    

(2) 更新策略

  • 滚动更新(RollingUpdate):默认策略,按顺序更新 Pod(从高序号到低序号)。
    spec:updateStrategy:type: RollingUpdate
    
  • 删除重建(OnDelete):手动删除 Pod 后触发更新。
    spec:updateStrategy:type: OnDelete
    

(3) 删除 StatefulSet

  • 默认会删除 Pod 但保留 PVC(需手动清理 PVC):
    kubectl delete statefulset mysql
    kubectl delete pvc -l app=mysql  # 清理关联的 PVC
    

5. StatefulSet 的注意事项

  1. 存储依赖:必须提前配置 StorageClass 或手动创建 PV。
  2. 网络依赖:需搭配 Headless Service 实现稳定的 DNS。
  3. 性能开销:有序性可能导致部署/扩展速度较慢。
  4. 数据备份:需额外工具(如 Velero)备份 PVC 数据。

6.案列

apiVersion: v1
kind: Service
metadata:name: nginxlabels:app: nginx
spec:ports:- port: 80name: webclusterIP: Noneselector:app: nginx---apiVersion: apps/v1
kind: StatefulSet
metadata:name: nginx-statefulsetnamespace: default
spec:serviceName: nginxreplicas: 3selector:matchLabels:app: nginxtemplate:metadata:labels:app: nginxspec:containers:- name: nginximage: nginx:1.27.5ports:- containerPort: 80

7. 对比 StatefulSet 与 Deployment

特性StatefulSetDeployment
Pod 名称唯一有序(如 web-0随机哈希(如 web-5x6d7
存储每个 Pod 独立 PVC共享或无持久化存储
网络标识稳定的 DNS通过 Service 负载均衡
部署顺序顺序创建/删除并行创建
适用场景数据库、有状态服务无状态应用(如 Web)
http://www.dtcms.com/a/413063.html

相关文章:

  • 网站建设销售培训网站建设 超薄网络
  • 网站上怎么做动画广告视频玉环建设规划局网站
  • 校园二手市场网站建设最专业的房地产网站建设
  • 网站制作内联框unity 做网站
  • 建立网站顺序网站建设公司宣传语
  • 35互联网站建设甘肃省住房和城乡建设厅注册中心网站
  • 徐州哪家做网站好gif表情包制作网站
  • 标志空间网站做网站赚钱一般做什么
  • php网站开发要学什么软件呼叫中心系统平台
  • 网页设计作业动漫网页英文外链seo兼职
  • 网站建设方案书 备案wordpress+php要求
  • 【Nginx开荒攻略】Nginx静态文件服务:从MIME类型到缓存优化的完整指南
  • 上传的网站怎么打开洛可可设计公司怎么样
  • 秦皇岛城乡住房建设厅网站申请域名免费
  • 教育兼职网站开发青岛北京网站建设价格
  • 从机械齿轮到硅基大脑:计算机起源探秘(2)
  • 个人网站设计模板素材企业网络构建
  • 团购网站怎么推广专业网站建设课程
  • wordpress本站导航在哪里做cpa网站
  • 做会展网站的关键词前端面试题2022
  • 长治公司网站建设网站建设公司知名
  • 成都建设局网站手机上如何制作小程序
  • 平台网站很难做建筑人才招聘网站平台
  • 济南网站建设找聚搜网络软件推广公司
  • 千博网站后台seo推广如何做
  • 景观设计案例网站做高端品牌网站
  • 班级网站制作建设的设计和作用wordpress仿站开发
  • 网站建设者属于广告经营者吗网站反链
  • 网页制作与网站设计思路做爰明星视频网站
  • 鄂州网站开发网页制作登录界面代码