问题描述

  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/

【Azure K8S | AKS】在AKS中创建 StatefulSet 示例的更多相关文章

  1. 【Kubernetes】在K8s中创建StatefulSet

    在K8s中创建StatefulSet 遇到的问题: 使用Deployment创建的Pod是无状态的,当挂在Volume之后,如果该Pod挂了,Replication Controller会再run一个 ...

  2. 在K8s中创建StatefulSet

    在K8s中创建StatefulSet 遇到的问题: 使用Deployment创建的Pod是无状态的,当挂在Volume之后,如果该Pod挂了,Replication Controller会再run一个 ...

  3. Oracle中创建触发器示例及注意事项

    1.oracle 中创建触发器示例 CREATE TABLE "CONCEPT"."FREQUENCYMODIFYLOG" ( "FREQUENCYI ...

  4. MySQL中创建存储过程示例

    在这个示例中需要用到一张名为test_table的表,我们使用show create table test_table查看表的创建过程: CREATE TABLE `test_table` ( `id ...

  5. 如何使用 Packer 在 Azure 中创建 Windows 虚拟机映像

    Azure 中的每个虚拟机 (VM) 都是基于定义 Windows 分发和操作系统版本的映像创建的. 映像可以包括预安装的应用程序和配置. Azure 应用商店为最常见的操作系统和应用程序环境提供了许 ...

  6. 在 Azure 中创建通用 VM 的托管映像

    可以从在存储帐户中存储为托管磁盘或非托管磁盘的通用 VM 中创建托管映像资源. 然后可以使用该映像创建多个 VM. 使用 Sysprep 通用化 Windows VM Sysprep 将删除所有个人帐 ...

  7. 如何在 Azure 中创建 ASP.NET Web 应用

    Azure Web 应用提供高度可缩放.自修补的 Web 托管服务. 本快速入门演示如何将第一个 ASP.NET Web 应用部署到 Azure Web 应用中. 完成后,便拥有了一个资源组,该资源组 ...

  8. 在 Azure Web 应用中创建 .NET 应用程序

    本快速入门帮助你在数分钟内将你的第一个 ASP.NET Web 应用部署到 Azure 应用服务.完成本教程后,你将能够在云中启动并运行一个简单的 Web 应用.在本教程中完成的所有操作均符合1 元试 ...

  9. 上传通用化 VHD 并使用它在 Azure 中创建新 VM

    本主题逐步讲解如何使用 PowerShell 将通用化 VM 的 VHD 上传到 Azure.从该 VHD 创建映像,然后从该映像创建新 VM. 可以上传从本地虚拟化工具或其他云导出的 VHD. 对新 ...

  10. 排查在 Azure 中创建、重启 Windows VM 或调整其大小时发生的分配失败

    创建 VM.重新启动已停止(解除分配)的 VM 和重设 VM 大小时,Azure 会为订阅分配计算资源. 执行这些操作时,即使尚未达到 Azure 订阅限制,也可能偶尔收到错误. 本文说明一些常见分配 ...

随机推荐

  1. 银河麒麟安装nmon以及rpc.rstatd的方法

    背景说明 随着公司业务的发展,需要在ARM环境上面进行性能测试. 为了进行ARM环境的验证,需要一些组件进行资料收集. 比较好的方式是使用nmon或者是rstatd进行性能参数收集. 为了方便部署,想 ...

  2. 全套解决方案:中文NLP训练框架,支持大模型训练和文本生成,快速上手,海量训练数据!

    全套解决方案:基于pytorch.transformers的中文NLP训练框架,支持大模型训练和文本生成,快速上手,海量训练数据! 1.简介 目标:基于pytorch.transformers做中文领 ...

  3. PaddleNLP基于ERNIR3.0文本分类以CAIL2018-SMALL数据集罪名预测任务为例【多标签】

    相关项目链接: Paddlenlp之UIE模型实战实体抽取任务[打车数据.快递单] Paddlenlp之UIE分类模型[以情感倾向分析新闻分类为例]含智能标注方案) 应用实践:分类模型大集成者[Pad ...

  4. Android 开机流程介绍

    目录 一.目的 二.环境 三.相关概念 3.1 Android平台架构 3.2 Android启动架构 3.3 zImage 3.4 RAMDISK 3.5 RC文件 四.详细设计 4.1 Boot ...

  5. 使用DoraCloud免费版搭建办公桌面云

    DoraCloud是一款多平台的桌面虚拟化管理软件,支持Hyper-V.VMware.Proxmox.XenServer等多种虚拟化平台.DoraCloud在虚拟化平台上具有极大的灵活性,允许您的组织 ...

  6. 目录:CH57x/CH58x/CH59x/CH32V208低功耗蓝牙应用

    外设相关: CH59x 系统16位PWM使用 - 小舟从此逝_1 - 博客园 (cnblogs.com) CH59X/CH58X/CH57X PWM使用 - 小舟从此逝_1 - 博客园 (cnblog ...

  7. Oracle查询存在外键约束但未创建对应索引的情况

    1.Oracle提供的脚本 2.网络搜索到的脚本 3.改为可以指定用户的脚本 4.测试脚本使用 1.Oracle提供的脚本 如果要求管控严格,可以考虑使用Oracle官方提供的脚本. Script t ...

  8. Spring boot 的定时任务。

    @Scheduled(fixedRate=2000):上一次开始执行时间点后2秒再次执行: @Scheduled(fixedDelay=2000):上一次执行完毕时间点后2秒再次执行: @Schedu ...

  9. [Kafka]Kafka学习 -- 初识Kafka

    Kafka学习 -- 初识Kafka 参考资料:稀土掘金<图解Kafka之实战指南>https://juejin.cn/book/6844733793220165639 Kafka是一个多 ...

  10. NC15065 小牛vs小客

    题目链接 题目 题目描述 小牛和小客玩石子游戏,他们用n个石子围成一圈,小牛和小客分别从其中取石子,谁先取完谁胜,每次可以从一圈中取一个或者相邻两个,每次都是小牛先取,请输出胜利者的名字(小牛获胜输出 ...