1.4.7. Submariner のサービス検出の管理
Submariner がマネージドクラスターと同じ環境にデプロイされた後、マネージドクラスターセット内のクラスター全体で Pod とサービス間の安全な IP ルーティングのためにルートが設定されます。
1.4.7.1. Submariner のサービス検出の有効化 リンクのコピーリンクがクリップボードにコピーされました!
クラスターからのサービスをマネージドクラスターセット内の他のクラスターに表示および検出可能にするには、ServiceExport オブジェクトを作成する必要があります。ServiceExport オブジェクトでサービスをエクスポートすると、<service>.<namespace>.svc.clusterset.local 形式でサービスにアクセスできます。複数のクラスターが同じ名前で、同じ namespace からサービスをエクスポートすると、他のクラスターは、その複数のクラスターを 1 つの論理サービスとして認識します。
この例では、default の namespace で nginx サービスを使用しますが、Kubernetes の ClusterIP サービスまたはヘッドレスサービスを検出できます。
以下のコマンドを入力して、
ManagedClusterSetのマネージドクラスターにnginxサービスのインスタンスを適用します。oc -n default create deployment nginx --image=nginxinc/nginx-unprivileged:stable-alpine oc -n default expose deployment nginx --port=8080次のコマンドのような
subctlツールを使用してコマンドを入力し、ServiceExportエントリーを作成して、サービスをエクスポートします。subctl export service --namespace <service-namespace> <service-name>service-namespaceを、サービスが置かれた namespace の名前に置き換えます。この例では、defaultになります。service-nameを、エクスポートするサービスの名前に置き換えます。この例では、nginxになります。その他の使用可能なフラグの詳細は、Submariner ドキュメントの
exportを参照してください。別のマネージドクラスターから以下のコマンドを実行して、
nginxサービスにアクセスできることを確認します。oc -n default run --generator=run-pod/v1 tmp-shell --rm -i --tty --image quay.io/submariner/nettest -- /bin/bash curl nginx.default.svc.clusterset.local:8080
これで、nginx サービス検出が Submariner に対して設定されました。