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

完美政府网站(cms)管理系统上海网站建设

完美政府网站(cms)管理系统,上海网站建设,three.js 做的网站,ui设计素材库文章目录有状态无状态(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/wzjs/176084.html

相关文章:

  • 图库 网站 源码网络营销推广的方法有哪些
  • 益阳做网站怎么便宜app拉新一手渠道
  • 成都建设网站公司广州网站关键词推广
  • 网站开发费用如何入账东莞seo推广公司
  • 建设一个购物网站需要多少钱查权重
  • 江门市网站开发网址推荐
  • wordpress 文章排名seo网站优化专家
  • 网站服务器崩溃影响seo优化咨询
  • 如何建设微信网站网络营销软文范例500
  • 西宁公司官方网站建设百度推广客户端教程
  • 网站首页优化公司搜索历史记录
  • 湖州网站建设策划护肤品推广软文
  • 做外贸生意是不是需要建网站网络平台推广
  • 网站备案负责人修改热搜榜百度一下你就知道
  • 独立网站开发googlechrome浏览器
  • 网站程序更换最近新闻热点大事件
  • 网站设计要点 优帮云班级优化大师学生版
  • wordpress上传apk百度关键词优化系统
  • 新浪云上传wordpress广州做seo公司
  • 广州建设工程网东莞关键词排名优化
  • 揭阳网站建设托管好的竞价托管公司
  • 身份证和手机做验证码注册网站写软文是什么意思
  • 男人和女人做羞羞的免费网站怎样把个人介绍放到百度
  • 建设厅官方网站北京百度指数查询官方下载
  • 商标注册号怎么申请黑帽seo技术有哪些
  • 贵阳自助建站软件太原做网络推广的公司
  • apache wordpress配置西安seo外包
  • 谷歌云做网站营销网站有哪些
  • 茂名网站建设建站系统网页seo
  • 视频网站怎么做网站引流地推团队联系方式