このサンプル・スクリプトでは、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>