1.3.3.4. CLI を使用して仮想化ロールの割り当てを制御する
クラスター内でより厳格な認可境界を適用するには、自動仮想化権限を無効にしてください。
OpenShift Virtualization ロール集約を無効にする機能は、テクノロジープレビュー版の機能です。テクノロジープレビュー機能は、Red Hat 製品のサービスレベルアグリーメント (SLA) の対象外であり、機能的に完全ではないことがあります。Red Hat は、実稼働環境でこれらを使用することを推奨していません。テクノロジープレビュー機能は、最新の製品機能をいち早く提供して、開発段階で機能のテストを行い、フィードバックを提供していただくことを目的としています。
Red Hat のテクノロジープレビュー機能のサポート範囲に関する詳細は、テクノロジープレビュー機能のサポート範囲 を参照してください。
前提条件
-
cluster-admin権限を持つユーザーとしてクラスターにアクセスできる。 - OpenShift Virtualization がインストールされています。
-
OpenShift CLI (
oc) がインストールされている。
手順
以下のコマンドを実行して、ロール集約を無効にします。
$ oc patch hyperconverged kubevirt-hyperconverged \ -n openshift-cnv \ --type=merge \ -p '{"spec":{"virtualization":{"roleAggregationStrategy":"Manual"}}}'ハイパーコンバージド Operator (HCO) が設定を KubeVirt に伝播したことを確認します。
$ oc get kubevirt kubevirt-kubevirt-hyperconverged \ -n openshift-cnv \ -o jsonpath='{.spec.configuration.roleAggregationStrategy}'出力には
手動と表示されます。OptOutRoleAggregationフィーチャーゲートが有効になっていることを確認してください。$ oc get kubevirt kubevirt-kubevirt-hyperconverged \ -n openshift-cnv \ -o jsonpath='{.spec.configuration.developerConfiguration.featureGates}' | grep -o OptOutRoleAggregation出力には
OptOutRoleAggregationが表示されます。オプション: クラスターロールが集約対象としてマークされていないことを確認します。たとえば、
kubevirt.io:editクラスターロールのaggregate-to-editラベルの値がfalse であることを確認します。$ oc get clusterrole kubevirt.io:edit \ -o jsonpath='{.metadata.labels.rbac\.authorization\.k8s\.io/aggregate-to-edit}'出力には
falseと表示されます。オプション: 集計を再度有効にするには、フィールドを
AggregateToDefaultに設定します。$ oc patch hyperconverged kubevirt-hyperconverged \ -n openshift-cnv \ --type=merge \ -p '{"spec":{"virtualization":{"roleAggregationStrategy":"AggregateToDefault"}}}'または、ハイパーコンバージド CR からそのフィールドを完全に削除します。
$ oc patch hyperconverged kubevirt-hyperconverged \ -n openshift-cnv \ --type=json \ -p '[{"op":"remove","path":"/spec/virtualization/roleAggregationStrategy"}]'フィールドが設定されている場合
(AggregateToDefaultに設定されている場合を含む)、HCO はOptOutRoleAggregationフィーチャーゲートを有効にしたままにします。このフィールドが削除されると、HCO はフィーチャーゲートを削除し、KubeVirt はデフォルトの集約動作を使用します。