インスタンスの自動スケーリング


Red Hat OpenStack Services on OpenShift 18.0

Red Hat OpenStack Services on OpenShift の自動スケーリング設定

OpenStack Documentation Team

概要

Red Hat OpenStack Services on OpenShift テレメトリーコンポーネントと heat テンプレートを使用して、ワークロードのインスタンスを自動的に起動します。

Red Hat ドキュメントへのフィードバック (英語のみ)

Red Hat ドキュメントに対するご意見をお聞かせください。ドキュメントの改善点があればお知らせください。

問題の作成 フォームを使用して、Red Hat OpenStack Services on OpenShift (RHOSO) または Red Hat OpenStack Platform (RHOSP) の以前のリリースのドキュメントに関するフィードバックを提供します。RHOSO または RHOSP ドキュメントの問題を作成すると、その問題は RHOSO Jira プロジェクトに記録され、フィードバックの進行状況を追跡できるようになります。

問題の作成 フォームを完了するには、Jira にログインしていることを確認してください。Red Hat Jira アカウントをお持ちでない場合は、https://issues.redhat.com でアカウントを作成できます。

  1. 次のリンクをクリックして、問題の作成 ページを開きます (問題の作成)。
  2. Summary フィールドと Description フィールドに入力します。Description フィールドに、ドキュメントの URL、章またはセクション番号、および問題の詳しい説明を入力します。フォーム内の他のフィールドは変更しないでください。
  3. Create をクリックします。

第1章 自動スケーリングコンポーネントの概要

テレメトリーコンポーネントを使用して、CPU、ストレージ、メモリー使用量など、Red Hat OpenStack Services on OpenShift (RHOSO) 環境に関するデータを収集します。ワークロードの需要とリソースの可用性に応じて、インスタンスを起動およびスケーリングできます。オーケストレーションサービス (ヒート) テンプレートでインスタンスのスケーリングを制御するテレメトリーデータの上限と下限を定義できます。

次のテレメトリーコンポーネントを使用して、インスタンスの自動スケーリングを制御します。

  • データ収集: テレメトリーは、データ収集サービス (Ceilometer) を使用して、メトリクスとイベントデータを収集します。
  • ストレージ: テレメトリーは、メトリクスデータを時系列データベースサービス (Prometheus) に保存します。
  • アラーム: テレメトリーは、Alarming サービス (aodh) を使用して、Ceilometer によって収集されたメトリクスまたはイベントデータに対するルールに基づき、アクションをトリガーします。

1.1. 自動スケーリング用のデータ収集サービス (Ceilometer)

Ceilometer を使用して、Red Hat OpenStack Services on OpenShift (RHOSO) コンポーネントのメータリング情報に関するデータを収集できます。

Ceilometer サービスは、3 つのエージェントを使用して、RHOSO コンポーネントからデータを収集します。

  • コンピュートエージェント (ceilometer-agent-compute): 各コンピュートノードで実行され、リソース使用統計をポーリングします。
  • 中央エージェント (ceilometer-agent-central): コントロールプレーンで実行され、コンピュートノードによって提供されないリソースの使用状況の統計情報をポーリングします。
  • 通知エージェント (ceilometer-agent-notification): コントロールプレーンで実行され、メッセージキューからのメッセージを使用してイベントおよび測定データを構築します。

1.1.1. パブリッシャー

Red Hat OpenStack Services on OpenShift (RHOSO) では、ceilometer-agent-compute および ceilometer-agent-central メトリクスは、RabbitMQ バスを使用してメトリクスを ceilometer-agent-notification に転送します。Ceilometer-agent-notification は、TCP パブリッシャーを使用してメトリクスを sg-core コンテナーに転送します。TCP パブリッシャーは、そのメトリクスを ceilometer-internal.<namespace>.svc:3000/metrics エンドポイントで Prometheus 形式で公開します。メトリクスは、MetricStorage が提供する Prometheus インスタンス、または外部ユーザーが提供する Prometheus 互換システムにより、このエンドポイントからスクレイピングされます。

1.2. 自動スケーリング用の時系列データベースサービス

Prometheus は、メトリクスを保存するために使用できる時系列データベースです。Alarming サービス (aodh) と Orchestration サービス (heat) は、自動スケーリングのために Prometheus に保存されているデータを使用します。Prometheus はクエリー言語 PromQL を使用します。

1.3. Alarming サービス (aodh)

Alarming サービス (aodh) は、Prometheus で収集されたメトリクスデータに対するルールに基づきアクションをトリガーするように設定できます。

アラームは以下の状態のいずれかになります。

  • Ok: メトリクスまたはイベントは、許容可能な状態です。
  • Alarm: メトリクスまたはイベントは、定義された Ok 状態から外れています。
  • insufficient data: アラーム状態は不明です。データが存在しない場合や、チェックがまだ実行されていない場合などがあてはまります。

1.4. 自動スケーリング用の Orchestration サービス (heat)

Orchestration サービス (heat) は、YAML 形式のテンプレートを使用します。テンプレートの目的は、Orchestration サービスが作成するリソースのコレクションであるスタックを定義および作成し、リソースを設定することです。リソースは、Red Hat OpenStack Services on OpenShift (RHOSO) 内のオブジェクトであり、コンピュートリソース、ネットワーク設定、セキュリティーグループ、スケーリングルール、カスタムリソースなどが含まれます。

第2章 以前の RHOSP デプロイメントから自動スケーリングを移行する

Red Hat OpenStack Services on OpenShift (RHOSO) の自動スケーリング heat テンプレートと、以前のバージョンの Red Hat OpenStack Platform (RHOSP) には重要な違いがあります。

  • アラームタイプとパラメーターが更新されました。
  • インスタンスのグループ。
  • アラームクエリー。

2.1. アラームタイプと廃止されたパラメーターの更新

以前のバージョンの Red Hat OpenStack Platform (RHOSP) では、メトリクスの保存に Gnocchi を使用していました。Red Hat OpenStack Services on OpenShift (RHOSO) はメトリクスの保存に Prometheus を使用するため、既存のテンプレートファイル内のアラームタイプを編集する必要があります。

手順

  1. resources.cpu_alarm_high.type パラメーターの値を OS::Aodh::GnocchiAggregationByResourcesAlarm から OS::Aodh::PrometheusAlarm に更新します。
  2. resources.cpu_alarm_low.type パラメーターの値を OS::Aodh::GnocchiAggregationByResourcesAlarm から OS::Aodh::PrometheusAlarm に更新します。
  3. テンプレートのアラーム定義セクションから次のパラメーターを削除します。

    • metric
    • aggregation_method
    • granularity
    • evaluation_periods
    • resource_type

