10.8.6. ディスク

本手順書では、ディスクの追加方法について説明いたします。

注釈

ディスクの追加は15GB単位で課金されますが、15GB単位で追加する必要はございません。一方、15GB未満のディスクは切り上げて課金されますのでご留意ください。


10.8.6.1. ディスクの追加

ディスクを追加するためには、OpenShiftサーバー(Masterノード)から直接追加いたします。
そのため、OpenShiftサーバーへSSH接続できることが前提条件となります。SSH接続の方法については、チュートリアル「ネットワークーファイアウォール」をご参照ください。

本手順では、一般的なPodへディスク追加とDocker Registryへディスク追加する手順を説明します。

一般的なPodへディスク追加

OpenShiftサーバーの一般的なPodへディスクを追加する手順を説明します。
本手順では、defaultのプロジェクトに存在するtest-pod(Pod)に対してディスクを追加する手順となります。お客さまの環境に応じて、コマンドをご修正ください。

Podは下記の通り構築しています。
Red Hat OpenShiftのポータルにログイン

Red Hat OpenShift Platform ディスク操作ステップ1

注釈

OpenShiftのポータルへログインする方法は、チュートリアルーコンテナオーケストレーションをご参照ください。


カタログを選択します。

Red Hat OpenShift Platform ディスク操作ステップ2

NEXTを押下します。

Red Hat OpenShift Platform ディスク操作ステップ3

ProjectとNameを入力し、Createを押下します。

Red Hat OpenShift Platform ディスク操作ステップ4

Closeを押下します。

Red Hat OpenShift Platform ディスク操作ステップ5

以降は、OpenShiftサーバーの作業となります。PVCを作成後に、Podへ適用する手順となります。
openshiftユーザーへ切り替えます。

$ sudo su openshift

ディレクトリを移動します。

$ cd ~

Podの一覧を取得します。test-podが存在することを確認します。

$ oc get pods
NAME                             READY     STATUS      RESTARTS   AGE
docker-registry-3-sfkt9          1/1       Running     0          6h
postgresql-1-nkr8s               1/1       Running     0          28d
rails-pgsql-persistent-1-build   0/1       Completed   0          28d
rails-pgsql-persistent-2-8mzdg   1/1       Running     0          1d
registry-console-1-rtg5r         1/1       Running     0          30d
router-1-p84cd                   1/1       Running     0          30d
router-1-vsjz4                   1/1       Running     0          30d
test-pod-2-bpzct                 1/1       Running     0          18m

Persistent Volume Claim (永続ボリューム要求)のyamlを作成します。

$ vi pvc.yaml

apiVersion: v1

kind: PersistentVolumeClaim

metadata:

name: test-pvc

spec:

accessModes:

- ReadWriteOnce

resources:

requests:

    storage: 15Gi

Persistent Volume Claim (永続ボリューム要求)を作成します。

$ oc create -f pvc.yaml
persistentvolumeclaim/test-pvc created

PodのDeployment configをアップデートします。

$ oc set volume deploymentconfigs/test-pod --add --name=persistent-volume -t pvc --claim-name=test-pvc  --mount-path=/data

以上がOpenShiftサーバー上の操作となります。
ディスクが追加されたことは、OpenShiftのポータルから確認することができます。

<参考>

Red Hat OpenShift Platform ディスク操作ステップ6

Docker Registryへディスク追加

OpenShiftサーバーのDocker Registryへディスクを追加する手順を説明します。
openshiftユーザーへ切り替えます。

$ sudo su openshift

Docker RegistryのボリュームがEmptyであることを確認します。

$ oc describe dc/docker-registry -n default | grep -A 2 Volumes

Volumes:

registry-storage:

    Type:       EmptyDir (a temporary directory that shares a pod's lifetime)

DockerRegistryアタッチ用の永続ボリュームを作成します。

$ oc create -f - << EOF
apiVersion: v1
kind: PersistentVolumeClaim
metadata:
name: pvc-for-dockerregistry
spec:
accessModes:
- ReadWriteOnce
resources:
requests:
    storage: 10Gi
EOF

Docker Registryに永続ボリュームが作成されたことを確認します。

$ oc get pvc
NAME                             STATUS    VOLUME                                     CAPACITY   ACCESS MODES   STORAGECLASS   AGE
postgresql                       Bound     pvc-a97de413-a627-11ea-a36b-fa163e5fafd8   1Gi        RWO            standard       28d
pvc-for-dockerregistry           Bound     pvc-c4157d96-bc2c-11ea-87c1-fa163eb16671   10Gi       RWO            standard       7h
rails-pgsql-persistent-1-56cgw   Bound     pvc-d3047e07-bacd-11ea-87c1-fa163eb16671   15Gi       RWO            standard       2d
test-pvc                         Bound     pvc-96361f59-a4ab-11ea-87c1-fa163eb16671   15Gi       RWO            standard       30d
test-pvc2                        Bound     pvc-685a52a2-bad0-11ea-87c1-fa163eb16671   15Gi       RWO            standard       2d

Eventで「Successfully provisioned volume」が表示されていることを確認し、永続ボリュームの作成に成功していることを確認します。

$ oc describe pvc
Name:          pvc-for-dockerregistry
Namespace:     default
StorageClass:  standard
Status:        Bound
Volume:        pvc-c4157d96-bc2c-11ea-87c1-fa163eb16671
Labels:        <none>
Annotations:   pv.kubernetes.io/bind-completed=yes
            pv.kubernetes.io/bound-by-controller=yes
            volume.beta.kubernetes.io/storage-provisioner=kubernetes.io/cinder
Finalizers:    [kubernetes.io/pvc-protection]
Capacity:      10Gi
Access Modes:  RWO
Events:
Type    Reason                 Age   From                         Message
----    ------                 ----  ----                         -------
Normal  ProvisioningSucceeded  3m    persistentvolume-controller  Successfully provisioned volume pvc-c4157d96-bc2c-11ea-87c1-fa163eb16671 using kubernetes.io/cinder

10.8.6.2. ディスクの削除

ディスクを削除するためにはOpenShiftサーバー(Masterノード)から直接削除いたします。
そのため、OpenShiftサーバーへSSH接続できることが前提条件となります。SSH接続の方法については、チュートリアル「ネットワークーファイアウォール」をご参照ください。

本手順では、一般的なPodへディスク削除する手順を説明します。ディスク追加の手順を実行していることを前提としている手順となります。
PodからPVCを削除します。
$ oc set volume deploymentconfigs/test-pod --remove --name=persistent-volume

PVCの状況を確認します。

$ oc get pvc

PVCを削除します。

$ oc delete pvc test-pvc

PVCが削除されていることを確認します。

$ oc get pvc