k8s集群容器权限_在K8s集群上运行的数据库容器的永久卷

k8s集群容器权限

我以前的一篇文章中,我展示了如何在K8s集群上运行Oracle XE数据库。 当我们不在乎数据时,这种方法在用例中很好用;在重新部署容器并重新启动Pod时,我们可以松散它。 但是,如果我们要保留数据,那么如果我们希望它在所有重新计划后仍然存在,我们将要重新考虑用于在集群上运行DB容器的K8s资源。 也就是说,定义资源的yaml文件如下所示:

apiVersion: apps/v1beta2
kind: StatefulSet
metadata:
  name: oraclexe
  labels:
    run: oraclexe
spec:
  selector:
      matchLabels:
        run: oraclexe
  serviceName: "oraclexe-svc"
  replicas: 1
  template:
    metadata:
      labels:
        run: oraclexe
    spec:
      volumes:
       - name: dshm
         emptyDir:
           medium: Memory  
      containers:
      - image: eugeneflexagon/database:11.2.0.2-xe
        volumeMounts:
           - mountPath: /dev/shm
             name: dshm
           - mountPath: /u01/app/oracle/oradata
             name: db
        imagePullPolicy: Always
        name: oraclexe
        ports:
        - containerPort: 1521
          protocol: TCP
  volumeClaimTemplates:
   - metadata:
       name: db
     spec:
       accessModes: [ "ReadWriteOnce" ]
       resources:
         requests:
           storage: 100M                   
---
apiVersion: v1
kind: Service
metadata:
  name: oraclexe-svc
  labels:
    run: oraclexe   
spec:
  selector:
    run: oraclexe
  ports:
    - port: 1521
      targetPort: 1521
  type: LoadBalancer

这里有一些有趣的事情。 首先,这不是部署。 我们在这里定义另一个K8s资源,称为有状态集 。 与部署不同,有状态集会为其每个Pod保持粘性标识。 这些Pod是根据相同的规范创建的,但它们不可互换:每个Pod都有一个永久性标识符,该标识符在任何重新计划中都会维护。

这个人是专门为有状态的应用程序(例如数据库)设计的,这些应用程序将其数据保存到持久性存储中。 为了为我们的数据库定义持久存储,我们使用特殊的
K8的资源持久卷 ,在yaml文件中,我们定义了一个声明,以创建一个名称为db的100mb 持久卷 。 该卷为一个分配的Pod提供读/写访问模式。 该卷之所以称为持久卷,是因为其寿命不是由容器维护的,甚至不是由容器维护的,而是由K8s集群维护的。 因此,它可以超过任何容器和Pod并保存数据。 我们在容器定义中指的是该持久性卷, 它将持久化卷安装在路径/ u01 / app / oracle / oradata上。 这是Oracle DB XE容器存储其数据的地方。

而已!

翻译自: https://www.javacodegeeks.com/2018/11/volumes-database-containers-running-k8s.html

k8s集群容器权限

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值