如何重用现有的持久卷声明

2024-04-28

我已经删除了我的 Elasticsearch 集群,但现在在部署新集群后,我需要访问存储在 3 个持久卷 PV 上的旧数据,如下所述:

NAME                       STATUS    VOLUME                                     CAPACITY   ACCESS MODES   STORAGECLASS   AGE
storage-es-data-0          Bound     pvc-19429b0b-ba42-11e7-979d-42010a840ff7   12Gi       RWO            standard       10d
storage-es-data-1          Bound     pvc-36505962-ba42-11e7-979d-42010a840ff7   12Gi       RWO            standard       10d
storage-es-data-2          Bound     pvc-422da328-ba42-11e7-979d-42010a840ff7   12Gi       RWO            standard       10d

这是旧 PV 声明的描述:

NAME                                       CAPACITY   ACCESS MODES   RECLAIM POLICY   STATUS    CLAIM                              STORAGECLASS   REASON    AGE
pvc-19429b0b-ba42-11e7-979d-42010a840ff7   12Gi       RWO            Delete           Bound     default/storage-es-data-0          standard                 10d
pvc-36505962-ba42-11e7-979d-42010a840ff7   12Gi       RWO            Delete           Bound     default/storage-es-data-1          standard                 10d
pvc-422da328-ba42-11e7-979d-42010a840ff7   12Gi       RWO            Delete           Bound     default/storage-es-data-2          standard                 10d

我的新部署描述如下:

apiVersion: apps/v1beta1
kind: Deployment
metadata:
  name: es-data
  labels:
    component: elasticsearch
    role: data
spec:
  replicas: 1
  template:
    metadata:
      labels:
        component: elasticsearch
        role: data
    spec:
      initContainers:
      - name: init-sysctl
        image: busybox
        imagePullPolicy: IfNotPresent
        command: ["sysctl", "-w", "vm.max_map_count=262144"]
        securityContext:
          privileged: true
      containers:
      - name: es-data
        image: docker.elastic.co/elasticsearch/elasticsearch:5.6.3
        imagePullPolicy: Always
        ports:
        - containerPort: 9300
          name: transport
          protocol: TCP
        volumeMounts:
        - name: storage
          mountPath: /data
      volumes:
      - name: storage
        persistentVolumeClaim:
          claimName: storage-es-data-0

将我的 pod 连接到 Loadblance 服务后,我没有找到任何文档。我错过了什么吗?以及如何在同一个 POD 中使用这三个 PV。


Your deploymentyaml 文件是正确的。您应该能够找到文件pvc-19429b0b-ba42-11e7-979d-42010a840ff7里面的体积/datapod 中的文件夹。

为了在同一个 POD 中使用三个 PV,只需将它们添加到您的deployment yaml:

apiVersion: apps/v1beta1
kind: Deployment
metadata:
  name: es-data
  labels:
    component: elasticsearch
    role: data
