在Red Hat CDK Kit 3.0中添加永久性存储

Adding Persistent Storage to Red Hat CDK Kit 3.0

原文作者:Andrew Block

原文地址:https://dzone.com/articles/adding-persistent-storage-to-red-hat-cdk-kit-30

译者:微博@从流域到海域

译者博客:blog.csdn.net/solo95

在Red Hat CDK Kit 3.0中添加永久性存储

Note:本文介绍了在Red Hat Container Development Kit3.0 Beta中找到的功能。将来的版本中可能会更改某些功能和特性。

The Red Hat Container Development Kit (CDK) 提供了一个一体化的环境,不仅可以构建和测试Docker容器,还可以在Red Hat OpenShift容器平台上使用它们。这些都可以在单个开发者的机器上实现。自成立以来,CDK使用Vagrant作为供应平台。从版本3.0开始,CDK现在使用Minishift作为底层提供者。基于Minishift的CDK 3.0的过渡减少了需要安装和配置的依赖的数量。现在只需要VirtualBox或KVM等虚拟机管理程序。

CDK最好的部分之一是它提供了一个开发人员可以立即使用的功能齐全的环境。但是,向CDK 3.0过渡确实忽略了以前版本中的一个关键特性:预先配置的永久性存储。在CDK 2.0中,OpenShift使用的three(3)被预先配置向应用程序提供长期存储。通过在主机上配置了一个网络文件系统(NFS)服务器来提供这样的功能。 Minishift主机没有配置NFS服务器。但是,可以使用OpenShift提供的其中一种替代存储类型:HostPath。 HostPath volume 插件可以使用底层容器主机上的存储,而无需安装任何其他软件。(container被直译为容器,下文同,译者注)

为主机路径存储配置CDK,应创建多个代表永久存储(PersistentVolumes)的目录以支持需要永久性性存储的应用程序。由于Minishift会引导到tempfs,大多数目录将在机器重新启动后继续存在。只有放置在以下目录中的文件才会被保留:

  • /var/lib/docker
  • /var/lib/minishift

新建的三个的永久卷应该在/var/lib/minishift/pv路径下创建,并且被命名为文件夹pv01、pv02、pv03。

在CDK已经启动的情况下,执行以下命令访问Minishift机器中的shell:

minishift ssh

默认情况下,当使用SSH命令访问Minishift机器时,您将以一个名为docker的用户身份登录。由于这个目录是由root用户授权和保护的,所以需要使用sudo up命令。

sudo su - 

为PersistentVolumes创建三个目录:

mkdir -p /var/lib/minishift/pv/pv0{1..3}

为了简化CDK等开发环境中的权限管理,请适当放宽目录和权限所有权:

chmod -R 777 /var/lib/minishift/pv/pv*
chmod -R a+w /var/lib/minishift/pv/pv*

CDK的一个主要优点是它建立在Red Hat 企业版Linux(RHEL)基础之上。 RHEL固有的安全功能之一是SELinux,它不仅为主机提供了额外的保护,而且任何容器都可以把它作为一个基础使用。默认情况下,容器被限制直接写入底层主机文件系统。要允许容器写入为永久卷创建的目录,必须设置SELinux标签svirt_sandbox_file_t

执行以下命令重新标记目录:

chcon -R -t svirt\_sandbox\_file\_t /var/lib /minishift/pv /\*

restorecon -R /var/lib/minishift/pv/

通过正确配置目录,可以创建使用HostPath存储插件的永久卷。确保使用OpenShift命令行工具作为集群管理员登录到OpenShift环境中:

oc login -u system:admin

现在创建新的永久卷:

for i in $(seq 1 3); do

oc create -f - <<PV

apiVersion: v1

kind: PersistentVolume

metadata:
   name: pv0$i

spec:
  accessModes:
  - ReadWriteOnce
  - ReadWriteMany
  - ReadOnlyMany
  capacity:
    storage: 2Gi
  hostPath:
    path: /var/lib/minishift/pv/pv0$i
  persistentVolumeReclaimPolicy: Recycle

PV

done

现在新创建的永久卷就可以被修改了:

oc get pv

NAME      CAPACITY   ACCESSMODES   RECLAIMPOLICY   STATUS      CLAIM                                REASON    AGE

pv01      2Gi        RWO,ROX,RWX   Recycle         Available                                                  1m

pv02      2Gi        RWO,ROX,RWX   Recycle         Available                                                  1m

pv03      2Gi        RWO,ROX,RWX   Recycle         Available                                                  1m

永久性存储的使用,特别是在开发阶段,在容器化应用(creating containerized)程序时提供了一些额外的功能。

本文的版权归 Steve Wang 所有,如需转载请联系作者。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏腾讯云TStack专栏

内存虚拟化到底是咋整的?

75300
来自专栏散尽浮华

Docker集群管理工具-Kubernetes部署记录

之前介绍了Mesos+Marathon+Zookeeper管理Docker集群平台的部署 ,本篇则说下利用Kubernetes管理Docker集群环境的部署。 ...

1.7K60
来自专栏Linux运维学习之路

Docker集群编排工具之Kubernetes(K8s)介绍、安装及使用

K8s基础原理 k8s中文社区:https://www.kubernetes.org.cn/ 简介 Kubernetes与较早的集群管理系统Mesos和YARN...

1.8K50

快速添加永久存储到到Minishift / CDK 3

今天,我想向您展示如何在minishift / CDK 3(Red Hat’s Containers Development Kit 3

28190
来自专栏大魏分享(微信公众号:david-share)

隆重介绍!CI/CD手下的开源界六大金刚

Jenkins 2 image based on Red Hat Enterprise Linux的镜像

52630
来自专栏KaliArch

Linux系统检查脚本

对登录一个系统,快速查看其系统信息,检查系统各项指标及参数,编写系统快速检查脚本,输出系统信息到脚本运行的logs目录下。

15740
来自专栏bboysoul

中间人攻击工具(Xerosploit)

Xerosploit是一个渗透测试工具包,它的目的是实现中间人攻击。它附带着各种有效的攻击模块,并且还允许执行拒绝服务攻击和端口扫描

11830
来自专栏乐沙弥的世界

Vmware 下Oracle RAC搬家引起CRS-1006/CRS-0215/CRS-0233

   最近虚拟机下的Oracle 10g RAC搬家,搬家完毕之后,Oracle 集群resource之VIP无法正常启动,收到了CRS-0233: Resou...

14230
来自专栏小狼的世界

Kubernetes中StatefulSet介绍

使用Kubernetes来调度无状态的应用非常简单,那Kubernetes如何来管理调度有状态的应用呢?Kubernetes中提供了一个StatefulSet控...

40240

将永久存储添加到Red Hat CDK Kit 3.0

注意:本文介绍了在Red Hat容器开发工具包3.0测试版中使用的方法。在将来的版本中可能会有所变更。

20280

扫码关注云+社区

领取腾讯云代金券