【Azure K8S | AKS】在AKS中创建 StatefulSet 示例
问题描述
- 【Azure K8S | AKS】在AKS集群中创建 PVC(PersistentVolumeClaim)和 PV(PersistentVolume) 示例
- 【Azure K8S|AKS】进入AKS的POD中查看文件,例如PVC Volume Mounts使用情况
- 【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 示例的更多相关文章
- 【Kubernetes】在K8s中创建StatefulSet
在K8s中创建StatefulSet 遇到的问题: 使用Deployment创建的Pod是无状态的,当挂在Volume之后,如果该Pod挂了,Replication Controller会再run一个 ...
- 在K8s中创建StatefulSet
在K8s中创建StatefulSet 遇到的问题: 使用Deployment创建的Pod是无状态的,当挂在Volume之后,如果该Pod挂了,Replication Controller会再run一个 ...
- Oracle中创建触发器示例及注意事项
1.oracle 中创建触发器示例 CREATE TABLE "CONCEPT"."FREQUENCYMODIFYLOG" ( "FREQUENCYI ...
- MySQL中创建存储过程示例
在这个示例中需要用到一张名为test_table的表,我们使用show create table test_table查看表的创建过程: CREATE TABLE `test_table` ( `id ...
- 如何使用 Packer 在 Azure 中创建 Windows 虚拟机映像
Azure 中的每个虚拟机 (VM) 都是基于定义 Windows 分发和操作系统版本的映像创建的. 映像可以包括预安装的应用程序和配置. Azure 应用商店为最常见的操作系统和应用程序环境提供了许 ...
- 在 Azure 中创建通用 VM 的托管映像
可以从在存储帐户中存储为托管磁盘或非托管磁盘的通用 VM 中创建托管映像资源. 然后可以使用该映像创建多个 VM. 使用 Sysprep 通用化 Windows VM Sysprep 将删除所有个人帐 ...
- 如何在 Azure 中创建 ASP.NET Web 应用
Azure Web 应用提供高度可缩放.自修补的 Web 托管服务. 本快速入门演示如何将第一个 ASP.NET Web 应用部署到 Azure Web 应用中. 完成后,便拥有了一个资源组,该资源组 ...
- 在 Azure Web 应用中创建 .NET 应用程序
本快速入门帮助你在数分钟内将你的第一个 ASP.NET Web 应用部署到 Azure 应用服务.完成本教程后,你将能够在云中启动并运行一个简单的 Web 应用.在本教程中完成的所有操作均符合1 元试 ...
- 上传通用化 VHD 并使用它在 Azure 中创建新 VM
本主题逐步讲解如何使用 PowerShell 将通用化 VM 的 VHD 上传到 Azure.从该 VHD 创建映像,然后从该映像创建新 VM. 可以上传从本地虚拟化工具或其他云导出的 VHD. 对新 ...
- 排查在 Azure 中创建、重启 Windows VM 或调整其大小时发生的分配失败
创建 VM.重新启动已停止(解除分配)的 VM 和重设 VM 大小时,Azure 会为订阅分配计算资源. 执行这些操作时,即使尚未达到 Azure 订阅限制,也可能偶尔收到错误. 本文说明一些常见分配 ...
随机推荐
- 银河麒麟安装nmon以及rpc.rstatd的方法
背景说明 随着公司业务的发展,需要在ARM环境上面进行性能测试. 为了进行ARM环境的验证,需要一些组件进行资料收集. 比较好的方式是使用nmon或者是rstatd进行性能参数收集. 为了方便部署,想 ...
- 全套解决方案:中文NLP训练框架,支持大模型训练和文本生成,快速上手,海量训练数据!
全套解决方案:基于pytorch.transformers的中文NLP训练框架,支持大模型训练和文本生成,快速上手,海量训练数据! 1.简介 目标:基于pytorch.transformers做中文领 ...
- PaddleNLP基于ERNIR3.0文本分类以CAIL2018-SMALL数据集罪名预测任务为例【多标签】
相关项目链接: Paddlenlp之UIE模型实战实体抽取任务[打车数据.快递单] Paddlenlp之UIE分类模型[以情感倾向分析新闻分类为例]含智能标注方案) 应用实践:分类模型大集成者[Pad ...
- Android 开机流程介绍
目录 一.目的 二.环境 三.相关概念 3.1 Android平台架构 3.2 Android启动架构 3.3 zImage 3.4 RAMDISK 3.5 RC文件 四.详细设计 4.1 Boot ...
- 使用DoraCloud免费版搭建办公桌面云
DoraCloud是一款多平台的桌面虚拟化管理软件,支持Hyper-V.VMware.Proxmox.XenServer等多种虚拟化平台.DoraCloud在虚拟化平台上具有极大的灵活性,允许您的组织 ...
- 目录:CH57x/CH58x/CH59x/CH32V208低功耗蓝牙应用
外设相关: CH59x 系统16位PWM使用 - 小舟从此逝_1 - 博客园 (cnblogs.com) CH59X/CH58X/CH57X PWM使用 - 小舟从此逝_1 - 博客园 (cnblog ...
- Oracle查询存在外键约束但未创建对应索引的情况
1.Oracle提供的脚本 2.网络搜索到的脚本 3.改为可以指定用户的脚本 4.测试脚本使用 1.Oracle提供的脚本 如果要求管控严格,可以考虑使用Oracle官方提供的脚本. Script t ...
- Spring boot 的定时任务。
@Scheduled(fixedRate=2000):上一次开始执行时间点后2秒再次执行: @Scheduled(fixedDelay=2000):上一次执行完毕时间点后2秒再次执行: @Schedu ...
- [Kafka]Kafka学习 -- 初识Kafka
Kafka学习 -- 初识Kafka 参考资料:稀土掘金<图解Kafka之实战指南>https://juejin.cn/book/6844733793220165639 Kafka是一个多 ...
- NC15065 小牛vs小客
题目链接 题目 题目描述 小牛和小客玩石子游戏,他们用n个石子围成一圈,小牛和小客分别从其中取石子,谁先取完谁胜,每次可以从一圈中取一个或者相邻两个,每次都是小牛先取,请输出胜利者的名字(小牛获胜输出 ...