spec:
  replicas: 1
  template:
    metadata:
      labels:
        component: elasticsearch
        role: data
    spec:
      initContainers:
      - name: init-sysctl
        image: busybox
        imagePullPolicy: IfNotPresent
        command: ["sysctl", "-w", "vm.max_map_count=262144"]
        securityContext:
          privileged: true
      containers:
      - name: es-data
        image: docker.elastic.co/elasticsearch/elasticsearch:5.6.3
        imagePullPolicy: Always
        ports:
        - containerPort: 9300
          name: transport
          protocol: TCP
        volumeMounts:
        - name: storage-0
          mountPath: /data0
        - name: storage-1
          mountPath: /data1
        - name: storage-2
          mountPath: /data2
      volumes:
      - name: storage-0
        persistentVolumeClaim:
          claimName: storage-es-data-0
      - name: storage-1
        persistentVolumeClaim:
          claimName: storage-es-data-1
      - name: storage-2
        persistentVolumeClaim:
          claimName: storage-es-data-2
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何重用现有的持久卷声明 的相关文章

  • 从 pod 连接到其他 pod

    基本上 我有一个部署 它创建了 3 个自动扩展的容器 PHP FPM NGINX 和包含应用程序的容器 所有这些都设置了机密 服务和入口 该应用程序还在 PHP FPM 和 NGINX 之间共享项目 因此一切都已设置完毕 由于我想使用 K8
  • 通过流式传输将分段文件上传到 Amazon S3 时内存使用率过高?

    我的 Java Spring 应用程序中的以下方法直接将文件流式传输并上传到 Amazon S3 存储桶 我研究过 使用流将使上传大文件 对于我的用例 gt 100MB 视频 更加内存有效 当使用 25MB 文件测试该方法时 Kuberne
  • 如何使用 VS Code 编辑 kubernetes pod 容器中的代码?

    通常 如果我有远程服务器 我可以使用 ssh 访问它 并且 VS Code 提供了一个漂亮的扩展 用于编辑和调试远程服务器的代码 但是当我在 Kuberneters 中创建 pod 时 我无法真正通过 ssh 进入容器 因此我无法编辑 po
  • 尝试使用 minikube 运行示例微服务应用程序时如何解决 DNS 查找错误

    亲爱的 StackOverflow 社区 我正在尝试运行https github com GoogleCloudPlatform microservices demo https github com GoogleCloudPlatform
  • 多个 nginx 入口重写的默认路径

    这是我的情况 我在 kubernetes 入口 上 有两个 docker 镜像 一个专用于 Web 第二个专用于 api 在下一个配置下 在消息末尾 web将显示将进行一些调用的前端 api 那里一切都好 but 是 404 因为没有定义任
  • 在 Kubernetes API 中启用 CORS

    有没有办法在 Kubernetes API 上启用 CORS 以便我可以使用不同的域向 Kubernetes API 发送 ajax 请求 通过将 cors allowed origins http 参数添加到 etc default ku
  • Kubernetes ConfigMap 大小限制

    Though resourceQuotas可能会限制命名空间中的配置映射的数量 是否有任何这样的选项来限制单个配置映射的大小 我不喜欢某些用户开始上传大型文本文件作为配置映射 ConfigMap etcd 支持的最大大小是多少 如果 etc
  • 如何在 kubernetes 中传递命令行参数?

    需要在 pod yaml 中传递 docker 容器 appContainer1 和 appContainer2 的命令行参数 pod yaml apiVersion v1 kind Pod metadata name microservi
  • 如何使用 hostPath 将单个文件映射到 kubernetes pod 中?

    我有一个自己的 nginx 配置 home ubuntu workspace web conf由脚本生成 我更喜欢把它放在下面 etc nginx conf d除了default conf 下面是nginx yaml apiVersion
  • Grafana/prometheus 中没有 kafka 指标

    我成功部署了 Helm Chart普罗米修斯操作员 https github com coreos prometheus operator tree master helm prometheus operator kube 普罗米修斯 ht
  • 使大型静态数据文件可供 kubernetes pod 使用

    我有一些相当大的 UTF 8 数据文件 pod 需要在启动时加载到内存中 从几百 KB 到大约 50 MB 该项目 包括 helm 图表 是开源的 但其中一些文件不是开源的 否则我可能只会将它们包含在图像中 我最初的想法是创建配置映射 但我
  • kubernetes nginx ingress 无法将 HTTP 重定向到 HTTPS

    我有一个托管在 Google Cloud 平台中的网络应用程序 该应用程序位于负载均衡器后面 而负载均衡器本身位于入口后面 入口设置了 SSL 证书 并按预期接受 HTTPS 连接 但有一个问题 我无法让它将非 HTTPS 连接重定向到 H
  • Kubernetes Pod 中现在几点了?

    假设我有一些 NET Core 代码在 k8s pod 中运行 我要求 DateTime Now 我假设我将从运行 pod 的主机获取日期时间 有没有办法获得在 k8s 集群中一致的日期时间值 容器中的时钟与主机相同 因为它由内核控制 时区
  • 在容器中运行多个相似的进程有意义吗?

    提供有关该问题的背景的简要背景 目前 我和我的团队正在将微服务迁移到 k8s 以减少维护多个部署工具和管道的工作量 我们计划迁移的微服务之一是 ETL Worker 它监听 SQS 上的消息并执行多阶段处理 它是使用 PHP Laravel
  • 除了 80 / 443 之外,我还可以为 Kubernetes 入口设置自定义端口来侦听吗?

    我并不是说能够路由到特定端口 我的意思是实际更改入口侦听的端口 这可能吗 如何 这是在哪里记录的 不 从Kubernetes 文档 https kubernetes io docs concepts services networking
  • Podman:如何解析使用 Kubernetes YAML 部署的 pod 的主机名

    我正在使用 podman 4 5 dev 我使用以下方式部署了两个 Pod podman kube 播放 foo yaml podman kube play bar yaml 我在文件中指定了 pod 的主机名 但它们不会在容器内得到解析
  • 如何根据 Kubernetes / Docker 事件发送警报?

    是否可以根据 Kubernetes 集群内发生的事件以某种方式发送警报 到电子邮件 slack 特别是 如果 Pod 意外重新启动或 Pod 无法启动 那么获取警报将非常有用 同样 了解 Pod 的 CPU 使用率是否超过特定阈值并获取警报
  • Kubernetes WatchConnectionManager:执行失败:HTTP 403

    我遇到错误Expected HTTP 101 response but was 403 Forbidden 在我使用以下命令设置新的 Kubernetes 集群之后Kubeadm当我提交下面遇到的 pyspark 示例应用程序时 只有一个主
  • 如何将 kubernetes LoadBalancer Ingress URL 发布到 aws Route53

    今天 当我通过 aws 使用 kubernetes 启动一个应用程序时 它公开了一个公开可见的 LoadBalancer Ingress URL 但是要将其链接到我的域以使公众可以访问该应用程序 我需要在每个设备上的浏览器中手动进入 aws
  • Kubernetes 通过基于时间的触发器扩展 Pod

    我有一台在 Kubernetes 上运行的服务器来处理每小时的处理作业 考虑使用服务来公开 pod 并使用 外部 cron 作业来访问负载均衡器 以便 kubernetes 可以根据需要自动缩放以处理更高的负载 然而在实现中 如果 cron

随机推荐