This documentation is for a release that is no longer maintained
See documentation for the latest supported version 3 or the latest supported version 4.7.9. インストール後の RHOSP ネットワーク設定
インストール後に、OpenShift Container Platform の一部を Red Hat OpenStack Platform (RHOSP) クラスターに設定することができます。
7.9.1. Floating IP アドレスを使用したアプリケーションアクセスの設定
OpenShift Container Platform をインストールした後に、アプリケーションネットワークトラフィックを許可するように Red Hat OpenStack Platform (RHOSP) を設定します。
インストール中に、install-config.yaml
ファイルの platform.openstack.apiFloatingIP
および platform.openstack.ingressFloatingIP
に値を指定した場合、または inventory.yaml
Playbook の os_api_fip
および os_ingress_fip
に値を指定した場合は、この手順を実行する必要はありません。Floating IP アドレスはすでに設定されています。
前提条件
- OpenShift Container Platform クラスターがインストールされている必要があります。
- OpenShift Container Platform の RHOSP へのインストールに関するドキュメントで説明されているように、Floating IP アドレスが有効にされます。
手順
OpenShift Container Platform クラスターをインストールした後に、Floating IP アドレスを Ingress ポートに割り当てます。
ポートを表示します。
$ openstack port show <cluster_name>-<cluster_ID>-ingress-port
ポートを IP アドレスに接続します。
$ openstack floating ip set --port <ingress_port_ID> <apps_FIP>
*apps.
のワイルドカードA
レコードを DNS ファイルに追加します。*.apps.<cluster_name>.<base_domain> IN A <apps_FIP>
DNS サーバーを制御せず、非実稼働環境でアプリケーションアクセスを有効にする必要がある場合は、これらのホスト名を /etc/hosts
に追加できます。
<apps_FIP> console-openshift-console.apps.<cluster name>.<base domain> <apps_FIP> integrated-oauth-server-openshift-authentication.apps.<cluster name>.<base domain> <apps_FIP> oauth-openshift.apps.<cluster name>.<base domain> <apps_FIP> prometheus-k8s-openshift-monitoring.apps.<cluster name>.<base domain> <apps_FIP> grafana-openshift-monitoring.apps.<cluster name>.<base domain> <apps_FIP> <app name>.apps.<cluster name>.<base domain>
7.9.2. Kuryr ポートプール
Kuryr ポートプールでは、Pod 作成のスタンバイ状態の多数のポートを維持します。
ポートをスタンバイ状態に維持すると、Pod の作成時間が必要最小限に抑えることができます。ポートプールを使用しない場合には、Kuryr は Pod が作成または削除されるたびにポートの作成または削除を明示的に要求する必要があります。
Kuryr が使用する Neutron ポートは、namespace に関連付けられるサブネットに作成されます。これらの Pod ポートは、OpenShift Container Platform クラスターノードのプライマリーポートにサブポートとして追加されます。
Kuryr は namespace をそれぞれ、別のサブネットに保存するため、namespace-worker ペアごとに別個のポートプールが維持されます。
クラスターをインストールする前に、cluster-network-03-config.yml
マニフェストファイルに以下のパラメーターを設定して、ポートプールの動作を設定できます。
-
enablePortPoolsPrepopulation
パラメーターは、プールの事前入力を制御します。これにより、Pod 専用ネットワークを使用するように設定された最初の Pod が namespace に作成されたときに、Kuryr が Neutron ポートをプールに追加します。デフォルト値はfalse
です。 -
poolMinPorts
パラメーターは、プールに保持する空きポートの最小数です。デフォルト値は1
です。 poolMaxPorts
パラメーターは、プールに保持する空きポートの最大数です。値が0
の場合は、上限が無効になります。これはデフォルト設定です。OpenStack ポートのクォータが低い場合や、Pod ネットワークで IP アドレスの数が限定されている場合には、このオプションを設定して、不要なポートが削除されるようにします。
-
poolBatchPorts
パラメーターは、一度に作成可能な Neutron ポートの最大数を定義します。デフォルト値は3
です。
7.9.3. RHOSP でのアクティブなデプロイメントでの Kuryr ポートプール設定の調整
カスタムリソース (CR) を使用して、Kuryr が Red Hat OpenStack Platform (RHOSP) Neutron ポートをどのように管理するかを設定し、デプロイされたクラスターでの Pod 作成の速度と効率性を制御することができます。
手順
コマンドラインから、編集する Cluster Network Operator (CNO) CR を開きます。
$ oc edit networks.operator.openshift.io cluster
要件に合わせて設定を編集します。以下のファイルをサンプルとして紹介しています。
apiVersion: operator.openshift.io/v1 kind: Network metadata: name: cluster spec: clusterNetwork: - cidr: 10.128.0.0/14 hostPrefix: 23 serviceNetwork: - 172.30.0.0/16 defaultNetwork: type: Kuryr kuryrConfig: enablePortPoolsPrepopulation: false 1 poolMinPorts: 1 2 poolBatchPorts: 3 3 poolMaxPorts: 5 4
- 1
enablePortPoolsPrepopulation
をtrue
に設定して、Pod 専用ネットワークを使用するように設定された最初の Pod が namespace で作成されると、Kuryr が Neutron ポートを作成するようにします。この設定により、Neutron ポートのクォータが引き上げられますが、Pod の起動に必要となる時間を短縮できます。デフォルト値はfalse
です。- 2
- Kuryr は、対象のプール内にある空きポートの数が
poolMinPorts
の値よりも少ない場合には、プールに新規ポートを作成します。デフォルト値は1
です。 - 3
poolBatchPorts
は、空きポートの数がpoolMinPorts
の値よりも少ない場合に作成される新規ポートの数を制御します。デフォルト値は3
です。- 4
- プール内の空きポートの数が
poolMaxPorts
の値よりも多い場合に、Kuryr はその値と同じ数になるまでポートを削除します。この値を0
に設定すると、この上限は無効になり、プールが縮小できないようにします。デフォルト値は0
です。
- 変更を保存し、テキストエディターを終了して、変更をコミットします。
実行中のクラスターでこれらのオプションを変更すると、kuryr-controller および kuryr-cni Pod が再起動を強制的に実行します。その結果、新規 Pod およびサービスの作成が遅延します。
7.9.4. OVS ハードウェアオフロードの有効化
OVS ハードウェアオフロードは、テクノロジープレビュー機能としてのみご利用いただけます。テクノロジープレビュー機能は、Red Hat 製品のサービスレベルアグリーメント (SLA) の対象外であり、機能的に完全ではないことがあります。Red Hat は実稼働環境でこれらを使用することを推奨していません。テクノロジープレビュー機能は、最新の製品機能をいち早く提供して、開発段階で機能のテストを行いフィードバックを提供していただくことを目的としています。
Red Hat のテクノロジープレビュー機能のサポート範囲に関する詳細は、テクノロジープレビュー機能のサポート範囲 を参照してください。
Red Hat OpenStack Platform (RHOSP) で実行されるクラスターの場合、Open vSwitch(OVS) ハードウェアオフロードを有効にすることができます。
OVS は、大規模なマルチサーバーネットワークの仮想化を可能にするマルチレイヤー仮想スイッチです。
前提条件
- Single-root Input/Output Virtualization (SR-IOV) 用に設定された RHOSP にクラスターをインストールしている。
- SR-IOV Network Operator がクラスターにインストールされている。
-
クラスターに 2 つの
hw-offload
タイプの Virtual Function (VF) インターフェイスを作成している。
手順
コマンドラインで以下のコマンドを入力し、受付 Webhook を無効にします。
$ oc patch sriovoperatorconfig default --type=merge -n openshift-sriov-network-operator --patch '{ "spec": { "enableOperatorWebhook": false } }'
クラスターにある 2 つの
hw-offload
タイプの VF インターフェイスのSriovNetworkNodePolicy
ポリシーを作成します。2 番目の Virtual Function インターフェイス
apiVersion: sriovnetwork.openshift.io/v1 kind: SriovNetworkNodePolicy 1 metadata: name: "hwoffload9" namespace: openshift-sriov-network-operator spec: deviceType: netdevice isRdma: true nicSelector: pfNames: 2 - ens6 nodeSelector: feature.node.kubernetes.io/network-sriov.capable: 'true' numVfs: 1 priority: 99 resourceName: "hwoffload9"
2 番目の Virtual Function インターフェイス
apiVersion: sriovnetwork.openshift.io/v1 kind: SriovNetworkNodePolicy 1 metadata: name: "hwoffload10" namespace: openshift-sriov-network-operator spec: deviceType: netdevice isRdma: true nicSelector: pfNames: 2 - ens5 nodeSelector: feature.node.kubernetes.io/network-sriov.capable: 'true' numVfs: 1 priority: 99 resourceName: "hwoffload10"
2 つのインターフェイス用に
NetworkAttachmentDefinition
リソースを作成します。1 番目のインターフェイス用
NetworkAttachmentDefinition
リソースapiVersion: k8s.cni.cncf.io/v1 kind: NetworkAttachmentDefinition metadata: annotations: k8s.v1.cni.cncf.io/resourceName: openshift.io/hwoffload9 name: hwoffload9 namespace: default spec: config: '{ "cniVersion":"0.3.1", "name":"hwoffload9","type":"host-device","device":"ens6" }'
2 番目のインターフェイス用
NetworkAttachmentDefinition
リソースapiVersion: k8s.cni.cncf.io/v1 kind: NetworkAttachmentDefinition metadata: annotations: k8s.v1.cni.cncf.io/resourceName: openshift.io/hwoffload10 name: hwoffload10 namespace: default spec: config: '{ "cniVersion":"0.3.1", "name":"hwoffload10","type":"host-device","device":"ens5" }'
Pod で作成したインターフェイスを使用します。以下に例を示します。
2 つの OVS オフロードインターフェイスを使用する Pod
apiVersion: v1 kind: Pod metadata: name: dpdk-testpmd namespace: default annotations: irq-load-balancing.crio.io: disable cpu-quota.crio.io: disable k8s.v1.cni.cncf.io/networks: '[ { "name": "hwoffload9", "namespace": "default" }, { "name": "hwoffload10", "namespace": "default" } ]' spec: restartPolicy: Never containers: - name: dpdk-testpmd image: quay.io/krister/centos8_nfv-container-dpdk-testpmd:latest