欢迎来到站长天空!

其它服务器

当前位置: 主页 > 服务器 > 其它服务器

K8S之StatefulSet有状态服务详解

时间:2025-12-22 15:30:03|栏目:其它服务器|点击:

目录
  • 一、概念
  • 二、实例

一、概念

1.1.无状态和有状态的区别

主要从网络和存储来对比

无状态不考虑存储和网络,可以任意漂移,每个副本是一样的,如Nginx

有状态应用需要考虑存储和网络,每个副本是不对等的,具有唯一的ID,如etcd、mysql

1.2.StatefulSet的特点

专为部署有状态服务而生

解决Pod独立生命周期,保持Pod启动顺序和唯一性

应用场景:分布式应用、数据库集群

稳定,唯一的网络标识符,持久存储
有序,优雅的部署和扩展、删除、终止
有序,滚动更新

1.3.Headless Service

也是一种Service,但不需要Cluster IP,需要设置clusterIP: None

1.4.serviceName

告诉StatefulSet要使用serviceName指定的headless service来保证Pod的身份

1.5.稳定的存储

存储卷使用volumeClaimTemplates创建,称为卷申请模板;当创建一个PV时,同样会为每个Pod分配并且创建一个编号PVC

二、实例

拿Nginx测试,主要演示yaml的写法,实际应用中需用有状态服务

2.1.statefulset.yaml

apiVersion: apps/v1
kind: StatefulSet
metadata:
  labels:
    app: web
  name: web
spec:
  replicas: 3
  selector:
    matchLabels:
      app: web
  serviceName: "headless-web"
  template:
    metadata:
      labels:
        app: web
    spec:
      containers:
      - image: nginx
        imagePullPolicy: IfNotPresent
        name: web
        ports:
        - containerPort: 8080
        volumeMounts:
          - name: www
            mountPath: /usr/share/nginx/html
  volumeClaimTemplates:
  - metadata:
      name: www
    spec:
      storageClassName: "managed-nfs-storage"
      accessModes: [ "ReadWriteOnce" ]
      resources:
        requests:
          storage: 1Gi

设置了3个副本,从0开始标号,创建3个副本

K8S之StatefulSet有状态服务详解

自动创建PV和PVC

K8S之StatefulSet有状态服务详解

K8S之StatefulSet有状态服务详解

2.2.headless-svc.yaml

apiVersion: v1
kind: Service
metadata:
  name: headless-web
spec:
  clusterIP: None
  ports:
  - port: 80
    protocol: TCP
  selector:
    app: web

CLUSTER-IP为None

K8S之StatefulSet有状态服务详解

启动一个busybox的Pod

kubectl run test -it --rm --image=busybox -- sh
nslookup headless-web

域名解析结果

K8S之StatefulSet有状态服务详解

在容器里可以通过.访问

curl web-0.headless-web

K8S之StatefulSet有状态服务详解

参考视频:https://ke.qq.com/user/index/index.html#/plan/cid=1709963&term_id=102815140

上一篇:Docker容器搭建android编译环境的实践记录

栏    目:其它服务器

下一篇:Nginx配置使用详解

本文标题:K8S之StatefulSet有状态服务详解

本文地址:https://zz.feitang.co/server/32700.html

广告投放 | 联系我们 | 版权申明

申明:本站所有的文章、图片、评论等,均由网友发表或上传并维护或收集自网络,属个人行为,与本站立场无关。

如果侵犯了您的权利,请与我们联系,我们将在24小时内进行处理、任何非本站因素导致的法律后果,本站均不负任何责任。

联系QQ:257218569 | 邮箱:257218569@qq.com

Copyright © 2018-2025 站长天空 版权所有 Powered by EyouCms冀ICP备14023439号