第11章 Data Grid for OpenShift クラスターの設定
11.1. クラスター検出の設定 リンクのコピーリンクがクリップボードにコピーされました!
Data Grid for OpenShift は、クラスタリングに Kubernetes または DNS 検出メカニズムのいずれかを使用できます。これらの検出メカニズムにより、イメージはクラスターに自動的に参加できます。
Data Grid for OpenShift テンプレートとサービスはデフォルトで DNS を使用します。イメージまたはカスタムテンプレートから Data Grid for OpenShift を直接デプロイする場合には、適切な検出メカニズムを設定する必要があります。
11.1.1. DNS_PING の設定 リンクのコピーリンクがクリップボードにコピーされました!
クラスタリングに DNS 検出メカニズムを設定するには、以下の手順を実施します。
openshift.DNS_PINGをJGROUPS_PING_PROTOCOL環境変数の値として設定します。JGROUPS_PING_PROTOCOL=openshift.DNS_PING
JGROUPS_PING_PROTOCOL=openshift.DNS_PINGCopy to Clipboard Copied! Toggle word wrap Toggle overflow クラスターの ping サービスの名前を
OPENSHIFT_DNS_PING_SERVICE_NAME環境変数の値として指定します。OPENSHIFT_DNS_PING_SERVICE_NAME=${PING_SERVICE_NAME}OPENSHIFT_DNS_PING_SERVICE_NAME=${PING_SERVICE_NAME}Copy to Clipboard Copied! Toggle word wrap Toggle overflow ping サービスを
OPENSHIFT_DNS_PING_SERVICE_PORT環境変数の値として公開するポート番号を指定します。デフォルト値は8888です。OPENSHIFT_DNS_PING_SERVICE_PORT=${PING_SERVICE_NAME}OPENSHIFT_DNS_PING_SERVICE_PORT=${PING_SERVICE_NAME}Copy to Clipboard Copied! Toggle word wrap Toggle overflow 以下の例のように、ping ポートを公開する ping サービスを定義します。
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 重要clusterIP: Noneを設定して、サービスがヘッドレスになるようにする必要があります。同様に、ping ポートの名前を指定して、service.alpha.kubernetes.io/tolerate-unready-endpoints: 'true'アノテーションを追加する必要があります。
11.1.2. KUBE_PING の設定 リンクのコピーリンクがクリップボードにコピーされました!
クラスタリングに Kubernetes 検出メカニズムを設定するには、以下の手順を実施します。
openshift.KUBE_PINGをJGROUPS_PING_PROTOCOL環境変数の値として設定します。JGROUPS_PING_PROTOCOL=openshift.KUBE_PING
JGROUPS_PING_PROTOCOL=openshift.KUBE_PINGCopy to Clipboard Copied! Toggle word wrap Toggle overflow OpenShift プロジェクト名を
OPENSHIFT_KUBE_PING_NAMESPACE環境変数の値として指定します。この変数を設定しない場合には、サーバーは単一ノードのクラスターのように動作します。OPENSHIFT_KUBE_PING_NAMESPACE=${PING_NAMESPACE}OPENSHIFT_KUBE_PING_NAMESPACE=${PING_NAMESPACE}Copy to Clipboard Copied! Toggle word wrap Toggle overflow OPENSHIFT_KUBE_PING_LABELS環境変数でクラスターラベルを指定します。この変数を設定しない場合には、アプリケーションの外部ではあるが、同じ namespace 内にある Pod が参加使用とします。OPENSHIFT_KUBE_PING_LABELS=labelKey=labelValue
OPENSHIFT_KUBE_PING_LABELS=labelKey=labelValueCopy to Clipboard Copied! Toggle word wrap Toggle overflow Kubernetes REST API にアクセスできるように、Pod が実行されているサービスアカウントに認可を付与します。たとえば、以下のように datagrid-service-account に認可を付与します。
oc policy add-role-to-user view \ system:serviceaccount:$(oc project -q):datagrid-service-account \ -n $(oc project -q)
oc policy add-role-to-user view \ system:serviceaccount:$(oc project -q):datagrid-service-account \ -n $(oc project -q)Copy to Clipboard Copied! Toggle word wrap Toggle overflow ポート
8888が Pod コンテナーの ping ポートとして定義されていることを確認します。ports: - containerPort: 8888 name: ping protocol: TCPports: - containerPort: 8888 name: ping protocol: TCPCopy to Clipboard Copied! Toggle word wrap Toggle overflow