マルチアーキテクチャKubernetesクラスタでのデプロイについて
Kubernetesは、単一のアーキテクチャとマルチアーキテクチャ・クラスタをサポートしています。単一アーキテクチャ・クラスタは、クラスタ内のノードが同じコンピュータ命令セットを使用するクラスタです。たとえば、単一アーキテクチャ・クラスタは、すべてのarm64
ノードまたはすべてのamd64
ノードで構成します。マルチアーキテクチャ・クラスタは、クラスタ内のノードが異なるコンピュータ命令セットである可能性があるKubernetesクラスタです。たとえば、マルチアーキテクチャ・クラスタは、amd64
ノードとarm64
ノードの両方で構成できます。
TimesTenオペレータは、単一および複数アーキテクチャのKubernetesクラスタで実行されます。TimesTenオペレータによって作成されたポッドは、TimesTenオペレータと同じノード・タイプのノードで実行されます。たとえば、TimesTenオペレータがarm64
ノードで実行されている場合、このTimesTenオペレータによって作成されたポッドもarm64
ノードで実行されます。
TimesTenオペレータはネームスペース・スコープ指定であるため、arm64
ノードの1つのネームスペースにTimesTenオペレータをデプロイでき(arm64
ノードでTimesTenをプロビジョニングおよび管理できます)、amd64
ノードの別のネームスペースに2番目のTimesTenオペレータをデプロイできます(amd64
ノードでTimesTenをプロビジョニングおよび管理できます)。
-
arm64
ノードで実行されるTimesTenオペレータは、TimesTenClassicオブジェクトをサポートしますが、TimesTenScaleoutオブジェクトはサポートしません。 -
amd64
ノードで実行されるTimesTenオペレータは、TimesTenClassicオブジェクトおよびTimesTenScaleoutオブジェクトをサポートします。
operator.yaml
YAMLマニフェスト・ファイルとttoperator
Helmチャートの両方のaffinity
設定は、オペレータとそれが管理するオブジェクトがarm64
ノードとamd64
ノードのどちらを使用するかを制御します。たとえば、operator.yaml
ファイルのaffinity
セクションのスニペットを次に示します。
# An example affinity definition; this pod will only be assigned to a node
# running on amd64 (the default)
#
# affinity:
# nodeAffinity:
# requiredDuringSchedulingIgnoredDuringExecution:
# nodeSelectorTerms:
# - matchExpressions:
# - key: "kubernetes.io/arch"
# operator: In
# values: ["amd64"]
...
affinity
セクションを変更する必要はありません。ただし、マルチアーキテクチャ・クラスタを使用している場合は、特定のアーキテクチャにTimesTenオペレータをデプロイするようにKubernetesに指示する必要があります。手順は次のとおりです:
-
.affinity.nodeAffinity
セクションのコメントを解除します。 -
key
の値が"kubernetes-io/arch"
である.affinity.nodeAffinity.nodeSelectorTerms
セクションで、values
データ項目に"amd64"
または"arm64"
を指定します。
arm64
ノードにデプロイするようにKubernetesに指示するには、次を実行します:# An example affinity definition; this pod will only be assigned to a node
# running on amd64 (the default)
#
affinity:
nodeAffinity:
requiredDuringSchedulingIgnoredDuringExecution:
nodeSelectorTerms:
- matchExpressions:
- key: "kubernetes.io/arch"
operator: In
values: ["arm64"]
...
values
データ項目の有効な値は次のとおりです:
-
"amd64"
:amd64
ノードで実行するTimesTenオペレータに使用します。 -
"arm64"
:arm64
ノードで実行するTimesTenオペレータに使用します。