3.4. クラスタリング


3.4.1. JGroups 検出メカニズムの設定

OpenShift でのクラスタリングは、Kubernetes または DNS の 2 つの検出メカニズムのいずれかによって実現されます。以下を設定できます。

  • <kubernetes.KUBE_PING/> または <dns.DNS_PING/> 要素を使用して、standalone-openshift.xml 設定ファイル内で JGroups プロトコルスタックを直接設定することにより、
  • または、dns.DNS_PING または kubernetes.KUBE_PING に設定できる JGROUPS_PING_PROTOCOL 環境変数を指定します。

OpenShift 4.x テンプレート は、デフォルトでデュアルスタック設定のクラスターを有効にするために、spec.ipFamilyPolicy フィールドを PreferDualStack に設定してdns.DNS_PING メカニズムを使用するように設定されています。ただし、JGROUPS_PING_PROTOCOL 環境変数に値が指定されていない場合、kubernetes.KUBE_PING がイメージで使用されるデフォルトのオプションです。

3.4.1.1. single-stack 設定のクラスターでの DNS_PING の設定

DNS_PINGIPv4 or IPv6シングルスタッククラスター で機能するには、次の手順を実行する必要があります。

  1. OPENSHIFT_DNS_PING_SERVICE_NAME 環境変数を、クラスターの ping サービスの名前に設定する必要があります。設定していない場合には、サーバーは単一ノードのクラスター (ノードが 1 つのクラスター) のように機能します。
  2. OPENSHIFT_DNS_PING_SERVICE_PORT 環境変数を、ping サービスが公開されるポート番号に設定する必要があります。DNS_PING プロトコルは SRV レコードからポートを識別しようとしますが、ポートを識別できない場合、この変数はデフォルトで 8888 になります。
  3. ping ポートを公開する ping サービスは定義する必要があります。このサービスはヘッドレス (ClusterIP=None) で、以下の条件を満たす必要があります。

    1. ポートは、ポート検出が機能するように、名前を指定する必要があります。
    2. このサービスの spec.publishNotReadyAddresses フィールドは "true" に設定する必要があります。このブール値の設定を省略すると、各ノードは起動時に独自の 1 つのクラスターを形成し、起動後にそのクラスターを他のノードのクラスターにマージします (他のノードは起動するまで検出されないため)。

single-stack (IPv4 または IPv6) クラスター上の DNS_PING で使用する ping サービスの定義例

kind: Service
apiVersion: v1
spec:
    clusterIP: None
    ipFamilyPolicy: SingleStack
    ports:
    - name: ping
      port: 8888
    publishNotReadyAddresses: true
    selector:
        deploymentConfig: sso
metadata:
    name: sso-ping
    annotations:
        description: "The JGroups ping port for clustering."

3.4.1.2. dual-stack 設定のクラスターでの DNS_PING の設定

さらに、IPv4 と IPv6 の両方のアドレスファミリーをサポートする デュアルネットワーククラスター でも DNS_PING が機能するには、クラスターの ping サービスの spec.ipFamilyPolicy フィールドを PreferDualStack または RequireDualStack に設定する必要があります。この設定により、コントロールプレーンは、dual-stack が設定されているクラスター上の ping サービスに IPv4 と IPv6 の両方のクラスター IP アドレスを割り当て、IPv4 と IPv6 の両方の IP アドレスの逆引き DNS ルックアップが適切に機能するようにし、対応する DNS SRV レコードを作成します。以下に示すように、ヘッドレスサービスに ping を実行します。

PreferDualStack と一致する spec.ipFamilyPolicy を使用した dual-stack configured クラスター上の ping サービス DNS SRV レコードの例

$ host -t SRV "${OPENSHIFT_DNS_PING_SERVICE_NAME}"
sso-ping.dual-stack-demo.svc.cluster.local has SRV record 0 50 8888 10-128-0-239.sso-ping.dual-stack-demo.svc.cluster.local.
sso-ping.dual-stack-demo.svc.cluster.local has SRV record 0 50 8888 fd01-0-0-1--b8.sso-ping.dual-stack-demo.svc.cluster.local.

dual-stack (IPv4 および IPv6) クラスター上の DNS_PING で使用する ping サービスの定義例

kind: Service
apiVersion: v1
spec:
    clusterIP: None
    ipFamilyPolicy: PreferDualStack
    ports:
    - name: ping
      port: 8888
    publishNotReadyAddresses: true
    selector:
        deploymentConfig: sso
metadata:
    name: sso-ping
    annotations:
        description: "The JGroups ping port for clustering."

3.4.1.3. KUBE_PING の設定

KUBE_PING を機能させるには以下の手順を実行する必要があります。

  1. KUBERNETES_NAMESPACE 環境変数を設定する必要があります。設定していない場合には、サーバーは単一ノードのクラスター (ノードが 1 つのクラスター) のように機能します。
  2. KUBERNETES_LABELS 環境変数を設定する必要があります。設定されていない場合、アプリケーションの外部の Pod は (名前空間内にある場合でも) 参加しようとします。
  3. Kubernetes の REST API にアクセスできるようにするには、Pod が実行されているサービスアカウントに対して承認を行う必要があります。コマンドラインで認可を付与します。次のポリシーコマンドの例を参照してください。

例3.1 policy コマンド

myproject の namespace における default のサービスアカウントの使用:

oc policy add-role-to-user view system:serviceaccount:myproject:default -n myproject

myproject の namespace における eap-service-account の使用:

oc policy add-role-to-user view system:serviceaccount:myproject:sso-service-account -n myproject
注記

kubernetes.KUBE_PING 検出メカニズムはクラスターに追加の ping サービスを必要としないため、シングルスタック設定クラスターとデュアルスタック設定クラスターの両方で前述の手順を使用して機能します。

以下については、JBoss EAP for OpenShift ドキュメントの専用セクションを参照してください。

Red Hat logoGithubRedditYoutubeTwitter

詳細情報

試用、購入および販売

コミュニティー

Red Hat ドキュメントについて

Red Hat をお使いのお客様が、信頼できるコンテンツが含まれている製品やサービスを活用することで、イノベーションを行い、目標を達成できるようにします。 最新の更新を見る.

多様性を受け入れるオープンソースの強化

Red Hat では、コード、ドキュメント、Web プロパティーにおける配慮に欠ける用語の置き換えに取り組んでいます。このような変更は、段階的に実施される予定です。詳細情報: Red Hat ブログ.

会社概要

Red Hat は、企業がコアとなるデータセンターからネットワークエッジに至るまで、各種プラットフォームや環境全体で作業を簡素化できるように、強化されたソリューションを提供しています。

© 2024 Red Hat, Inc.