首页 > 其他分享 >【Azure K8S | AKS】在AKS中创建 StatefulSet 示例

【Azure K8S | AKS】在AKS中创建 StatefulSet 示例

时间:2023-08-08 20:13:56浏览次数:44  
标签:kubectl nmt StatefulSet name 示例 AKS nginx pvcweb

问题描述

  1. 【Azure K8S | AKS】在AKS集群中创建 PVC(PersistentVolumeClaim)和 PV(PersistentVolume) 示例
  2. 【Azure K8S|AKS】进入AKS的POD中查看文件,例如PVC Volume Mounts使用情况
  3. 【Azure K8S | AKS】在不丢失文件/不影响POD运行的情况下增加PVC的大小

基于前三篇博文中使用的PV, PVC,Disk来创建StatefulSet应用。并查看其多个POD中所Mount文件夹是否共享?

问题解答

首先,在Kubernetes的官网中找到了 stateful set应用的yaml文件(https://kubernetes.io/docs/concepts/workloads/controllers/statefulset/)。

因为示例中的VolumClaimTemplates设定会为StatefulSet的应用的每一个Replicas(POD)自动生成PVC, PV。

如果要使用已创建好的PV, PVC则需要修改Yaml文件( mystatefulset.yaml )为以下内容:

apiVersion: v1
kind: Service
metadata:
  name: nginx1
  labels:
    app: nginx1
spec:
  ports:
  - port: 80
    name: pvcweb
  clusterIP: None
  selector:
    app: nginx1
---
apiVersion: apps/v1
kind: StatefulSet
metadata:
  name: pvcweb
spec:
  selector:
    matchLabels:
      app: nginx1 # 必须匹配 .spec.template.metadata.labels
  serviceName: "nginx1"
  replicas: 3 # 默认值是 1
  minReadySeconds: 10 # 默认值是 0
  template:
    metadata:
      labels:
        app: nginx1 # 必须匹配 .spec.selector.matchLabels
    spec:
      terminationGracePeriodSeconds: 10
      containers:
      - name: nginx1
        image: mcr.microsoft.com/oss/nginx/nginx:1.15.5-alpine
        ports:
        - containerPort: 80
          name: pvcweb
        volumeMounts:
        - name: testpvc
          mountPath: /nmt/nginx
      volumes:
        - name: testpvc
          persistentVolumeClaim:
            claimName: test-pvc-001

使用 kubectl apply -f mystatefulset.yaml 部署道AKS后,查看 statefulset 和pod 状态

如图所示, 名为 pvcweb 的 statefulset应用有3个Pod, pvcweb-0,pvcweb-1,pvcweb-2。

接下来,通过 kubectl exec -it 进入3个Pod中创建文件,并验证在其他Pod是否能共享。

kubectl exec  -it pvcweb-0  --  /bin/sh

cd /nmt/nginx
echo "this is pvcweb-0 file" > file0.txt


kubectl exec  -it pvcweb-1  --  /bin/sh

cd /nmt/nginx
echo "this is pvcweb-1 file" > file1.txt


kubectl exec  -it pvcweb-2  --  /bin/sh

cd /nmt/nginx
echo "this is pvcweb-2 file" > file2.txt


kubectl exec  -it pvcweb-0  -- df -h /nmt/nginx
kubectl exec  -it pvcweb-1  -- df -h /nmt/nginx
kubectl exec  -it pvcweb-2  -- df -h /nmt/nginx

根据实验证明,StatefulSet下的所有POD都共享所设置的PVC中文件。

 

参考资料

StatefulSets:https://kubernetes.io/docs/concepts/workloads/controllers/statefulset/

 

标签:kubectl,nmt,StatefulSet,name,示例,AKS,nginx,pvcweb
From: https://www.cnblogs.com/lulight/p/17615247.html

相关文章

  • 基于智慧路灯杆的智慧交通应用示例
    智慧路灯杆的身影已经越来越频繁出现在我们的生活之中,无论是我们开车在路上,还是行走在商业街,造型美轮美奂,功能丰富多样的智慧路灯杆,也已经成为了一道独特靓丽的街景。智慧路灯杆如何发挥其智慧功能?对我们的生活有什么提升?今天我们就结合智慧交通场景,介绍智慧路灯杆在智慧交通方面......
  • Bootstrap框架----新建示例--各种input
    我们在之前的文章中已经在SpringMVC基础框架的基础上应用了BootStrap的后台框架,在此基础上记录新建示例。应用bootstrap模板基础项目源码下载地址为:SpringMVC+Shiro+MongoDB+BootStrap基础框架我们在基础项目中已经做好了首页index的访问。现在就在index.jsp页面和index的路由Con......
  • 【Azure K8S | AKS】在不丢失文件/不影响POD运行的情况下增加PVC的大小
    问题描述在前两篇文章中,创建了Disk+PV+PVC+POD方案后,并且进入POD中增加文件。【AzureK8S|AKS】在AKS集群中创建PVC(PersistentVolumeClaim)和PV(PersistentVolume)示例【AzureK8S|AKS】进入AKS的POD中查看文件,例如PVCVolumeMounts使用情况但是,当预定的文件夹已经被......
  • 【Azure K8S | AKS】在不丢失文件/不影响POD运行的情况下增加PVC的大小
    问题描述在前两篇文章中,创建了Disk+PV+PVC+POD方案后,并且进入POD中增加文件。【AzureK8S|AKS】在AKS集群中创建PVC(PersistentVolumeClaim)和PV(PersistentVolume)示例【AzureK8S|AKS】进入AKS的POD中查看文件,例如PVCVolumeMounts使用情况但是,当预定的文件......
  • 【Python】PySpark 数据计算 ② ( RDD#flatMap 方法 | RDD#flatMap 语法 | 代码示例 )
    文章目录一、RDD#flatMap方法1、RDD#flatMap方法引入2、解除嵌套3、RDD#flatMap语法说明二、代码示例-RDD#flatMap方法一、RDD#flatMap方法1、RDD#flatMap方法引入RDD#map方法可以将RDD中的数据元素逐个进行处理,处理的逻辑需要用外部通过参数传入map函数......
  • k8s 学习笔记之 Pod 控制器——StatefulSet
    StatefulSetStatefulSet是用来管理有状态应用的工作负载API对象。StatefulSet用来管理某Pod集合的部署和扩缩,并为这些Pod提供持久存储和持久标识符。和Deployment类似,StatefulSet管理基于相同容器规约的一组Pod。但和Deployment不同的是,StatefulSet为它们的每个......
  • container/ring 使用示例
    packagemainimport("container/ring""fmt")varsizeint=10funcmain(){myRing:=ring.New(size)fmt.Println("Emptyring:",*myRing)fori:=0;i<myRing.Len()-1;i++{myRing.Value......
  • 参考示例之“复制对象|拷贝对象|BeanUtils工具类学习”
    //设置需要拷贝的字段Set<String>targetSet=newHashSet<>();targetSet.addAll(Arrays.asList("totalRefund","actualAdvertisingCost","expensesOfTaxation"));//调用拷贝方法copyProperties(com......
  • 【Azure K8S|AKS】进入AKS的POD中查看文件,例如PVC Volume Mounts使用情况
    问题描述在昨天的文章中,创建了Disk+PV+PVC+POD方案(https://www.cnblogs.com/lulight/p/17604441.html),那么如何进入到POD之中去查看文件呢?如PVCVolumeMounts中文件? 问题解答第一步:进入POD内部(查看文件)使用  kubectlexec-it <yourpodname>--/bin/sh ......
  • 使用Locust进行接口性能测试:安装、命令参数解析与示例解读(一)
    “Locust是一款开源的Python性能测试工具,它可以模拟大量并发用户对网站或者其他接口进行压力测试”一、Locust简介与安装1.使用pip安装Locust:pip3installlocust2.通过GitHub克隆项目并安装(推荐Python3):gitclonehttps://github.com/locustio/locustcdlocustpython......