云服务器内容精选
-
通过kubectl命令行动态挂载本地持久卷 使用kubectl连接集群。 创建statefulset-local.yaml文件,本示例中将本地持久卷挂载至/data路径。 apiVersion: apps/v1 kind: StatefulSet metadata: name: statefulset-local namespace: default spec: selector: matchLabels: app: statefulset-local template: metadata: labels: app: statefulset-local spec: containers: - name: container-1 image: nginx:latest volumeMounts: - name: pvc-local # 需与volumeClaimTemplates字段中的名称对应 mountPath: /data # 存储卷挂载的位置 imagePullSecrets: - name: default-secret serviceName: statefulset-local # Headless Service名称 replicas: 2 volumeClaimTemplates: - apiVersion: v1 kind: PersistentVolumeClaim metadata: name: pvc-local namespace: default annotations: everest.io/csi.volume-name-prefix: test # 可选字段,定义自动创建的底层存储名称前缀 spec: accessModes: - ReadWriteOnce # 本地持久卷必须为ReadWriteOnce resources: requests: storage: 10Gi # 存储卷容量大小 storageClassName: csi-local-topology # StorageClass类型为本地持久卷 --- apiVersion: v1 kind: Service metadata: name: statefulset-local # Headless Service名称 namespace: default labels: app: statefulset-local spec: selector: app: statefulset-local clusterIP: None ports: - name: statefulset-local targetPort: 80 nodePort: 0 port: 80 protocol: TCP type: ClusterIP 表2 关键参数说明 参数 是否必选 描述 everest.io/csi.volume-name-prefix 否 可选字段,集群版本为v1.23.14-r0、v1.25.9-r0、v1.27.6-r0、v1.28.4-r0及以上时支持,且集群中需安装2.4.15及以上版本的Everest插件。 定义自动创建的底层存储名称,实际创建的底层存储名称为“存储卷名称前缀”与“PVC UID”的拼接组合,如果不填写该参数,默认前缀为“pvc”。 取值范围:参数值长度为1~26,且必须是小写字母、数字、中划线,不能以中划线开头或结尾。 例如,存储卷名称前缀设置为“test”,则实际创建的底层存储名称test-{uid}。 storage 是 PVC申请容量,单位为Gi。 storageClassName 是 本地持久卷对应的存储类名称为csi-local-topology。 执行以下命令,创建一个挂载本地持久卷存储的应用。 kubectl apply -f statefulset-local.yaml 工作负载创建成功后,您可以尝试验证数据持久化。
-
验证数据持久化 查看部署的应用及文件。 执行以下命令,查看已创建的Pod。 kubectl get pod | grep statefulset-local 预期输出如下: statefulset-local-0 1/1 Running 0 45s statefulset-local-1 1/1 Running 0 28s 执行以下命令,查看本地持久卷是否挂载至/data路径。 kubectl exec statefulset-local-0 -- df | grep data 预期输出如下: /dev/mapper/vg--everest--localvolume--persistent-pvc-local 10255636 36888 10202364 0% /data 执行以下命令,查看/data路径下的文件。 kubectl exec statefulset-local-0 -- ls /data 预期输出如下: lost+found 执行以下命令,在/data路径下创建static文件。 kubectl exec statefulset-local-0 -- touch /data/static 执行以下命令,查看/data路径下的文件。 kubectl exec statefulset-local-0 -- ls /data 预期输出如下: lost+found static 执行以下命令,删除名称为web-local-auto-0的Pod。 kubectl delete pod statefulset-local-0 预期输出如下: pod "statefulset-local-0" deleted 删除后,StatefulSet控制器会自动重新创建一个同名副本。执行以下命令,验证/data路径下的文件是否更改。 kubectl exec statefulset-local-0 -- ls /data 预期输出如下: lost+found static static文件仍然存在,则说明本地持久卷中的数据可持久化保存。
-
相关操作 您还可以执行表3中的操作。 表3 其他操作 操作 说明 操作步骤 事件 查看PVC或PV的事件名称、事件类型、发生次数、Kubernetes事件、首次和最近发生的时间,便于定位问题。 在左侧导航栏选择“存储”,在右侧选择“存储卷声明”或“存储卷”页签。 单击目标实例操作列的“事件”,即可查看1小时内的事件(事件保存时间为1小时)。 查看YAML 可对PVC或PV的YAML文件进行查看、复制和下载。 在左侧导航栏选择“存储”,在右侧选择“存储卷声明”或“存储卷”页签。 单击目标实例操作列的“查看YAML”,即可查看或下载YAML。
-
使用场景 动态挂载仅可在创建有状态负载时使用,通过卷声明模板(volumeClaimTemplates字段)实现,并依赖于StorageClass的动态创建PV能力。在多实例的有状态负载中,动态挂载可以为每一个Pod关联一个独有的PVC及PV,当Pod被重新调度后,仍然能够根据该PVC名称挂载原有的数据。而在无状态工作负载的普通挂载方式中,当存储支持多点挂载(ReadWriteMany)时,工作负载下的多个Pod会被挂载到同一个底层存储中。
更多精彩内容
CDN加速
GaussDB
文字转换成语音
免费的服务器
如何创建网站
域名网站购买
私有云桌面
云主机哪个好
域名怎么备案
手机云电脑
SSL证书申请
云点播服务器
免费OCR是什么
电脑云桌面
域名备案怎么弄
语音转文字
文字图片识别
云桌面是什么
网址安全检测
网站建设搭建
国外CDN加速
SSL免费证书申请
短信批量发送
图片OCR识别
云数据库MySQL
个人域名购买
录音转文字
扫描图片识别文字
OCR图片识别
行驶证识别
虚拟电话号码
电话呼叫中心软件
怎么制作一个网站
Email注册网站
华为VNC
图像文字识别
企业网站制作
个人网站搭建
华为云计算
免费租用云托管
云桌面云服务器
ocr文字识别免费版
HTTPS证书申请
图片文字识别转换
国外域名注册商
使用免费虚拟主机
云电脑主机多少钱
鲲鹏云手机
短信验证码平台
OCR图片文字识别
SSL证书是什么
申请企业邮箱步骤
免费的企业用邮箱
云免流搭建教程
域名价格