ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

kubernetes——部署有状态的多副本应用

2021-10-26 19:01:42  阅读:164  来源: 互联网

标签:状态 副本 name kubernetes kubectl 部署 pod spec metadata


有状态应用要求管理者配置文件中列出所有其它的集群成员和他们的ip地址。

StatefulSet

有状态的应用中每一个实例都是不可替代的个体,都拥有稳定的名字和状态

如果使用StatefulSet,当有一个pod挂掉后,这个实例需要在别的节点上重建,但是新的实例必须与被替换的实例拥有相同的名称、网络标识和状态。

因为有状态的服务会根据先前的访问做一些不同的处理,所以,我们要将所有的有状态的pod做headless service。当调用时,会返回每个pod的ip。

创建StatefulSet控制器管理的pod

我们首先创建数据卷

apiVersion: v1
kind: PersistentVolume
metadata:
  name: pv-a
spec:
  capacity:
    storage: 2Mi
  volumeMode: Filesystem
  accessModes:
    - ReadWriteOnce
  persistentVolumeReclaimPolicy: Delete
  storageClassName: standard
  hostPath:
    path: /tmp
apiVersion: v1
kind: PersistentVolume
metadata:
  name: pv-b
spec:
  capacity:
    storage: 2Mi
  volumeMode: Filesystem
  accessModes:
    - ReadWriteOnce
  persistentVolumeReclaimPolicy: Delete
  storageClassName: standard
  hostPath:
    path: /tmp

创建两个数据卷之后,再创建SatefulSet管理的pod

apiVersion: apps/v1
kind: StatefulSet
metadata:
  name: first-state
spec:
  selector:
    matchLabels:
      app: myapp
  serviceName: first-state
  replicas: 2
  template:
    metadata:
      labels:
        app: myapp
    spec:
      containers:
      - name: myapp
        image: luksa/kubia-pet
        ports:
        - containerPort: 8080
          name: web
        volumeMounts:
        - name: data
          mountPath: /var/data
          readOnly: false
  volumeClaimTemplates:
  - metadata:
      name: data
    spec:
      accessModes: [ "ReadWriteOnce" ]
      resources:
        requests:
          storage: 2Mi

创建pod

kubectl create -f statetest.yaml

查看状态

#查看数据卷的状态
kubectl get pv

在这里插入图片描述

#查看数据卷声明的状态
kubectl get pvc

在这里插入图片描述
如果此时删除一个pod

kubectl delete po first-state-0

在这里插入图片描述
你会发现,会自动新创建一个pod,新创建的pod和之前删除的pod名称相同。

标签:状态,副本,name,kubernetes,kubectl,部署,pod,spec,metadata
来源: https://blog.csdn.net/Xiang_lhh/article/details/120977906

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有