ネットワーク Operator
OpenShift Dedicated でのネットワーク固有の Operator の管理
概要
第1章 OpenShift Dedicated の DNS Operator リンクのコピーリンクがクリップボードにコピーされました!
OpenShift Dedicated の DNS Operator は、CoreDNS インスタンスをデプロイおよび管理して、クラスター内の Pod に名前解決サービスを提供し、DNS ベースの Kubernetes Service 検出を有効にし、内部の cluster.local 名を解決します。
この Operator は、デフォルトで OpenShift Dedicated クラスターにインストールされています。
1.1. DNS 転送の使用 リンクのコピーリンクがクリップボードにコピーされました!
クラスターの DNS 転送サーバーとアップストリームリゾルバーを設定します。
次の方法で、DNS 転送を使用して /etc/resolv.conf ファイル内のデフォルトの転送設定をオーバーライドできます。
すべてのゾーンにネームサーバー (
spec.servers) を指定します。転送されるゾーンが OpenShift Dedicated によって管理される Ingress ドメインである場合、アップストリームネームサーバーがドメインについて認証される必要があります。重要少なくとも 1 つのゾーンを指定する必要があります。そうしないと、クラスターの機能が失われる可能性があります。
-
アップストリーム DNS サーバーのリスト (
spec.upstreamResolvers) を指定します。 - デフォルトの転送ポリシーを変更します。
デフォルトドメインの DNS 転送設定には、/etc/resolv.conf ファイルおよびアップストリーム DNS サーバーで指定されたデフォルトのサーバーの両方を設定できます。
Pod の作成時、Kubernetes はノード上に存在する /etc/resolv.conf ファイルを使用します。ホストノード上の /etc/resolv.conf ファイルを変更しても、その変更はコンテナー内に存在する /etc/resolv.conf ファイルには反映されません。変更を有効にするには、コンテナーを再作成する必要があります。
手順
defaultという名前の DNS Operator オブジェクトを変更します。$ oc edit dns.operator/default上記のコマンドを実行すると、Operator が、
spec.serversに基づく追加のサーバー設定ブロックを使用してdns-defaultという名前の config map を作成および更新します。重要zonesパラメーターの値を指定する場合は、イントラネットなどの特定のゾーンにのみ転送してください。少なくとも 1 つのゾーンを指定する必要があります。そうしないと、クラスターの機能が失われる可能性があります。クエリーに一致するゾーンがサーバーにない場合には、名前解決はアップストリーム DNS サーバーにフォールバックします。
DNS 転送の設定
apiVersion: operator.openshift.io/v1 kind: DNS metadata: name: default spec: cache: negativeTTL: 0s positiveTTL: 0s logLevel: Normal nodePlacement: {} operatorLogLevel: Normal servers: - name: example-server zones: - example.com forwardPlugin: policy: Random upstreams: - 1.1.1.1 - 2.2.2.2:5353 upstreamResolvers: policy: Random protocolStrategy: "" transportConfig: {} upstreams: - type: SystemResolvConf - type: Network address: 1.2.3.4 port: 53 status: clusterDomain: cluster.local clusterIP: x.y.z.10 conditions: ...各項目の説明:
spec.servers.name-
rfc6335サービス名の構文に準拠する必要があります。 仕様サーバーゾーン-
RFC1123 のサブドメイン構文に準拠する必要があります。クラスタードメインcluster.localはゾーンに対して無効です。 spec.servers.forwardPlugin.policy-
上流選択ポリシーを指定します。デフォルトは
Randomです。指定可能な値はRoundRobinとSequentialです。 spec.servers.forwardPlugin.upstreams-
forwardPluginごとに 15 個を超えるアップストリームエントリーを指定しないでください。 spec.upstreamResolvers.upstreams-
デフォルトの転送ポリシーを上書きし、デフォルトドメインの DNS 解決を指定された DNS リゾルバー (アップストリームリゾルバー) に転送するために、
upstreamResolvers を指定します。カスタムのアップストリームリゾルバーが必要な場合にこのフィールドを使用できます。それ以外の場合は、クエリーは/etc/resolv.confで宣言されているサーバーを使用します。 spec.upstreamResolvers.policy-
上流の選択順序を指定します。デフォルトは
Sequentialです。許可される値はRandom、RoundRobin、Sequentialです。 spec.upstreamResolvers.protocolStrategy-
リクエストが UDP を使用している場合でも、アップストリーム DNS リクエストに使用するプロトコルとして TCP を指定すると、強制的に
TCP が使用されます。有効な値はTCPと省略された値です。省略すると、デフォルト (通常は元のクライアント要求のプロトコル) が選択されます。 spec.upstreamResolvers.transportConfig- DNS リクエストをアップストリームのリゾルバーに転送する際に使用するトランスポートタイプ、サーバー名、およびオプションのカスタム CA または CA バンドルを指定します。
spec.upstreamResolvers.upstreams.type-
2 種類の
アップストリームを指定します:SystemResolvConfまたはNetwork。SystemResolvConfで、アップストリームが/etc/resolv.confを使用するように設定して、NetworkでNetworkresolverを定義します。1 つまたは両方を指定できます。 spec.upstreamResolvers.upstreams.address-
タイプが
ネットワークの場合、有効な IPv4 または IPv6 アドレスを指定します。 spec.upstreamResolvers.upstreams.port-
ポート番号を指定するためのオプションフィールドを指定します。有効な値は
1-65535です。省略した場合はデフォルト値として 853 が使用されます。
第2章 OpenShift Dedicated の Ingress Operator リンクのコピーリンクがクリップボードにコピーされました!
Ingress Operator は IngressController API を実装し、OpenShift Dedicated クラスターサービスへの外部アクセスを可能にするコンポーネントです。
この Operator は、デフォルトで OpenShift Dedicated クラスターにインストールされています。
2.1. OpenShift Dedicated の Ingress Operator リンクのコピーリンクがクリップボードにコピーされました!
OpenShift Dedicated クラスターの作成時に、クラスターで実行される Pod およびサービスにはそれぞれ独自の IP アドレスが割り当てられます。IP アドレスは、近くで実行されている他の Pod やサービスからアクセスできますが、外部クライアントの外部からはアクセスできません。
Ingress Operator を使用すると、ルーティングを処理する 1 つ以上の HAProxy ベースの Ingress Controller をデプロイおよび管理することにより、外部クライアントがサービスにアクセスできるようになります。
Red Hat の Site Reliability Engineers (SRE) は、OpenShift Dedicated クラスターの Ingress Operator を管理します。Ingress Operator の設定を変更することはできませんが、デフォルトの Ingress コントローラーの設定、ステータス、およびログおよび Ingress Operator ステータスを表示できます。
2.2. デフォルト Ingress Controller の表示 リンクのコピーリンクがクリップボードにコピーされました!
Ingress Operator は OpenShift Dedicated の中核となる機能であり、追加の設定なしに有効にできます。
すべての新規 OpenShift Dedicated インストールには、default という名前の ingresscontroller があります。これは、追加の Ingress Controller で補足できます。デフォルトの ingresscontroller が削除される場合、Ingress Operator は 1 分以内にこれを自動的に再作成します。
手順
デフォルト Ingress Controller を表示します。
$ oc describe --namespace=openshift-ingress-operator ingresscontroller/default
2.3. Ingress Operator ステータスの表示 リンクのコピーリンクがクリップボードにコピーされました!
Ingress Operator のステータスを表示し、検査することができます。
手順
Ingress Operator ステータスを表示します。
$ oc describe clusteroperators/ingress
2.4. Ingress Controller ログの表示 リンクのコピーリンクがクリップボードにコピーされました!
Ingress Controller ログを表示できます。
手順
Ingress Controller ログを表示します。
$ oc logs --namespace=openshift-ingress-operator deployments/ingress-operator -c <container_name>
2.5. Ingress Controller ステータスの表示 リンクのコピーリンクがクリップボードにコピーされました!
特定の Ingress Controller のステータスを表示できます。
手順
Ingress Controller のステータスを表示します。
$ oc describe --namespace=openshift-ingress-operator ingresscontroller/<name>
2.6. デフォルトの Ingress コントローラー機能の管理 リンクのコピーリンクがクリップボードにコピーされました!
次の表は、Ingress Operator によって管理される default Ingress Controller のコンポーネントと、Red Hat Site Reliability Engineering (SRE) が OpenShift Dedicated クラスターでこのコンポーネントを管理するかどうかの詳細を示しています。
| Ingress コンポーネント | 管理 | デフォルト設定? |
|---|---|---|
| Ingress Controller のスケーリング | SRE | はい |
| Ingress Operator のスレッド数 | SRE | はい |
| Ingress Controller のアクセスロギング | SRE | はい |
| Ingress Controller のシャード化 | SRE | はい |
| Ingress Controller ルートの受付ポリシー | SRE | はい |
| Ingress Controller のワイルドカードルート | SRE | はい |
| Ingress Controller X-Forwarded ヘッダー | SRE | はい |
| Ingress Controller ルートの圧縮 | SRE | はい |
2.7. クラスター作成時に、デフォルトの Ingress のネームスペース除外を設定します。 リンクのコピーリンクがクリップボードにコピーされました!
OpenShift Dedicated クラスターを作成する際に、名前空間ラベルセレクターを指定することで、それらのラベルに一致する名前空間をデフォルトの アプリケーション Ingress から除外することができます。これにより、機密データや内部サービスを含む名前空間など、デフォルトの Ingress を介してワークロードをホストする名前空間を除外できます。
必要なプラットフォームルートをホストする名前空間 (たとえば、openshift-console や openshift-authentication) は除外しないでください。これらを除外すると、Web コンソール、ダウンロード、または OAuth フローが機能しなくなる可能性があります。
2.7.1. CLI でクラスターを作成する際に、デフォルトの Ingress のネームスペース除外を設定します。 リンクのコピーリンクがクリップボードにコピーされました!
クラスター作成時に、ocm CLI を使用してデフォルトの Ingress に対する名前空間除外情報を渡す。
前提条件
-
ocmCLI をインストールし、Red Hat OpenShift Cluster Manager でクラスターを作成できる認証情報を使用してログインしました。 -
ocm create clusterに非対話モードを使用しています。対話モードの場合は、お使いのOCMバージョンで利用可能な場合は、イングレス設定のプロンプトを使用してください。
手順
-
`ocm create cluster -h`を実行し、お使いのOCMバージョンに`--exclude-namespace-selector`フラグが含まれていることを確認してください。 クラウドプロバイダーとサブスクリプションモデルに必要なパラメーターを指定して、
OCM のクラスター作成コマンドを作成してください。以下の例は、Ingress に関連する断片のみを示しています。残りのフラグは、ご使用の環境に必要な値に置き換えてください。
$ ocm create cluster <cluster_name> \ --provider=<aws_or_gcp> \ <other_required_flags> \ --default-ingress-excluded-namespace-selectors '<key>=<value>,<key2>=<value2>'各項目の説明:
<cluster_name>- クラスター名を指定します。
--provider=<aws_or_gcp>- クラウドプロバイダーを指定します。
< その他の必須フラグ >- リージョン、バージョン、Customer Cloud Subscription (CCS) 設定、課金フラグなど、プラットフォームのクラスター作成ドキュメントに記載されている必須パラメーター。
--default-Ingress-excluded-namespace-selectors-
デフォルトアプリケーション Ingress から一致する名前空間を除外するラベルセレクターを指定します。このサービスはこれらの除外事項を検証します。
<key>=<value>をラベルに置き換えてください。等号の周りにスペースを入れないでください。
検証
クラスターが
準備完了状態になったら、イングレス設定を確認し、デフォルトのイングレスオブジェクトを調べて、設定されている除外データを確認します。$ ocm list ingress -c <cluster_name>
2.7.2. CLI でクラスターのデフォルト Ingress の名前空間除外を変更する リンクのコピーリンクがクリップボードにコピーされました!
ocm CLI を使用して、OpenShift Dedicated クラスターへのデフォルトの Ingress に対する名前空間除外を渡します。
前提条件
-
ocmCLI をインストールし、Red Hat OpenShift Cluster Manager でクラスターを変更できる認証情報を使用してログインしました。 - OpenShift Dedicated クラスターの設定が完了しました。
手順
クラスターに名前空間除外を渡すには、次のコマンドを実行します。
$ ocm edit ingress <ingress_name> -c <cluster_id> \ --excluded-namespace-selectors "key1=val1,key2=val2,key1=val3,foo=bar" \ <cluster_name>各項目の説明:
<ingress_name>- イングレス名を指定します。
<cluster_id>- クラスター ID を指定します。
--excluded-namespace-selectors "key1=val1,key2=val2,key1=val3,foo=bar"-
デフォルトアプリケーション Ingress から一致する名前空間を除外するラベルセレクターを指定します。このサービスはこれらの除外事項を検証します。
<key>=<value>をラベルに置き換えてください。等号の周りにスペースを入れないでください。 <cluster_name>- クラスター名を指定します。
2.7.3. Red Hat OpenShift Cluster Manager でクラスターを作成する際に、デフォルトの Ingress のネームスペース除外を設定します。 リンクのコピーリンクがクリップボードにコピーされました!
OpenShift Cluster Manager で OpenShift Dedicated クラスターを作成する際に、指定されたラベルに一致する名前空間がデフォルトの アプリケーション Ingress から除外されるように、名前空間ラベルセレクターを指定します。
手順
ネットワーク 画面で、アプリケーション受信設定 の下にある カスタム設定 を選択します。
注記すべてのカスタム設定は任意です。
-
ルートセレクター に、このイングレスが公開するルートを制限するために
、キーと値のペアをコンマで区切ったリストを入力します。他の選択内容に基づいてすべてのルートが引き続き有効となる場合は、この欄を空欄のままにしてください。 - 除外する名前空間 には、この Ingress を使用してはならない名前空間名をコンマ区切りで入力します。
名前空間セレクターを除外する で、1 つ以上のラベルセレクターを指定します。各セレクターについて、ラベルキーと、コンマ区切りのラベル値のリストを指定してください。デフォルトのイングレスコントローラーは、設定されたセレクターのいずれかに該当するラベルを持つ名前空間には適用されません。
重要コンマの周りにスペースを入れないでください。たとえば、
finance,HR,legalと入力し、finance、HR、legalとは入力しないでください。- 名前空間がホスト名を共有する場合、ルートの許可に関する 名前空間所有権ポリシー を設定します。たとえば、制限的な許可の場合は 厳格を 選択します。
ワイルドカードポリシー を設定することで、ルートホスト名におけるワイルドカードパターンを許可または禁止できます。たとえば、禁止 を選択すると、ワイルドカードホストルートがブロックされます。
カスタムアプリケーションの Ingress 設定の詳細は、各設定に用意されている情報アイコンをクリックしてください。
2.7.4. Red Hat OpenShift Cluster Manager でクラスターの Ingress のネームスペース除外を変更する リンクのコピーリンクがクリップボードにコピーされました!
OpenShift Cluster Manager で設定済みの OpenShift Dedicated クラスター上のデフォルト アプリケーション Ingress から、指定されたラベルに一致する名前空間を除外するように、名前空間ラベルセレクターを指定します。
手順
- OpenShift Cluster Manager から、クラスターリスト ページに移動し、名前空間の除外を設定するクラスターを選択します。
- 選択したクラスターで、ネットワーク タブを選択します。
アプリケーション Ingress を編集 を選択します。
注記すべてのカスタム設定は任意です。
-
ルートセレクター に、このイングレスが公開するルートを制限するために
、キーと値のペアをコンマで区切ったリストを入力します。他の選択内容に基づいてすべてのルートが引き続き有効となる場合は、この欄を空欄のままにしてください。 - 除外する名前空間 には、この Ingress を使用してはならない名前空間名をコンマ区切りで入力します。
名前空間セレクターを除外する で、1 つ以上のラベルセレクターを指定します。各セレクターについて、ラベルキーと、コンマ区切りのラベル値のリストを指定してください。デフォルトのイングレスコントローラーは、設定されたセレクターのいずれかに該当するラベルを持つ名前空間には適用されません。
重要コンマの周りにスペースを入れないでください。たとえば、
finance,HR,legalと入力し、finance、HR、legalとは入力しないでください。- 名前空間がホスト名を共有する場合、ルートの許可に関する 名前空間所有権ポリシー を設定します。たとえば、制限的な許可の場合は 厳格を 選択します。
ワイルドカードポリシー を設定することで、ルートホスト名におけるワイルドカードパターンを許可または禁止できます。たとえば、禁止 を選択すると、ワイルドカードホストルートがブロックされます。
カスタムアプリケーションの Ingress 設定の詳細は、各設定に用意されている情報アイコンをクリックしてください。
- 変更 Ingress を反映させるには、保存 を選択してください。