2.2. アラームのクエリー

Red Hat OpenStack Services on OpenShift (RHOSO) では、アラーム定義内のクエリーに PromQL と互換性があることを確認します。

手順

  1. クエリーに server_group=<stack_id> を追加し、スタック内のこのインスタンスだけを選択するようにします。
  2. ceilometer_cpu メトリクスは、インスタンスが作成されてからの合計 CPU 時間を記録する累積値として保存されます。PromQL rate() 関数を使用すると、特定期間における指定された CPU 時間または CPU 時間のパーセンテージ値のみをクエリーできます。以前の Red Hat OpenStack Platform (RHOSP) バージョンでは、これは自動ではありませんでしたが、現在はクエリーの一部としてパーセンテージを自動的に計算できます。
  3. PromQL rate() 関数は、rate(ceilometer_cpu{server_group=<stack_id>}[<duration>]) のように使用できます。クエリー結果が不安定になることを回避するには、<prometheus scrape interval> に <ceilometer polling interval> を追加して <duration> を計算します。
  4. オプション: $ openstack metric query コマンドを使用して、新しいクエリーが返す内容を確認できます。クエリーは必ずテストしてください。関連するスタックのインスタンスのみがクエリーされていることを確認し、クエリーにより返されるメトリクス値を記録し、それに応じてアラーム定義のしきい値を設定できます。

    autoscaling.yaml

    47,49c50,53
    <     	list_join:
    <       	- ''
    <       	- - {'=': {server_group: {get_param: "OS::stack_id"}}}
    ---
    >     	str_replace:
    >       	template: "(rate(ceilometer_cpu{server_group='stack_id'}[150s]))/10000000"
    >       	params:
    >         	stack_id: {get_param: OS::stack_id}
    68,70c67,70
    <     	list_join:
    <       	- ''
    <       	- - {'=': {server_group: {get_param: "OS::stack_id"}}}
    ---
    >     	str_replace:
    >       	template: "(rate(ceilometer_cpu{server_group='stack_id'}[150s]))/10000000"
    >       	params:
    >         	stack_id: {get_param: OS::stack_id}

第3章 自動スケーリングの設定とデプロイ

自動スケーリングを設定してデプロイするには、次の前提条件を満たす必要があります。

  1. 自動スケーリング用にクラウドをデプロイする前に、自動スケーリングサービス用の環境テンプレートとリソースレジストリーを作成します。
  2. クラウドをデプロイします。

3.1. 自動スケーリング用のコントロールプレーンリソースを有効にする

自動スケーリングに必要なコントロールプレーンリソースを有効にするには、次の手順を実行します。

前提条件

  • デプロイ済みの Red Hat OpenStack Services on OpenShift (RHOSO) 環境。

手順

  • OpenStackControlPlane カスタムリソースを編集して、Orchestration サービス (heat) およびテレメトリーサービスを有効にします。.yaml ファイルのテレメトリーセクション内で、Ceilometer、Autoscaling、および MetricStorage オブジェクトを有効にします。

    $ oc edit oscp
    ...
      heat:
        enabled: true
    ...
      telemetry:
        apiOverride: {}
        enabled: true
        template:
          autoscaling:
            enabled: true
            heatInstance: heat
            ...
          ceilometer:
            enabled: true
            ...
          metricStorage:
            enabled: true
            ...
    ...

検証

  1. 必要なカスタムリソースの準備が完了していることを確認します。

    $ oc get heat heat -o jsonpath='{.status.conditions[?(@.type=="Ready")].status}{"\n"}'
    True
    $ oc get ceilometer ceilometer -o jsonpath='{.status.conditions[?(@.type=="Ready")].status}{"\n"}'
    True
    $ oc get autoscaling autoscaling -o jsonpath='{.status.conditions[?(@.type=="Ready")].status}{"\n"}'
    True
    $ oc get metricstorage metric-storage -o jsonpath='{.status.conditions[?(@.type=="Ready")].status}{"\n"}'
    True
  2. Alarming サービスエンドポイントがあることを確認します。

    $ oc rsh openstackclient openstack endpoint list --service alarming
    +----------------------------------+-----------+--------------+--------------+---------+-----------+------------------------------------------------+
    | ID                               | Region    | Service Name | Service Type | Enabled | Interface | URL                                            |
    +----------------------------------+-----------+--------------+--------------+---------+-----------+------------------------------------------------+
    | 62d20961a3354daa8adf52db62cc809d | regionOne | aodh         | alarming     | True    | public    | https://aodh-public-openstack.apps.example.testing |
    | 8e526119b01248aba8d304de627a6267 | regionOne | aodh         | alarming     | True    | internal  | http://aodh-internal.openstack.svc:8042        |
    +----------------------------------+-----------+--------------+--------------+---------+-----------+------------------------------------------------+
  3. Orchestration サービスエンドポイントがあることを確認します。

    $ oc rsh openstackclient openstack endpoint list --service orchestration
    +----------------------------------+-----------+--------------+---------------+---------+-----------+---------------------------------------------------------------------+
    | ID                               | Region    | Service Name | Service Type  | Enabled | Interface | URL                                                                 |
    +----------------------------------+-----------+--------------+---------------+---------+-----------+---------------------------------------------------------------------+
    | 77190103ae3b479290138ebeca4a54d7 | regionOne | heat         | orchestration | True    | internal  | http://heat-api-internal.openstack.svc:8004/v1/%(tenant_id)s        |
    | c302ee5ff5cc45709d20b2d4a872d08f | regionOne | heat         | orchestration | True    | public    | https://heat-api-public-openstack.apps.example.testing/v1/%(tenant_id)s |
    +----------------------------------+-----------+--------------+---------------+---------+-----------+---------------------------------------------------------------------+
  4. Prometheus が有効化されており、各エンドポイントをスクレイピングできることを確認します。各行で出力の値が 1 であることを確認します。ただし、TLS が有効な場合、Prometheus コンテナーは 0 になります。

    $ oc rsh openstackclient openstack metric query up --disable-rbac -c instance -c container -c value
    +----------------------+----------------------+-------+
    | instance             | container            | value |
    +----------------------+----------------------+-------+
    | 10.217.1.27:9093     | alertmanager         | 1     |
    | 10.217.1.27:9093     | prometheus           | 0     |
    | 10.217.1.52:3000 	   | proxy-httpd 	        | 1     |
    | 10.217.0.169:3000    |                      | 1     |
    | 192.168.122.100:9100 |                      | 1     |
    | 192.168.122.101:9100 |                      | 1     |
    +----------------------+----------------------+-------+

