k8s持久化之emptyDir使用

概述

   理解emptyDir使用,是后续k8s持久化进阶,高阶使用的基础。

实践

代码

  详细说明在代码中

# 缓存数据,可以让多个容器共享数据
# 删除 Pod 时,emptyDir 数据同步消失
# 定义 initContainer -> 下载数据至 emptyDir -> 在container 挂载 emptyDir ,能看数据共享
apiVersion: v1
kind: Pod
# 元数据
metadata:
  # pod 名称 唯一
  name: busybox
  # 命名空间
  namespace: test
  # 标签
  labels:
    app: busybox

spec:
  # 选择哪个k8s work 节点部署
  nodeName: xxxx
  initContainer:
    - name: download
      image: harbor.easzlab.io.local:8443/library/busybox:stable-musl
      command:
        - wget
        - -O
        - /workdir/index.html
        - https:www.baidu.com
      volumeMounts:
        - name: workdir
          mountPath: /workdir
  containers:
    - name: web
      image: nginx
      prots:
        - containerPort: 80
          hostPort: 8080
      # 容器挂载哪个卷,挂载的路径    
      volumeMounts:
        - name: workdir
          mountPath: /usr/share/nginx/html
  # 多个挂载        
  volumes:
    # 名称(其中一个挂载的名称)
    - name: workdir
      # 挂载类型 
      emptyDir: {}
K8sKubernetes)是一种开源的容器编排工具,它可以帮助我们自动化部署、扩展和管理容器化应用程序。在K8s中,实现将数据持久化到数据库主要有两个方面的问题需要解决:存储卷(Volume)的使用和数据库的部署。 首先要解决的是存储卷的问题。存储卷可以在K8s集群中提供持久化的存储,使得我们可以将数据持久化到独立于容器的存储介质中,从而避免数据的丢失。K8s提供了多种存储卷的类型,如EmptyDir、HostPath、PersistentVolume等,可以根据具体需求选择合适的存储卷类型。对于持久化到数据库的场景,可以选择使用PersistentVolumeClaim(PVC)来创建一个持久化卷,并将其挂载到数据库容器中。 其次,需要部署数据库服务。K8s可以通过使用StatefulSet来管理有状态应用,如数据库。StatefulSet可以为每个Pod分配唯一的标识符,从而使得每个Pod能够保持自己的稳定网络标识和持久存储的数据。在StatefulSet中,可以定义数据库服务的副本数量、挂载的存储卷、环境变量等。此外,还可以通过Service将数据库服务暴露给其他应用程序。 综上所述,要在K8s中将数据持久化到数据库,首先需要选择合适的存储卷类型,并创建相应的PersistentVolumeClaim来管理存储卷。接着,通过StatefulSet来定义数据库服务的部署方式,并指定挂载的存储卷和其他相关配置。最后,通过Service将数据库服务暴露给其他应用程序,以实现数据的持久化和访问。通过K8s的这些功能,可以方便地实现数据的持久化到数据库,并实现高可用、弹性扩展等特性。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

流月up

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值