10.4. 仮想マシンの正常性のモニタリング


以下の手順を使用して liveness および readiness プローブを作成し、仮想マシンの正常性監視します。

10.4.1. liveness および readiness プローブ

VirtualMachineInstance (VMI) が失敗すると、liveness プローブは VMI を停止します。次に、VirtualMachine などのコントローラーが他の VMI を起動し、仮想マシンの応答を復元します。

readiness プローブは、サービスとエンドポイントに対して VirtualMachineInstance がサービスからトラフィックを受信できることを示します。readiness プローブが失敗すると、VirtualMachineInstance はプローブが復旧するまで、該当のエンドポイントから削除されます。

10.4.2. HTTP liveness プローブの定義

以下の手順では、HTTP liveness プローブを定義する設定ファイルの例について説明します。

手順

  1. 以下のコードブロックをサンプルとして使用し、YAML 設定ファイルをカスタマイズして HTTP liveness プローブを作成します。この例では、以下のようになります。

    • 初回の 120 秒の遅延後に VirtualMachineInstance のポート 1500 をクエリーする spec.livenessProbe.httpGetを使用してプローブを設定します。
    • VirtualMachineInstance は、cloud-init を使用して、ポート 1500 に最小限の HTTP サーバーをインストールし、実行します。

      apiVersion: kubevirt.io/v1alpha3
      kind: VirtualMachineInstance
      metadata:
        labels:
          special: vmi-fedora
        name: vmi-fedora
      spec:
        domain:
          devices:
            disks:
            - disk:
                bus: virtio
              name: containerdisk
            - disk:
                bus: virtio
              name: cloudinitdisk
          resources:
            requests:
              memory: 1024M
        livenessProbe:
          initialDelaySeconds: 120
          periodSeconds: 20
          httpGet:
            port: 1500
          timeoutSeconds: 10
        terminationGracePeriodSeconds: 0
        volumes:
        - name: containerdisk
          registryDisk:
            image: kubevirt/fedora-cloud-registry-disk-demo
        - cloudInitNoCloud:
            userData: |-
              #cloud-config
              password: fedora
              chpasswd: { expire: False }
              bootcmd:
                - setenforce 0
                - dnf install -y nmap-ncat
                - systemd-run --unit=httpserver nc -klp 1500 -e '/usr/bin/echo -e HTTP/1.1 200 OK\\n\\nHello World!'
          name: cloudinitdisk
  2. 以下のコマンドを実行して VirtualMachineInstance を作成します。

    $ oc create -f <file name>.yaml

10.4.3. TCP liveness プローブの定義

以下の手順では、TCP liveness プローブを定義する設定ファイルの例について説明します。

手順

  1. このコードブロックをサンプルとして使用し、YAML 設定ファイルをカスタマイズして TCP liveness プローブを作成します。この例では、以下のようになります。

    • 初回の 120 秒の遅延後に VirtualMachineInstance のポート 1500 をクエリーする spec.livenessProbe.tcpSocket を使用してプローブを設定します。
    • VirtualMachineInstance は、cloud-init を使用して、ポート 1500 に最小限の HTTP サーバーをインストールし、実行します。

      apiVersion: kubevirt.io/v1alpha3
      kind: VirtualMachineInstance
      metadata:
        labels:
          special: vmi-fedora
        name: vmi-fedora
      spec:
        domain:
          devices:
            disks:
            - disk:
                bus: virtio
              name: containerdisk
            - disk:
                bus: virtio
              name: cloudinitdisk
          resources:
            requests:
              memory: 1024M
        livenessProbe:
          initialDelaySeconds: 120
          periodSeconds: 20
          tcpSocket:
            port: 1500
          timeoutSeconds: 10
        terminationGracePeriodSeconds: 0
        volumes:
        - name: containerdisk
          registryDisk:
            image: kubevirt/fedora-cloud-registry-disk-demo
        - cloudInitNoCloud:
            userData: |-
              #cloud-config
              password: fedora
              chpasswd: { expire: False }
              bootcmd:
                - setenforce 0
                - dnf install -y nmap-ncat
                - systemd-run --unit=httpserver nc -klp 1500 -e '/usr/bin/echo -e HTTP/1.1 200 OK\\n\\nHello World!'
          name: cloudinitdisk
  2. 以下のコマンドを実行して VirtualMachineInstance を作成します。

    $ oc create -f <file name>.yaml

10.4.4. readiness プローブの定義

以下の手順では、readiness プローブを定義する設定ファイルの例について説明します。

手順

  1. YAML 設定ファイルをカスタマイズして readiness プローブを作成します。readiness プローブは liveness プローブと同じように設定されます。ただし、この例では以下の違いに注意してください。

    • readiness プローブは、異なる仕様名を使用して保存されます。たとえば、readiness プローブを spec.livenessProbe.<type-of-probe> としてではなく、spec.readinessProbe として作成します。
    • readiness プローブを作成する場合、プローブが複数回失敗または成功する場合に備えて readynon-ready 状態の間で切り換えられるように failureThreshold および successThreshold をオプションで設定します。

      apiVersion: kubevirt.io/v1alpha3
      kind: VirtualMachineInstance
      metadata:
        labels:
          special: vmi-fedora
        name: vmi-fedora
      spec:
        domain:
          devices:
            disks:
            - disk:
                bus: virtio
              name: containerdisk
            - disk:
                bus: virtio
              name: cloudinitdisk
          resources:
            requests:
              memory: 1024M
        readinessProbe:
          httpGet:
            port: 1500
          initialDelaySeconds: 120
          periodSeconds: 20
          timeoutSeconds: 10
          failureThreshold: 3
          successThreshold: 3
        terminationGracePeriodSeconds: 0
        volumes:
        - name: containerdisk
          registryDisk:
            image: kubevirt/fedora-cloud-registry-disk-demo
        - cloudInitNoCloud:
            userData: |-
              #cloud-config
              password: fedora
              chpasswd: { expire: False }
              bootcmd:
                - setenforce 0
                - dnf install -y nmap-ncat
                - systemd-run --unit=httpserver nc -klp 1500 -e '/usr/bin/echo -e HTTP/1.1 200 OK\\n\\nHello World!'
          name: cloudinitdisk
  2. 以下のコマンドを実行して VirtualMachineInstance を作成します。

    $ oc create -f <file name>.yaml
Red Hat logoGithubRedditYoutubeTwitter

詳細情報

試用、購入および販売

コミュニティー

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

Red Hat をお使いのお客様が、信頼できるコンテンツが含まれている製品やサービスを活用することで、イノベーションを行い、目標を達成できるようにします。

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

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

会社概要

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

© 2024 Red Hat, Inc.