9.13. 仮想マシンの状態を制御する


virtctl を使用して仮想マシンの状態を管理し、CLI から他のアクションを実行できます。たとえば、virtctl を使用して仮想マシンを強制停止したり、ポートを公開したりできます。

Web コンソールから仮想マシンを停止、起動、再起動、一時停止、一時停止解除できます。

9.13.1. Web コンソールを使用して仮想マシンの状態を管理するための RBAC 権限を設定する

ユーザーが OpenShift Container Platform Web コンソールを使用して仮想マシン (VM) の状態を管理できるようにするには、RBAC クラスターロールとクラスターロールバインディングを作成する必要があります。クラスターロールは、subresources.kubevirt.io API を使用して、特定のユーザーまたはグループが制御できるリソースを定義します。

前提条件

  • OpenShift Virtualization がインストールされている OpenShift Container Platform クラスターへのクラスター管理者アクセス権を持っている。
  • OpenShift CLI (oc) がインストールされている。

手順

  1. ターゲットユーザーまたはグループが仮想マシンの状態を管理できるようにする ClusterRole オブジェクトを作成します。

    apiVersion: rbac.authorization.k8s.io/v1
    kind: ClusterRole
    metadata:
      name: vm-manager-access
    rules:
      - apiGroups:
          - subresources.kubevirt.io
        resources:
          - virtualmachines/start
          - virtualmachines/stop
        verbs:
          - put
    # ...
  2. クラスターロールを適用するには、次のコマンドを実行します。

    $ oc apply -f <filename>.yaml
  3. 次のコマンドを実行して出力をチェックし、クラスターロールが作成されたことを確認します。

    $ oc get clusterrole <name>

    出力例:

    NAME                AGE
    vm-manager-access   15s
  4. クラスターロールの詳細を検査し、subresources.kubevirt.io の目的のルール (具体的には、virtualmachines/start および virtualmachines/stop サブリソース) が存在することを確認します。

    次のコマンドを実行し、出力を確認します。

    $ oc describe clusterrole <name>

    出力例:

    Name:         vm-manager-access
    Labels:       <none>
    Annotations:  <none>
    PolicyRule:
      Resources  Non-Resource URLs  Resource Names  Verbs
      ---------  -----------------  --------------  -----
      virtualmachines/start, virtualmachines/stop with subresources.kubevirt.io group  []  []  [put]
  5. 作成したクラスターロールをターゲットユーザーまたはグループにバインドするための ClusterRoleBinding オブジェクトを作成します。

    apiVersion: rbac.authorization.k8s.io/v1
    kind: ClusterRoleBinding
    metadata:
      name: vm-manager-access-binding
    subjects:
      - kind: User
        name: test-user
        apiGroup: rbac.authorization.k8s.io
    roleRef:
      kind: ClusterRole
      name: vm-manager-access
      apiGroup: rbac.authorization.k8s.io
  6. クラスターロールバインディングを適用するには、次のコマンドを実行します。

    $ oc apply -f <filename>.yaml
  7. 次のコマンドを実行して出力をチェックし、クラスターロールバインディングが作成されたことを確認します。

    $ oc get clusterrolebinding <name>

    出力例:

    NAME                        AGE
    vm-manager-access-binding   15s

検証

  1. 次のコマンドを実行して、ユーザーが仮想マシンを起動できるかどうかを確認します。

    $ oc auth can-i update virtualmachines/start --namespace=<namespace> --as=<user_name> --subresource=subresources.kubevirt.io

    出力例:

    yes
  2. 次のコマンドを実行して、ユーザーが仮想マシンを停止できるかどうかを確認します。

    $ oc auth can-i update virtualmachines/stop --namespace=<namespace> --as=<user_name> --group=subresources.kubevirt.io

    出力例:

    yes
Red Hat logoGithubredditYoutubeTwitter

詳細情報

試用、購入および販売

コミュニティー

会社概要

Red Hat は、企業がコアとなるデータセンターからネットワークエッジに至るまで、各種プラットフォームや環境全体で作業を簡素化できるように、強化されたソリューションを提供しています。

多様性を受け入れるオープンソースの強化

Red Hat では、コード、ドキュメント、Web プロパティーにおける配慮に欠ける用語の置き換えに取り組んでいます。このような変更は、段階的に実施される予定です。詳細情報: Red Hat ブログ.

Red Hat ドキュメントについて

Legal Notice

Theme

© 2026 Red Hat
トップに戻る