第4章 Orchestration サービス (heat) を使用した自動スケーリング

自動スケーリングを提供するために必要なサービスをデプロイした後、Orchestration サービス (heat) が自動スケーリングのインスタンスを管理できるように環境を設定する必要があります。

前提条件

  • デプロイ済みの Red Hat OpenStack Services on OpenShift (RHOSO) 環境。
  • コントロールプレーンで、Ceilometer、Autoscaling、MetricStorage、および Orchestration サービスが有効になっている。

4.1. 自動スケーリング用のヒートテンプレート設定

手順

オーケストレーションサービス (heat) テンプレートを設定して、インスタンスを作成し、トリガー時に、インスタンスを作成およびスケーリングするアラームを設定できます。この手順ではサンプル値を使用しており、使用している環境の値とは異なる場合があります。

前提条件

  • 自動スケーリングサービスを使用してクラウドをデプロイ済みである。

手順

  1. openstackclient Pod にアクセスします。

    $ oc rsh openstackclient
  2. テンプレート用のディレクトリーを作成します (例: /tmp/templates/)。

    $ mkdir -p /tmp/templates
  3. インスタンス設定テンプレートを作成します (例: /tmp/templates/instance.yaml)。
  4. 次の設定を instance.yaml ファイルに追加します。

    cat <<EOF > /tmp/templates/instance.yaml
    heat_template_version: wallaby
    description: Template to control scaling of VNF instance
    
    parameters:
      metadata:
        type: json
      image:
        type: string
        description: image used to create instance
        default: cirros
      flavor:
        type: string
        description: instance flavor to be used
        default: m1.small
      network:
        type: string
        description: project network to attach instance to
        default: private
      external_network:
        type: string
        description: network used for floating IPs
        default: public
    
    resources:
      vnf:
        type: OS::Nova::Server
        properties:
          flavor: {get_param: flavor}
          image: { get_param: image }
          metadata: { get_param: metadata }
          networks:
            - port: { get_resource: port }
    
      port:
        type: OS::Neutron::Port
        properties:
          network: {get_param: network}
          security_groups:
            - basic
    
      floating_ip:
        type: OS::Neutron::FloatingIP
        properties:
          floating_network: {get_param: external_network }
    
      floating_ip_assoc:
        type: OS::Neutron::FloatingIPAssociation
        properties:
          floatingip_id: { get_resource: floating_ip }
          port_id: { get_resource: port }
    EOF
  5. heat テンプレートで参照するリソースを作成します。

    $ cat <<EOF > /tmp/templates/resources.yaml
    resource_registry:
      "OS::Nova::Server::VNF": /tmp/templates/instance.yaml
    EOF
  6. インスタンスのスケーリングを制御するために、Orchestration サービスのデプロイメントテンプレートを作成します。

    cat <<EOF > /tmp/templates/autoscaling.yaml
    heat_template_version: wallaby
    description: Example auto scale group, policy and alarm
    resources:
      autoscalinggroup:
        type: OS::Heat::AutoScalingGroup
        properties:
          cooldown: 300
          desired_capacity: 1
          max_size: 3
          min_size: 1
          resource:
            # Configure the resource to be autoscaled
            type: OS::Nova::Server::VNF
            properties:
              metadata: {"metering.server_group": {get_param: "OS::stack_id"}}
    
      scaleup_policy:
        type: OS::Heat::ScalingPolicy
        properties:
          adjustment_type: change_in_capacity
          auto_scaling_group_id: { get_resource: autoscalinggroup }
          cooldown: 300
          scaling_adjustment: 1
    
      scaledown_policy:
        type: OS::Heat::ScalingPolicy
        properties:
          adjustment_type: change_in_capacity
          auto_scaling_group_id: { get_resource: autoscalinggroup }
          cooldown: 300
          scaling_adjustment: -1
    
      cpu_alarm_high:
        type: OS::Aodh::PrometheusAlarm
        properties:
          description: Scale up if CPU > 80%
          threshold: 80 # 80%
          comparison_operator: gt
          alarm_actions:
            - str_replace:
                template: trust+url
                params:
                  url: {get_attr: [scaleup_policy, signal_url]}
          query:
            str_replace:
              # ceilometer_cpu metric is in ns. Divide the rate by 10000000 to get percentage
              # The time duration in [] should be higher than ceilometer polling interval
              # You can add {ceilometer polling} to {prometheus scrape interval} to calculate the value.
              # The default value is 150s.
              template: "(rate(ceilometer_cpu{server_group=~'stack_id'}[150s]))/10000000"
              params:
                stack_id: {get_param: OS::stack_id}
    
      cpu_alarm_low:
        type: OS::Aodh::PrometheusAlarm
        properties:
          description: Scale up if CPU < 20%
          threshold: 20 # 20%
          comparison_operator: lt
          alarm_actions:
            - str_replace:
                template: trust+url
                params:
                  url: {get_attr: [scaledown_policy, signal_url]}
          query:
            str_replace:
              # ceilometer_cpu metric is in ns. Divide the rate by 10000000 to get percentage
              # The time duration in [] should be higher than ceilometer polling interval
              # You can add {ceilometer polling} to {prometheus scrape interval} to calculate the value.
              # The default value is 150s.
              template: "(rate(ceilometer_cpu{server_group=~'stack_id'}[150s]))/10000000"
              params:
                stack_id: {get_param: OS::stack_id}
    
    outputs:
      scaleup_policy_signal_url:
        value: {get_attr: [scaleup_policy, signal_url]}
    
      scaledown_policy_signal_url:
        value: {get_attr: [scaledown_policy, signal_url]}
    EOF

4.2. 自動スケーリング用のスタックデプロイメントの作成

自動スケーリング用のスタックデプロイメントを作成します。この手順ではサンプル値を使用しており、使用している環境の値とは異なる場合があります。

前提条件

  • インスタンスの自動スケーリングを行うための heat テンプレートが設定済みである。

手順

  1. openstack クライアント Pod にアクセスします。

    $ oc rsh openstackclient
  2. スタックを作成します。

    $ openstack stack create -t /tmp/templates/autoscaling.yaml -e /tmp/templates/resources.yaml stack1

