このサンプル・スクリプトでは、Kubernetes PersistentVolume (PV)およびPersistentVolumeClaim (PVC)の作成方法を示します。これらは、WebLogicドメイン・ホームまたはログ・ファイルの永続ストレージとしてドメインYAMLファイルで使用できます。
PVおよびPVCは、複数のWebLogicドメインで共有することも、特定のドメイン専用にすることもできます。
開始する前に、このドキュメント「永続ストレージ」をお読みください。
create-pv-pvc.shスクリプトを実行する前に、create-pv-pvc-inputs.yamlファイルのコピーを作成し、入力ファイルでweblogicDomainStoragePathプロパティのコメントを解除して明示的に構成します。
作成スクリプトを実行し、入力ファイルおよび出力ディレクトリを指定します:
$ ./create-pv-pvc.sh \
-i create-pv-pvc-inputs.yaml \
-o /path/to/output-directory
create-pv-pvc.shスクリプトは、指定された/path/to/output-directoryディレクトリの下にサブディレクトリpv-pvcsを作成します。 デフォルトでは、スクリプトによって2つのYAMLファイル(weblogic-sample-pv.yamlおよびweblogic-sample-pvc.yaml)が/path/to/output-directory/pv-pvcsに生成されます。 これらのYAMLファイルは、kubectl create -fコマンドを使用してKubernetesリソースを作成するために使用できます。
$ kubectl create -f weblogic-sample-pv.yaml
$ kubectl create -f weblogic-sample-pvc.yaml
便宜上、スクリプトはオプションで-eオプションを使用してPVおよびPVCリソースを作成できます。
作成スクリプトの使用方法は次のとおりです:
$ sh create-pv-pvc.sh -h
usage: create-pv-pvc.sh -i file -o dir [-e] [-h]
-i Parameter inputs file, must be specified.
-o Output directory for the generated yaml files, must be specified.
-e Also create the Kubernetes objects using the generated yaml files
-h Help
サンプル・スクリプトを別のロケーションにコピーする場合は、<weblogic-kubernetes-operator-project>/kubernetes/samples/scriptsディレクトリ内のすべてをターゲット・ディレクトリにコピーし、元のディレクトリ階層を維持してください。
PVおよびPVC作成の入力は、create-pv-pvc-inputs.yamlファイルを編集することでカスタマイズできます。
| パラメータ | 定義 | デフォルト |
|---|---|---|
domainUID |
生成されたPVおよびPVCが専用になるドメインのID。 PVとPVCを複数のドメインで共有する場合は、空のままにします。 | デフォルトなし |
namespace |
PVCを作成するKubernetesネームスペース。 | default |
baseName |
PVおよびPVCのベース名。 生成されるPVおよびPVCは、それぞれ<baseName>-pvおよび<baseName>-pvcになります。 |
weblogic-sample |
weblogicDomainStoragePath |
PVのストレージの物理パス。 weblogicDomainStorageTypeがHOST_PATHに設定されている場合、この値をKubernetesホスト上のドメイン・ストレージへのパスに設定する必要があります。 weblogicDomainStorageTypeがNFSに設定されている場合、weblogicDomainStorageNFSServerはDNSサーバーのIPアドレスまたは名前に設定する必要があり、この値はそのサーバーでエクスポートされたパスに設定する必要があります。 WebLogicコンテナでドメインがマウントされているパスは、この設定の影響を受けません。この設定は、ドメインの作成時に決定されます。 |
デフォルトなし |
weblogicDomainStorageReclaimPolicy |
永続ストレージのKubernetes PVCポリシー。 有効な値は: Retain、DeleteおよびRecycle。 |
Retain |
weblogicDomainStorageSize |
PVCに割り当てられた合計ストレージ。 | 10Gi |
weblogicDomainStorageType |
ストレージのタイプ。 有効な値は、NFSおよびHOST_PATHです。 NFSを使用する場合は、weblogicDomainStorageNFSServerを指定する必要があります。 |
HOST_PATH |
weblogicDomainStorageNFSServer |
NFSサーバーの名前またはIPアドレス。 この設定は、weblogicDomainStorateTypeがNFSの場合にのみ適用されます。 |
デフォルトなし |
デフォルトでは、domainUIDは入力ファイル内で空のままになっています。つまり、生成されたPVおよびPVCは特定のドメインに関連付けられませんが、PVおよびPVCと同じKubernetesネームスペース内の複数のドメインで共有できます。 PV/PVCがドメイン間で共有されている場合、ベスト・プラクティスとして、一意のbaseNameを指定する必要があります。
特定のドメインに専用のPVおよびPVCが必要なユースケースでは、domainUIDをcreate-pv-pvc-inputs.yamlファイルに設定する必要があります。 入力ファイルに空でないdomainUIDが存在すると、生成されたPVおよびPVCが指定されたdomainUIDに関連付けられます。 この関連付けには、生成されたYAMLファイルの名前とKubernetes PVおよびPVCオブジェクトがdomainUIDで修飾され、PVおよびPVCオブジェクトにもdomainUIDのラベルが付けられていることが含まれます。
作成スクリプトはPVおよびPVCが作成されたことを確認し、エラーが発生した場合は失敗を報告します。 ただし、スクリプトによって作成された様々なKubernetesオブジェクトを理解するだけでも、PVおよびPVCを手動で検証することが望ましい場合があります。
生成されたweblogic-sample-pvc.yamlの内容:
# Copyright 2018, 2021, Oracle and/or its affiliates.
# Licensed under the Universal Permissive License v 1.0 as shown at http://oss.oracle.com/licenses/upl.
kind: PersistentVolumeClaim
apiVersion: v1
metadata:
name: weblogic-sample-pvc
namespace: default
storageClassName: weblogic-sample-storage-class
accessModes:
- ReadWriteMany
resources:
requests:
storage: 10Gi
生成されたweblogic-sample-pv.yamlの内容:
# Copyright 2018, 2021, Oracle and/or its affiliates.
# Licensed under the Universal Permissive License v 1.0 as shown at http://oss.oracle.com/licenses/upl.
apiVersion: v1
kind: PersistentVolume
metadata:
name: weblogic-sample-pv
# labels:
# weblogic.domainUID:
spec:
storageClassName: weblogic-sample-storage-class
capacity:
storage: 10Gi
accessModes:
- ReadWriteMany
# Valid values are Retain, Delete or Recycle
persistentVolumeReclaimPolicy: Retain
hostPath:
# nfs:
# server: %SAMPLE_STORAGE_NFS_SERVER%
path: "/scratch/k8s_dir"
domainUIDがdomain1に設定されている場合に生成されるdomain1-weblogic-sample-pvc.yamlのコンテンツは次のとおりです:
# Copyright 2018, 2021, Oracle and/or its affiliates.
# Licensed under the Universal Permissive License v 1.0 as shown at http://oss.oracle.com/licenses/upl.
kind: PersistentVolumeClaim
apiVersion: v1
metadata:
name: domain1-weblogic-sample-pvc
namespace: default
labels:
weblogic.domainUID: domain1
spec:
storageClassName: domain1-weblogic-sample-storage-class
accessModes:
- ReadWriteMany
resources:
requests:
storage: 10Gi
domainUIDがdomain1に設定されている場合に生成されるdomain1-weblogic-sample-pv.yamlのコンテンツは次のとおりです:
# Copyright 2018, 2021, Oracle and/or its affiliates.
# Licensed under the Universal Permissive License v 1.0 as shown at http://oss.oracle.com/licenses/upl.
apiVersion: v1
kind: PersistentVolume
metadata:
name: domain1-weblogic-sample-pv
labels:
weblogic.domainUID: domain1
spec:
storageClassName: domain1-weblogic-sample-storage-class
capacity:
storage: 10Gi
accessModes:
- ReadWriteMany
# Valid values are Retain, Delete or Recycle
persistentVolumeReclaimPolicy: Retain
hostPath:
# nfs:
# server: %SAMPLE_STORAGE_NFS_SERVER%
path: "/scratch/k8s_dir"
このコマンドを使用して、PersistentVolumeが作成されたことを確認できます。 Statusフィールドには、PersistentVolumeが要求されたことを示す値Boundが表示されます:
$ kubectl describe pv weblogic-sample-pv
Name: weblogic-sample-pv
Annotations: pv.kubernetes.io/bound-by-controller=yes
StorageClass: weblogic-sample-storage-class
Status: Bound
Claim: default/weblogic-sample-pvc
Reclaim Policy: Retain
Access Modes: RWX
Capacity: 10Gi
Message:
Source:
Type: HostPath (bare host directory volume)
Path: /scratch/k8s_dir
HostPathType:
Events: <none>
このコマンドを使用して、PersistentVolumeClaimが作成されたことを確認できます:
$ kubectl describe pvc weblogic-sample-pvc
Name: weblogic-sample-pvc
Namespace: default
StorageClass: weblogic-sample-storage-class
Status: Bound
Volume: weblogic-sample-pv
Annotations: pv.kubernetes.io/bind-completed=yes
pv.kubernetes.io/bound-by-controller=yes
Finalizers: []
Capacity: 10Gi
Access Modes: RWX
Events: <none>