k8s - statefulset+daemonset

statefulset

statefulset 为管理有状态服务而设计的

有状态: 服务名称不能变化,每个pod要有单独的存储,多用于数据库使用。

无状态:管理的Pod的IP、名字,启停顺序等都是随机的。个体对整体无影响,所有pod都是共用一个数据卷的

statefulset 由以下几个部分组成:

1 Headless Service: 用来定义Pod网络标识,生成可解析的DNS记录,被DNS解析后返回所有绑定的pod的IP,普通service 解析返回的是ClusterIP,pod名称是pod唯一性的标识符,必须持久稳定有效

2 volumeClaimTemplates: 存储申请模板,创建pvc,指定pvc名称大小,自动创建pvc,且pvc由存储类供应

3 statefulset 管理pod的

资源清单示例:

apiVersion: apps/v1
kind: StatefulSet
metadata:
  name: state-test
spec:
  replicas: 3
  selector:
    matchLabels:
      app: state
  serviceName: my-state
  template:
    metadata:
      name: state
      labels:
        app: state
    spec:
      containers:
      - name: state-cont
        image: nginx
        volumeMounts:
        - name: vol-test
          mountPath: /tmpdir
  # 通过卷模板创建pvc,可以达到每个pod一个独立的存储卷的效果
  volumeClaimTemplates:
  - metadata:
      name: vol-test
    spec:
      accessModes:
      - "ReadWriteOnce"
      storageClassName: nfs
      resources:
        requests:
          storage: 1Gi

使用 kubectl explain statefulset.spec.template.spec.volumes挂载只能挂载已经创建好的pvc

通过使用 volumeClaimTemplates 完成动态创建pvc

 通过statefulset创建出来的pod是有序的从0开始有序排列,扩容从小到大增长,缩容从大到小减少

扩容直接使用edit编辑statefulst即可或修改yaml文件副本数后apply更新

 

有头service 解析的是service对应的IP,无头service解析结果是后端所有pod的ip

 daemonset

daemonset可以确保k8s中每个节点都运行一个相同的pod,当节点数量变化时,pod也会随着节点的数量怎加减少。

daemonset 的控制器会监听 kuberntes 的 daemonset 对象、pod 对象、node 对象,这
些被监听的对象之变动,就会触发 syncLoop 循环让 kubernetes 集群朝着 daemonset 对象
描述的状态进行演进。

在集群的每个节点上运行存储,比如:glusterd 或 ceph。
在每个节点上运行日志收集组件,比如:flunentd 、 logstash、filebeat 等。
在每个节点上运行监控组件,比如:Prometheus、 Node Exporter 、collectd 等。

资源清单示例:

通过 kubectl explain 资源名称查看帮助

apiVersion: apps/v1
kind: DaemonSet
metadata:
  name: daem-test
  labels:
    app1: daem
spec:
  selector:
    matchLabels:
      app1: daem
  template:
    metadata:
      name: daem-pod
      labels:
        app1: daem
    spec:
      containers:
      - name: daem-pod-nginx
        image: nginx
      # 容忍污点,调度也受污点的影响
      tolerations:
      - effect: NoSchedule
        operator: Exists

 deamonset也支持滚动更新,先删除后创建。

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值