検証

  1. スタックが正常に作成されたことを確認します。

    $ openstack stack show stack1 -c id -c stack_status
    +--------------+--------------------------------------+
    | Field        | Value                                |
    +--------------+--------------------------------------+
    | id           | 9ac44c45-4917-4cd5-a713-9ef7828d8457 |
    | stack_status | CREATE_COMPLETE                      |
    +--------------+--------------------------------------+
  2. アラーム、スケーリングポリシー、自動スケーリンググループなどのスタックリソースが作成されたことを確認します。

    $ export STACK_ID=$(openstack stack show stack1 -c id -f value)
    
    $ openstack stack resource list $STACK_ID
    +------------------+--------------------------------------+----------------------------+-----------------+----------------------+
    | resource_name    | physical_resource_id                 | resource_type              | resource_status | updated_time         |
    +------------------+--------------------------------------+----------------------------+-----------------+----------------------+
    | scaleup_policy   | 3cfb2a746dcf4fb6b3284b6c164e4ff5     | OS::Heat::ScalingPolicy    | CREATE_COMPLETE | 2024-03-26T09:17:54Z |
    | scaledown_policy | ef60360ae7564abda088e67b3cc542f4     | OS::Heat::ScalingPolicy    | CREATE_COMPLETE | 2024-03-26T09:17:54Z |
    | cpu_alarm_low    | 95503054-aada-457c-b586-f98a88b00962 | OS::Aodh::PrometheusAlarm  | CREATE_COMPLETE | 2024-03-26T09:17:54Z |
    | cpu_alarm_high   | 65be604f-1262-4567-851d-ac28ae1bb178 | OS::Aodh::PrometheusAlarm  | CREATE_COMPLETE | 2024-03-26T09:17:54Z |
    | autoscalinggroup | 8c4fea31-3beb-47b7-841d-fe82fb284628 | OS::Heat::AutoScalingGroup | CREATE_COMPLETE | 2024-03-26T09:17:54Z |
    +------------------+--------------------------------------+----------------------------+-----------------+----------------------+
  3. スタックの作成によってインスタンスが起動されたことを確認します。

    $ openstack server list --long | grep $STACK_ID
    | 9e2e9266-d69e-4de1-8b3a-e75f7111d1d9 | autoscaling_server_stack1-autoscalinggroup-oqmxiukze6dg-hdtuapbjxcow-q366nn4k5utr | ACTIVE | None       | Running     | private=192.168.0.209, 192.168.122.205 | cirros     | 239959f7-3d16-4744-8eca-435cdfc1a4cf | m1.small | nova              | edpm-compute-0.ctlplane.example.com | metering.server_group='9ac44c45-4917-4cd5-a713-9ef7828d8457' | UP          |
  4. スタックのアラームが作成されたことを確認します。

    1. アラーム ID を一覧表示します。アラームの stateinsufficient data の場合は、データ収集後にもう一度確認してください。

      $ openstack alarm list
      +--------------------------------------+------------+------------------------------------+-------+----------+---------+
      | alarm_id                             | type       | name                               | state | severity | enabled |
      +--------------------------------------+------------+------------------------------------+-------+----------+---------+
      | 65be604f-1262-4567-851d-ac28ae1bb178 | prometheus | stack1-cpu_alarm_high-q5yw2fg4h2vh | ok    | low      | True    |
      | 95503054-aada-457c-b586-f98a88b00962 | prometheus | stack1-cpu_alarm_low-hjmpszetdpsw  | alarm | low      | True    |
      +--------------------------------------+------------+------------------------------------+-------+----------+---------+
    2. スタックのリソースをリストし、cpu_alarm_high および cpu_alarm_low リソースの physical_resource_id 値をメモします。

      $ openstack stack resource list $STACK_ID
      +------------------+--------------------------------------+----------------------------+-----------------+----------------------+
      | resource_name    | physical_resource_id                 | resource_type              | resource_status | updated_time         |
      +------------------+--------------------------------------+----------------------------+-----------------+----------------------+
      | scaleup_policy   | 3cfb2a746dcf4fb6b3284b6c164e4ff5     | OS::Heat::ScalingPolicy    | CREATE_COMPLETE | 2024-03-26T09:17:54Z |
      | scaledown_policy | ef60360ae7564abda088e67b3cc542f4     | OS::Heat::ScalingPolicy    | CREATE_COMPLETE | 2024-03-26T09:17:54Z |
      | cpu_alarm_low    | 95503054-aada-457c-b586-f98a88b00962 | OS::Aodh::PrometheusAlarm  | CREATE_COMPLETE | 2024-03-26T09:17:54Z |
      | cpu_alarm_high   | 65be604f-1262-4567-851d-ac28ae1bb178 | OS::Aodh::PrometheusAlarm  | CREATE_COMPLETE | 2024-03-26T09:17:54Z |
      | autoscalinggroup | 8c4fea31-3beb-47b7-841d-fe82fb284628 | OS::Heat::AutoScalingGroup | CREATE_COMPLETE | 2024-03-26T09:17:54Z |
      +------------------+--------------------------------------+----------------------------+-----------------+----------------------+
  5. スタックにメトリクスリソースと測定値が存在することを確認します。server_group のスタックの ID を使用します。

    $ openstack metric query "(rate(ceilometer_cpu{server_group=~'ac2e87ba-f55e-46e7-8f8d-f09fe91d63d1'}[150s]))/10000000"
    +---------+--------------------------------------+----------------------------------------+----------------------------------+--------------------------------------+-------------------------------------------------------------------------+--------------------------------------+------+------+----------------------------------+----------------------------------------------------------+--------------------+
    | counter | cpu                              	| instance                           	| project                      	| resource                         	| resource_name                                                       	| server_group                     	| type | unit | user                         	| vm_instance                                          	| value          	|
    +---------+--------------------------------------+----------------------------------------+----------------------------------+--------------------------------------+-------------------------------------------------------------------------+--------------------------------------+------+------+----------------------------

第5章 自動スケーリングのテストとトラブルシューティング

オーケストレーションサービス (heat) を使用して、しきい値の定義に基づいて、インスタンスを自動的にスケールアップおよびスケールダウンします。環境のトラブルシューティングを行うには、ログファイルと履歴レコードでエラーを探します。

5.1. インスタンスの自動スケールアップのテスト

