zoukankan      html  css  js  c++  java
  • Controller之statefulset

    @很多朋友反馈,博文排版不易读,从这篇文章开始慢慢学习一下markdown语法吧,啊哈哈。
    

    1、前面说过了deployment,它是一种无状态的控制器类型,接下来聊聊有状态的控制器类型statefulset,在聊之前,先了解下无状态和有状态的概念。

    (1)无状态特点:
          *一个deployment起的多pod是一模一样的,没有本地的持久化存储,共享相同的网络存储持久化数据。
          *多个pod启动时没有先后顺序。
          *不用考虑pod在那个node上运行。
          *可随意的伸缩。
    (2)有状态特点:
          *无状态的特点,有状态的都需要考虑。
          *每个pod都是独立的,特定的启动顺序和唯一性
          *唯一的网络标识符和持久存储
          *启动有序,例如mysql主从,先启动主在启动从。
    

    2、有状态控制器的特点

    -无头service, 意思是yaml文件里的clusterIP:none 这个值为空
    -kind类型不同
    -每个pod都有唯一的域名标识和有序的主机名
    

    3、示例通过statefulset部署一个有状态的应用。

    $vim statefulset.yaml
    apiVersion: v1
    kind: Service
    metadata:
      name: nginx
      labels:
        app: nginx
    spec:
      ports:
      - port: 80
        name: web
        clusterIP: None
      selector:
        app: nginx
    
    ---
    
    apiVersion: apps/v1beta1
    kind: StatefulSet
    metadata:
      name: nginx-statefulset
      namespace: default
    spec:
      serviceName: nginx
      replicas: 3
      selector:
        matchLabels:
          app: nginx
      template:
        metadata:
          labels:
            app: nginx
        spec:
          containers:
          - name: nginx
            image: nginx:latest
            ports:
            - containerPort: 80
    
    这里看到创建以后,svc的cluster-ip是none,配置文件里定义的pod是3个,现在只能看见一个。
    

    这里看见完整运行后,三个pod都正常running了,说明pod启动时有先后顺序的,有0-1-2这样的标识
    

    statefulset和deployment的区别:statefulset的pod都有唯一的域名标识,域名生成规则如下:
          主机名.services名称.名称空间.svc.cluster.local 
    示例:nginx-statefulset-0 这个pod的域名如下:
          nginx-statefulset-0.nginx.default.svc.cluster.local
    

    kubenetes官网:https://kubernetes.io/zh/docs/concepts/workloads/controllers/statefulset/
    kubenetes社区:https://www.kubernetes.org.cn/statefulset

  • 相关阅读:
    2019/2/3从字符串中删除指定的字符
    2019/2/3求组合数
    2019/2/3统计各成绩段的学生人数
    2019/2/3摄氏一华氏温度转换表
    2019/1/29有选择的复制字符串
    2019/1/28数字的移动
    2019/1/2810个整数的数据处理
    2019/1/27从三个数中找出最大的数(函数和宏)
    2019/1/23编写函数统计字符串中字母、数字、空格和其它字符的个数
    Jenkins 执行python脚本
  • 原文地址:https://www.cnblogs.com/you-xiaoqing/p/14378461.html
Copyright © 2011-2022 走看看