8.3.2. glusterblock-provisioner Pod のアップグレード
glusterblock-provisioner Pod をアップグレードするには、以下の手順を実行します。
以下のコマンドを実行して、古い glusterblock プロビジョナーテンプレートを削除します。
# oc delete templates glusterblock-provisionerglusterblock プロビジョナーテンプレートを作成します。以下は例になります。
# oc create -f /usr/share/ansible/openshift-ansible/roles/openshift_storage_glusterfs/files/glusterblock-provisioner.yml template.template.openshift.io/glusterblock-provisioner createdglusterblock-provisoner Pod がすでに存在する場合は、以下のコマンドを実行してこれを削除します。
# oc delete dc <gluster-block-registry-dc>以下は例になります。
# oc delete dc glusterblock-registry-provisioner-dcOCP のバージョンに応じて、glusterblock-provisioner テンプレートを編集して IMAGE_NAME、IMAGE_VERSION および NAMESPACE を変更します。
# oc get templates NAME DESCRIPTION PARAMETERS OBJECTS glusterblock- glusterblock 3 (2 blank) 4 provisioner provisioner template heketi Heketi service 7 (3 blank) 3 deployment templateテンプレートに、2 つの別個のパラメーターとして IMAGE_NAME と IMAGE_VERSION がある場合、以下のように glusterblock-provisioner テンプレートを更新します。
oc edit template glusterblock-provisioner - displayName: glusterblock provisioner container image name name: IMAGE_NAME required: true value: registry.redhat.io/rhgs3/rhgs-gluster-block-prov-rhel7 - displayName: glusterblock provisioner container image version name: IMAGE_VERSION required: true value: v3.11.8 - description: The namespace in which these resources are being created displayName: glusterblock provisioner namespace name: NAMESPACE required: true value: glusterfs-registry - description: A unique name to identify which heketi service manages this cluster, useful for running multiple heketi instances displayName: GlusterFS cluster name name: CLUSTER_NAME value: registryアップグレードするバージョンに応じて、
IMAGE_VERSIONの下のvalueをv3.11.5またはv3.11.8に置き換えます。- displayName: glusterblock provisioner container image version name: IMAGE_VERSION required: true value: v3.11.8テンプレートに、パラメーターとして IMAGE_NAME しかない場合、以下のように glusterblock-provisioner テンプレートを更新します。
# oc edit template glusterblock-provisioner - displayName: glusterblock provisioner container image name name: IMAGE_NAME required: true value: registry.redhat.io/rhgs3/rhgs-gluster-block-prov-rhel7:v3.11.8 - description: The namespace in which these resources are being created - displayName: glusterblock provisioner namespace name: NAMESPACE required: true value: glusterfs-registry - description: A unique name to identify which heketi service manages this cluster, useful for running multiple heketi instances displayName: GlusterFS cluster name name: CLUSTER_NAME value: registryアップグレードするバージョンに応じて、
IMAGE_NAMEの下のvalueをv3.11.5またはv3.11.8に置き換えます。- displayName: glusterblock provisioner container image name name: IMAGE_NAME required: true value: rhgs3/rhgs-gluster-block-prov-rhel7:v3.11.8古い Pod から以下のリソースを削除します。
# oc delete clusterroles.authorization.openshift.io glusterblock-provisioner-runner # oc delete serviceaccounts glusterblock-registry-provisioner # oc delete clusterrolebindings.authorization.openshift.io glusterblock-registry-provisioneroc process を実行する前に、適切な
provisioner名を決定してください。複数のgluster block provisionerがクラスターで実行されている場合、名前は他のすべてのprovisionersとは異なる必要があります。
以下に例を示します。
-
2 つ以上のプロビジョナーがある場合、名前は
gluster.org/glusterblock-<namespace>である必要があります。ここで、namespace はプロビジョナーがデプロイされている namespace に置き換えられます。 -
3.11.8 より前にインストールされているプロビジョナーが 1 つしかない場合は、
gluster.org/glusterblockで十分です。現在使用中の名前に一意の namespace サフィックスがある場合は、既存の名前を再利用します。
-
2 つ以上のプロビジョナーがある場合、名前は
テンプレートの編集後に以下のコマンドを実行して、デプロイメント設定を作成します。
# oc process glusterblock-provisioner -o yaml | oc create -f -以下は例になります。
# oc process glusterblock-provisioner -o yaml | oc create -f - clusterrole.authorization.openshift.io/glusterblock-provisioner-runner created serviceaccount/glusterblock-registry-provisioner created clusterrolebinding.authorization.openshift.io/glusterblock-registry-provisioner created deploymentconfig.apps.openshift.io/glusterblock-registry-provisioner-dc createdgluster ブロックボリュームプロビジョニングを使用するすべてのストレージクラスは、クラスター内のプロビジョナー名のいずれかに完全に一致する必要があります。指定された
namespaceで、block provisionerを参照するストレージクラスの一覧を確認するには、以下のコマンドを実行します。# oc get sc -o custom-columns=NAME:.metadata.name,PROV:.provisioner,RSNS:.parameters.restsecretnamespace | grep 'gluster.org/glusterblock' | grep <namespace>例:
# oc get sc -o custom-columns=NAME:.metadata.name,PROV:.provisioner,RSNS:.parameters.restsecretnamespace | grep 'gluster.org/glusterblock' | grep infra-storage glusterfs-registry-block gluster.org/glusterblock infra-storage各ストレージクラス
provisioner nameを確認します。そのnamespaceに設定されたblock provisioner name名に一致しない場合は、これを更新する必要があります。block provisioner名がconfigured provisioner名とすでに一致する場合は、何もする必要はありません。上記で生成された一覧を使用して、プロビジョナー名を更新する必要のあるストレージクラス名をすべて含めます。
この一覧のすべてのストレージクラスについて、以下を実行します。# oc get sc -o yaml <storageclass> > storageclass-to-edit.yaml # oc delete sc <storageclass> # sed 's,gluster.org/glusterblock$,gluster.org/glusterblock-<namespace>,' storageclass-to-edit.yaml | oc create -f -例:
# oc get sc -o yaml glusterfs-registry-block > storageclass-to-edit.yaml # oc delete sc glusterfs-registry-block storageclass.storage.k8s.io "glusterfs-registry-block" deleted # sed 's,gluster.org/glusterblock$,gluster.org/glusterblock-infra-storage,' storageclass-to-edit.yaml | oc create -f - storageclass.storage.k8s.io/glusterfs-registry-block created