オーケストレーションサービス (heat) を使用して、cpu_alarm_high しきい値の定義に基づいて、インスタンスを自動的にスケーリングできます。CPU 使用率が threshold パラメーターで定義された値に達すると、負荷を分散するために、別のインスタンスが起動します。template.yaml ファイルの threshold 値は、80% に設定されます。この手順ではサンプル値を使用しており、使用している環境の値とは異なる場合があります。

手順

  1. クライアント Pod にアクセスします。

    $ oc rsh openstackclient
  2. cirros サーバーの IP アドレスを取得し、インスタンスにログインします。cirros イメージのデフォルトのパスワードは "gocubsgo" です。

    $ openstack server list | grep cirros
    $ ssh cirros@192.168.122.8
  3. 複数の dd コマンドを実行して、負荷を生成します。

    [instance ~]$ sudo dd if=/dev/zero of=/dev/null &
    [instance ~]$ sudo dd if=/dev/zero of=/dev/null &
    [instance ~]$ sudo dd if=/dev/zero of=/dev/null &
  4. 実行中のインスタンスを終了し、ホストに戻ります。
  5. dd コマンドを実行した後、しばらくするとインスタンスの CPU 使用率が 100% になることが予想されます。アラームがトリガーされていることを確認します。

    $ openstack alarm list
    +--------------------------------------+------------+------------------------------------+-------+----------+---------+
    | alarm_id                             | type       | name                               | state | severity | enabled |
    +--------------------------------------+------------+------------------------------------+-------+----------+---------+
    | 3000766d-a7fc-4187-98ea-cafd1239c160 | prometheus | stack1-cpu_alarm_low-n3iy7oaffq4i  | ok    | low      | True    |
    | 899f8242-96dd-4bad-a7f9-0b9526ea6032 | prometheus | stack1-cpu_alarm_high-riua4sthkvcs | alarm | low      | True    |
    +--------------------------------------+------------+------------------------------------+-------+----------+---------+
  6. 約 60 秒後、オーケストレーションは、別のインスタンスを開始し、グループに追加します。インスタンスが作成されたことを確認するには、次のコマンドを入力します。

    $ openstack server list
    +--------------------------------------+-----------------------------------------------------------------------------------+--------+----------------------------------------+--------+----------+
    | ID                                   | Name                                                                              | Status | Networks                               | Image  | Flavor   |
    +--------------------------------------+-----------------------------------------------------------------------------------+--------+----------------------------------------+--------+----------+
    | 53ffb3c5-a425-4929-b01d-50d653fe23f8 | autoscaling_server_stack1-autoscalinggroup-oqmxiukze6dg-qn7drottgjek-3oiecx4gkowi | ACTIVE | private=192.168.0.116, 192.168.122.204 | cirros | m1.small |
    | 9e2e9266-d69e-4de1-8b3a-e75f7111d1d9 | autoscaling_server_stack1-autoscalinggroup-oqmxiukze6dg-hdtuapbjxcow-q366nn4k5utr | ACTIVE | private=192.168.0.209, 192.168.122.205 | cirros | m1.small |
    +--------------------------------------+-----------------------------------------------------------------------------------+--------+----------------------------------------+--------+----------+
  7. (オプション) さらにしばらくしてから、Orchestration サービスが 3 つのインスタンスに自動スケーリングされるか確認します。設定は、最大 3 つのインスタンスに設定されます。3 つのインスタンスがあることを確認します。

    $ openstack server list
    +--------------------------------------+-------------------------------------------------------+--------+------------+-------------+---------------------------------------+
    | ID                                   | Name                                                  | Status | Task State | Power State | Networks                              |
    +--------------------------------------+-------------------------------------------------------+--------+------------+-------------+---------------------------------------+
    | 477ee1af-096c-477c-9a3f-b95b0e2d4ab5 | ex-3gax-4urpikl5koff-yrxk3zxzfmpf-server-2hde4tp4trnk | ACTIVE | -          | Running     | internal1=10.10.10.13, 192.168.122.17 |
    | e1524f65-5be6-49e4-8501-e5e5d812c612 | ex-3gax-5f3a4og5cwn2-png47w3u2vjd-server-vaajhuv4mj3j | ACTIVE | -          | Running     | internal1=10.10.10.9, 192.168.122.8   |
    | 6c88179e-c368-453d-a01a-555eae8cd77a | ex-3gax-fvxz3tr63j4o-36fhftuja3bw-server-rhl4sqkjuy5p | ACTIVE | -          | Running     | internal1=10.10.10.5, 192.168.122.5   |
    +--------------------------------------+-------------------------------------------------------+--------+------------+-------------+---------------------------------------+

5.2. インスタンスの自動スケールダウンのテスト

オーケストレーションサービス (heat) を使用して、cpu_alarm_low しきい値に基づいて、インスタンスを自動的にスケールダウンできます。この例では、CPU の使用率が 20% 未満の場合に、インスタンスはスケールダウンされます。

手順

  1. ワークロードインスタンス内から、実行中の dd プロセスを終了し、オーケストレーションがインスタンスのスケールダウンを開始することを確認します。

    $ sudo killall dd
  2. 実行中のインスタンスを終了し、ホストに戻ります。
  3. dd プロセスを停止すると、cpu_alarm_low event アラームがトリガーされます。これにより、オーケストレーションは自動的にスケールダウンを開始し、インスタンスを削除します。対応するアラームがトリガーされていることを確認します。

    $ openstack alarm list
    +--------------------------------------+------------+------------------------------------+-------+----------+---------+
    | alarm_id                             | type   	| name                               | state | severity | enabled |
    +--------------------------------------+------------+------------------------------------+-------+----------+---------+
    | 98dbbf20-44ec-4aa9-bb42-14f75b184dad | prometheus | stack1-cpu_alarm_high-xed3bp5mrscw | ok	 | low  	| True	  |
    | d3dd58e9-b802-4b52-9c00-7932e59a49c2 | prometheus | stack1-cpu_alarm_low-bjql75566bkn  | alarm | low  	| True    |
    +--------------------------------------+------------+------------------------------------+-------+----------+---------+

    数分後に、オーケストレーションは、scaleup_group 定義の min_size パラメーターで定義される最小値までインスタンスの数を継続的に削減します。このシナリオでは、min_size パラメーターは 1 に設定されています。

5.3. 自動スケーリングのトラブルシューティング

必要に応じて、ログファイルと履歴レコードでエラーを検索できます。

