2.4. API サーバーをプライベートに制限する
クラスターを Amazon Web Services (AWS) または Microsoft Azure にデプロイした後に、プライベートゾーンのみを使用するように API サーバーを再設定することができます。
前提条件
-
OpenShift CLI (
oc
) がインストールされている。 -
admin
権限を持つユーザーとして Web コンソールにアクセスできること。
手順
AWS または Azure の Web ポータルまたはコンソールで、以下のアクションを実行します。
適切なロードバランサーコンポーネントを見つけ、削除します。
- AWS の場合は、外部ロードバランサーを削除します。プライベートゾーンの API DNS エントリーは、同一の設定を使用する内部ロードバランサーをすでに参照するため、内部ロードバランサーを変更する必要はありません。
-
Azure の場合、ロードバランサーの
api-internal
ルールを削除します。
-
パブリックゾーンの
api.$clustername.$yourdomain
DNS エントリーを削除します。
外部ロードバランサーを削除します。
重要以下の手順は、インストーラーによってプロビジョニングされるインフラストラクチャー (IPI) のクラスターでのみ実行できます。ユーザーによってプロビジョニングされるインフラストラクチャー (UPI) のクラスターの場合は、外部ロードバランサーを手動で削除するか、無効にする必要があります。
ターミナルで、クラスターマシンを一覧表示します。
$ oc get machine -n openshift-machine-api
出力例
NAME STATE TYPE REGION ZONE AGE lk4pj-master-0 running m4.xlarge us-east-1 us-east-1a 17m lk4pj-master-1 running m4.xlarge us-east-1 us-east-1b 17m lk4pj-master-2 running m4.xlarge us-east-1 us-east-1a 17m lk4pj-worker-us-east-1a-5fzfj running m4.xlarge us-east-1 us-east-1a 15m lk4pj-worker-us-east-1a-vbghs running m4.xlarge us-east-1 us-east-1a 15m lk4pj-worker-us-east-1b-zgpzg running m4.xlarge us-east-1 us-east-1b 15m
以下の手順で、名前に
master
が含まれるコントロールプレーンマシンを変更します。各コントロールプレーンマシンから外部ロードバランサーを削除します。
コントロールプレーンの
Machine
オブジェクトを編集し、外部ロードバランサーへの参照を削除します。$ oc edit machines -n openshift-machine-api <master_name> 1
- 1
- 変更するコントロールプレーン (またはマスター)
Machine
オブジェクトの名前を指定します。
以下の例でマークが付けられている外部ロードバランサーを記述する行を削除し、オブジェクト仕様を保存し、終了します。
... spec: providerSpec: value: ... loadBalancers: - name: lk4pj-ext 1 type: network 2 - name: lk4pj-int type: network
-
名前に
master
が含まれるマシンにこのプロセスを繰り返します。
2.4.1. Ingress Controller エンドポイント公開スコープの内部への設定
クラスター管理者がクラスターをプライベートに指定せずに新しいクラスターをインストールすると、scope
がExternal
に設定されたデフォルトの Ingress Controller が作成されます。クラスター管理者は、External
スコープの Ingress Controller をInternal
に変更できます。
前提条件
-
oc
CLI をインストールしていること。
手順
External
スコープの Ingress Controller をInternal
に変更するには、次のコマンドを入力します。$ oc -n openshift-ingress-operator patch ingresscontrollers/default --type=merge --patch='{"spec":{"endpointPublishingStrategy":{"type":"LoadBalancerService","loadBalancer":{"scope":"Internal"}}}}'
Ingress Controller のステータスを確認するには、次のコマンドを入力します。
$ oc -n openshift-ingress-operator get ingresscontrollers/default -o yaml
ステータス状態が
Progressing
の場合は、さらにアクションを実行する必要があるかどうかを示します。たとえば、ステータスの状態によっては、次のコマンドを入力して、サービスを削除する必要があることを示している可能性があります。$ oc -n openshift-ingress delete services/router-default
サービスを削除すると、Ingress Operator はサービスを
Internal
として再作成します。