手順

  1. openstack クライアント Pod にアクセスします。

    $ oc rsh openstackclient
  2. 状態遷移の情報を取得するには、スタックイベントレコードをリスト表示します。

    $ openstack stack event list example
    2017-03-06 11:12:43Z [example]: CREATE_IN_PROGRESS  Stack CREATE started
    2017-03-06 11:12:43Z [example.scaleup_group]: CREATE_IN_PROGRESS  state changed
    2017-03-06 11:13:04Z [example.scaleup_group]: CREATE_COMPLETE  state changed
    2017-03-06 11:13:04Z [example.scaledown_policy]: CREATE_IN_PROGRESS  state changed
    2017-03-06 11:13:05Z [example.scaleup_policy]: CREATE_IN_PROGRESS  state changed
    2017-03-06 11:13:05Z [example.scaledown_policy]: CREATE_COMPLETE  state changed
    2017-03-06 11:13:05Z [example.scaleup_policy]: CREATE_COMPLETE  state changed
    2017-03-06 11:13:05Z [example.cpu_alarm_low]: CREATE_IN_PROGRESS  state changed
    2017-03-06 11:13:05Z [example.cpu_alarm_high]: CREATE_IN_PROGRESS  state changed
    2017-03-06 11:13:06Z [example.cpu_alarm_low]: CREATE_COMPLETE  state changed
    2017-03-06 11:13:07Z [example.cpu_alarm_high]: CREATE_COMPLETE  state changed
    2017-03-06 11:13:07Z [example]: CREATE_COMPLETE  Stack CREATE completed successfully
    2017-03-06 11:19:34Z [example.scaleup_policy]: SIGNAL_COMPLETE  alarm state changed from alarm to alarm (Remaining as alarm due to 1 samples outside threshold, most recent: 95.4080102993)
    2017-03-06 11:25:43Z [example.scaleup_policy]: SIGNAL_COMPLETE  alarm state changed from alarm to alarm (Remaining as alarm due to 1 samples outside threshold, most recent: 95.8869217299)
    2017-03-06 11:33:25Z [example.scaledown_policy]: SIGNAL_COMPLETE  alarm state changed from ok to alarm (Transition to alarm due to 1 samples outside threshold, most recent: 2.73931707966)
    2017-03-06 11:39:15Z [example.scaledown_policy]: SIGNAL_COMPLETE  alarm state changed from alarm to alarm (Remaining as alarm due to 1 samples outside threshold, most recent: 2.78110858552)
  3. アラーム履歴ログを読み取ります。

    $ openstack alarm-history show 022f707d-46cc-4d39-a0b2-afd2fc7ab86a
    +----------------------------+------------------+-----------------------------------------------------------------------------------------------------+--------------------------------------+
    | timestamp                  | type             | detail                                                                                              | event_id                             |
    +----------------------------+------------------+-----------------------------------------------------------------------------------------------------+--------------------------------------+
    | 2017-03-06T11:32:35.510000 | state transition | {"transition_reason": "Transition to ok due to 1 samples inside threshold, most recent:             | 25e0e70b-3eda-466e-abac-42d9cf67e704 |
    |                            |                  | 2.73931707966", "state": "ok"}                                                                      |                                      |
    | 2017-03-06T11:17:35.403000 | state transition | {"transition_reason": "Transition to alarm due to 1 samples outside threshold, most recent:         | 8322f62c-0d0a-4dc0-9279-435510f81039 |
    |                            |                  | 95.0964497325", "state": "alarm"}                                                                   |                                      |
    | 2017-03-06T11:15:35.723000 | state transition | {"transition_reason": "Transition to ok due to 1 samples inside threshold, most recent:             | 1503bd81-7eba-474e-b74e-ded8a7b630a1 |
    |                            |                  | 3.59330523447", "state": "ok"}                                                                      |                                      |
    | 2017-03-06T11:13:06.413000 | creation         | {"alarm_actions": ["trust+http://fca6e27e3d524ed68abdc0fd576aa848:delete@192.168.122.126:8004/v1/fd | 224f15c0-b6f1-4690-9a22-0c1d236e65f6 |
    |                            |                  | 1c345135be4ee587fef424c241719d/stacks/example/d9ef59ed-b8f8-4e90-bd9b-                              |                                      |
    |                            |                  | ae87e73ef6e2/resources/scaleup_policy/signal"], "user_id": "a85f83b7f7784025b6acdc06ef0a8fd8",      |                                      |
    |                            |                  | "name": "example-cpu_alarm_high-odj77qpbld7j", "state": "insufficient data", "timestamp":           |                                      |
    |                            |                  | "2017-03-06T11:13:06.413455", "description": "Scale up if CPU > 80%", "enabled": true,              |                                      |
    |                            |                  | "state_timestamp": "2017-03-06T11:13:06.413455", "rule": {"evaluation_periods": 1, "metric":        |                                      |
    |                            |                  | "cpu_util", "aggregation_method": "mean", "granularity": 300, "threshold": 80.0, "query": "{\"=\":   |                                      |
    |                            |                  | {\"server_group\": \"d9ef59ed-b8f8-4e90-bd9b-ae87e73ef6e2\"}}", "comparison_operator": "gt",        |                                      |
    |                            |                  | "resource_type": "instance"}, "alarm_id": "022f707d-46cc-4d39-a0b2-afd2fc7ab86a",                   |                                      |
    |                            |                  | "time_constraints": [], "insufficient_data_actions": null, "repeat_actions": true, "ok_actions":    |                                      |
    |                            |                  | null, "project_id": "fd1c345135be4ee587fef424c241719d", "type":                                     |                                      |
    |                            |                  | "gnocchi_aggregation_by_resources_threshold", "severity": "low"}                                    |                                      |
    +----------------------------+------------------+-----------------------------------------------------------------------------------------------------+-------------------------------------
  4. openstack クライアント Pod を終了します。

    $ exit
  5. Orchestration サービス (heat) が既存のスタックに対して収集するスケールアウトまたはスケールダウンの操作記録を表示するには、awk コマンドを使用して heat Pod ログを解析します。

    $ oc logs -l component=engine,service=heat --tail=-1 | awk '/Updating stack/,/Stack CREATE completed successfully/ {print $0}'
  6. Alarming サービス (aodh) に関する情報を表示するには、aodh-evaluator コンテナーのログを調べます。

    $ oc logs aodh-0 -c aodh-evaluator | grep -i alarm | grep -i transition | grep -v DEBUG

5.4. rate 関数使用時の自動スケーリングしきい値に CPU テレメトリー値を使用する

OS::Heat::Autoscaling ヒートオーケストレーションテンプレート (HOT) を使用し、CPU のしきい値を設定すると、値はナノ秒単位の CPU 時間で示されます。これは、インスタンスのワークロードに割り当てられた仮想 CPU の数に基づく動的な値です。Prometheus をクエリーするときに rate 関数を使用すると、ナノ秒単位の CPU 値をパーセンテージとして計算して表現できます。

5.4.1. CPU テレメトリー値をパーセンテージとして計算する

CPU テレメトリーは、ナノ秒単位の CPU 使用率として Prometheus に保存されます。CPU テレメトリーを使用して自動スケーリングのしきい値を定義する場合、しきい値の定義としてより自然である CPU 使用率 (パーセンテージ) で表現します。自動スケーリンググループの一部として使用されるスケーリングポリシーを定義する場合は、しきい値をパーセンテージで定義して、ナノ秒単位ではなくパーセンテージで CPU 使用率を計算できます。

  • メトリクスの増加率を 1,000,000,000 で割ります。
  • その結果を仮想 CPU の数で割ります。
  • その結果に 100 を掛けてパーセンテージにします。

PromQL クエリーでこの値を計算するには、式 “(rate(ceilometer_cpu{server_group=~<stack_id>.*'}[150s])) / 1000000000 / <number_of_vCPUs> * 100" を使用します。

  • <server_name_prefix> を、サーバー名接頭辞の名前に置き換えます。
  • <number_of_vCPUs> を仮想 CPU の数に置き換えます。

5.4.2. インスタンスワークロードの vCPU をパーセンテージで表示する

openstack metric query コマンドを使用すると、インスタンスの CPU テレメトリーデータをナノ秒値ではなくパーセンテージで表示できます。

前提条件

  • 自動スケーリンググループリソースを使用して、heat スタックを作成し、インスタンスワークロードを生成している。

手順

  1. openstack クライアント Pod にアクセスします。

    $ oc rsh openstackclient
  2. 自動スケーリンググループの heat スタックの stack_id を取得します。

    $ openstack stack show stack1 -c id
    +-------+--------------------------------------+
    | Field | Value                                |
    +-------+--------------------------------------+
    | id    | 1ae77e51-ba09-452c-bc09-385f0791a366 |
    +-------+--------------------------------------+
  3. パーセンテージとして計算された値でメトリクスの増加率を返します。増加率は、指定されたウィンドウ内でメトリクスが増加した CPU 時間のナノ秒値として返されます。その数値を 1000000000 で割ると、秒単位の値が得られます。次に、この値に 100 を掛けてパーセンテージに変換します。最後に、インスタンスに割り当てられたフレーバーが提供する vCPU の数で合計値を割ります。この例は 1 vCPU の値であり、CPU 時間のパーセンテージとして値を表しています。クエリー内の server_group ラベルの値に stack_id を使用して、スタックからの結果のみを取得します。

    $ openstack metric query "rate(ceilometer_cpu{server_group='1ae77e51-ba09-452c-bc09-385f0791a366'}[150s])/1000000000*100/1" -c resource_name -c value
    +-------------------------------------------------------------------------+-------+
    | resource_name                                                           | value |
    +-------------------------------------------------------------------------+-------+
    | st-ih4tya6-bf63mo4vvyqp-pvdwdmvzov5c-vnf-x4f535xcvjyp:instance-00000003 | 0.525 |
    +-------------------------------------------------------------------------+-------+
  4. クエリーに offset キーワードを追加すると、値の履歴を確認できます。以下の出力は前の手順と似ていますが、10 分前のデータを使用しています。

    $ openstack metric query "rate(ceilometer_cpu{server_group='1ae77e51-ba09-452c-bc09-385f0791a366'}[150s] offset 10m)/1000000000*100/1" -c resource_name -c value
    +-------------------------------------------------------------------------+-------------------+
    | resource_name                                                           | value          	  |
    +-------------------------------------------------------------------------+-------------------+
    | st-ih4tya6-3ul7w6w66st7-mmvkxuwghjxl-vnf-dj7k7665csuv:instance-00000002 | 38.40833333333333 |
    +-------------------------------------------------------------------------+-------------------+

5.4.3. インスタンスワークロードの使用可能なテレメトリーを取得する

インスタンスワークロードの使用可能なテレメトリーを取得し、vCPU 使用率をパーセンテージで表します。

前提条件

  • 自動スケーリンググループリソースを使用して、heat スタックを作成し、インスタンスワークロードを生成している。

手順

  1. openstack クライアント Pod にアクセスします。

    $ oc rsh openstackclient
  2. 自動スケーリンググループの heat スタックの ID を取得します。

    $ openstack stack show stack1 -c id -c stack_status
    +--------------+--------------------------------------+
    | Field        | Value                                |
    +--------------+--------------------------------------+
    | id           | 0d6e19a9-2e1c-4728-b9ed-320da60c3c9d |
    | stack_status | CREATE_COMPLETE                      |
    +--------------+--------------------------------------+
  3. スタック ID の値を環境変数に設定します。

    $ export STACK_ID=$(openstack stack show stack1 -c id -f value)
  4. データを返すワークロードインスタンスの ID を取得します。サーバーリストの長い形式を使用し、自動スケーリンググループの一部であるインスタンスをフィルタリングできます。

    $ openstack server list --long --fit-width -c ID -c Name -c Properties | grep "metering.server_group='$STACK_ID'"
    | 94a776a6-ab74-41ec-9c21-26d3ca0a0138 | autoscaling_server_stack1-autoscalinggroup-l3qthrzpad67-nonm7balfxrn-sx6oebhyi3qo | metering.server_group='168364ae-afe2-4275-af28-aae01ee63b00' |
  5. 返されたインスタンスワークロード名のいずれかのインスタンス ID を設定します。

    $ INSTANCE_ID=94a776a6-ab74-41ec-9c21-26d3ca0a0138
  6. インスタンスリソース ID のメトリクスが保存されていることを確認します。利用できるメトリクスがない場合、インスタンスが作成されてから十分な時間が経過していないことを意味します。十分な時間が経過したら、インスタンスが実行されているコンピュートノードで podman logs ceilometer_agent_compute を実行することで、データ収集サービスのログを確認できます。また、oc logs prometheus-metric-storage-0 -c prometheus を実行して時系列データベースサービスである Prometheus のログを確認できます。

    $ openstack metric query "ceilometer_cpu{resource='$INSTANCE_ID'}" -c resource -c resource_name -c value -c unit
    +--------------------------------------+-----------------------------------------------------------------------------------------------------+------+--------------+
    | resource                             | resource_name                                                                                       | unit | value        |
    +--------------------------------------+-----------------------------------------------------------------------------------------------------+------+--------------+
    | a19f11ba-7834-4143-bf83-766af8199f04 | autoscaling_server_stack1-autoscalinggroup-5yzjn6ow4x6v-gmu2apozwluw-t7nqx63tybxh:instance-0000003c | ns   | 204290000000 |
    +--------------------------------------+-----------------------------------------------------------------------------------------------------+------+--------------+
  7. 収集された ceilometer メトリクスを表示します。

    $ openstack metric list | grep ceilometer
    | ceilometer_cpu                            |
    | ceilometer_disk_device_allocation         |
    | ceilometer_disk_device_capacity           |
    | ceilometer_disk_device_read_bytes         |
    | ceilometer_disk_device_read_latency       |
    | ceilometer_disk_device_read_requests      |
    | ceilometer_disk_device_usage              |
    | ceilometer_disk_device_write_bytes        |
    | ceilometer_disk_device_write_latency      |
    | ceilometer_disk_device_write_requests     |
    | ceilometer_image_size                     |
    | ceilometer_memory_usage                   |
    | ceilometer_network_incoming_bytes         |
    | ceilometer_network_incoming_bytes_delta   |
    | ceilometer_network_incoming_packets       |
    | ceilometer_network_incoming_packets_drop  |
    | ceilometer_network_incoming_packets_error |
    | ceilometer_network_outgoing_bytes         |
    | ceilometer_network_outgoing_bytes_delta   |
    | ceilometer_network_outgoing_packets       |
    | ceilometer_network_outgoing_packets_drop  |
    | ceilometer_network_outgoing_packets_error |
  8. インスタンスワークロード用に設定されたフレーバーを確認して、ワークロードインスタンスに適用される vCPU コアの数を取得します。

    $ openstack server show $INSTANCE_ID -cflavor -f value
    m1.small (692533fe-0912-417e-b706-5d085449db53)
    
    $ openstack flavor show 692533fe-0912-417e-b706-5d085449db53 -c vcpus -f value
    1
  9. パーセンテージとして計算された値でメトリクスの増加率を返します。増加率は、指定されたウィンドウ内でメトリクスが増加した CPU 時間のナノ秒の値として返されます。その数値を 1000000000 で割って、秒単位の値を取得します。その値は、100 を掛けて、パーセンテージに変換されます。最後に、インスタンスに割り当てられたフレーバーが提供する vCPU の数で合計値を割ります。この例は 1 vCPU の値であり、CPU 時間のパーセンテージとして値を表しています。

    $ openstack metric query "rate(ceilometer_cpu{resource=~'$INSTANCE_ID'}[150s])/1000000000*100/1" -c resource_name -c value -c resource
    +--------------------------------------+-----------------------------------------------------------------------------------------------------+--------------------+
    | resource                             | resource_name                                                                                       | value              |
    +--------------------------------------+-----------------------------------------------------------------------------------------------------+--------------------+
    | a19f11ba-7834-4143-bf83-766af8199f04 | autoscaling_server_stack1-autoscalinggroup-5yzjn6ow4x6v-gmu2apozwluw-t7nqx63tybxh:instance-0000003c | 0.6166666666666667 |
    +--------------------------------------+-----------------------------------------------------------------------------------------------------+--------------------+
  10. 結果の履歴を表示するには、クエリーに offset キーワードを追加します。次のコマンドの出力は前の手順の出力と似ていますが、10 分前のデータを使用しています。

    $ openstack metric query "rate(ceilometer_cpu{resource=~'$INSTANCE_ID'}[150s] offset 10m)/1000000000*100/1" -c resource_name -c value -c resource
    +--------------------------------------+-----------------------------------------------------------------------------------------------------+--------------------+
    | resource                             | resource_name                                                                                       | value              |
    +--------------------------------------+-----------------------------------------------------------------------------------------------------+--------------------+
    | a19f11ba-7834-4143-bf83-766af8199f04 | autoscaling_server_stack1-autoscalinggroup-5yzjn6ow4x6v-gmu2apozwluw-t7nqx63tybxh:instance-0000003c | 0.6083333333333333 |
    +--------------------------------------+-----------------------------------------------------------------------------------------------------+--------------------+

法律上の通知

Copyright © 2025 Red Hat, Inc.
The text of and illustrations in this document are licensed by Red Hat under a Creative Commons Attribution–Share Alike 3.0 Unported license ("CC-BY-SA"). An explanation of CC-BY-SA is available at http://creativecommons.org/licenses/by-sa/3.0/. In accordance with CC-BY-SA, if you distribute this document or an adaptation of it, you must provide the URL for the original version.
Red Hat, as the licensor of this document, waives the right to enforce, and agrees not to assert, Section 4d of CC-BY-SA to the fullest extent permitted by applicable law.
Red Hat, Red Hat Enterprise Linux, the Shadowman logo, the Red Hat logo, JBoss, OpenShift, Fedora, the Infinity logo, and RHCE are trademarks of Red Hat, Inc., registered in the United States and other countries.
Linux® is the registered trademark of Linus Torvalds in the United States and other countries.
Java® is a registered trademark of Oracle and/or its affiliates.
XFS® is a trademark of Silicon Graphics International Corp. or its subsidiaries in the United States and/or other countries.
MySQL® is a registered trademark of MySQL AB in the United States, the European Union and other countries.
Node.js® is an official trademark of Joyent. Red Hat is not formally related to or endorsed by the official Joyent Node.js open source or commercial project.
The OpenStack® Word Mark and OpenStack logo are either registered trademarks/service marks or trademarks/service marks of the OpenStack Foundation, in the United States and other countries and are used with the OpenStack Foundation's permission. We are not affiliated with, endorsed or sponsored by the OpenStack Foundation, or the OpenStack community.
All other trademarks are the property of their respective owners.
Red Hat logoGithubredditYoutubeTwitter

詳細情報

試用、購入および販売

コミュニティー

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

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

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

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

会社概要

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

Theme

© 2026 Red Hat
トップに戻る