RHEL を構成する

Google Distributed Cloud を使用するには、ノードマシンの基本オペレーティング システムを構成する必要があります。このページでは、必要な構成を完了するために必要な手順を説明します。Google Distributed Cloud のトラブルシューティングの詳細については、トラブルシューティング ガイドをご覧ください。

始める前に

サポートされているバージョンのオペレーティング システムを使用していることをご確認ください。サポートされているバージョンのリストについては、オペレーティング システムの選択をご覧ください。

BPF Just In Time コンパイラを有効にする

オペレーティング システムのカーネルで、BPF Just In Time コンパイラ オプションが有効(CONFIG_BPF_JIT=y)になっている必要があります。

  • このオプションが有効かどうかを確認するには、次のコマンドを実行します。

    grep CONFIG_BPF_JIT /boot/config-$(uname -r)
    

パッケージ管理システムを検証する

RedHat のユーザー名とパスワードを設定済みであり、構成しているマシンへの root 権限を付与されていることを確認します。パッケージ マネージャーの検証手順は次のとおりです。

  1. ご利用のオペレーティング システムを登録していない場合は、RedHat のユーザー名とパスワードを使用して RedHat に登録し、アップデートをダウンロードしてください。

    sudo subscription-manager register
    
    sudo subscription-manager refresh
    
    sudo subscription-manager attach --auto
    
  2. アップデートを確認します。

    sudo dnf check-update
    

    出力にエラーがないことと、最後のメタデータの有効期限が含まれていることを確認します。次に例を示します。

    Updating Subscription Management repositories.
    ...
    # Last metadata expiration check: ...
    ...
    

firewalld の構成と無効化

firewalld は、Google Distributed Cloud で使用するために構成することも、無効にすることもできます。firewalld の構成については、ネットワーク要件ページの firewalld ポートの構成をご覧ください。

firewalld は、次の手順で無効にします。

  1. firewalld を無効にします。

    sudo systemctl stop firewalld
    
    sudo systemctl disable firewalld
    
  2. firewalld のステータスをチェックして、無効になっていることを確認します。

    sudo systemctl status firewalld | grep "Active"
    # Output
    # Active: inactive (dead)
    

ワークステーションに Docker を構成する

Docker を手動でインストールする手順は次のとおりです。

  1. 以前の Docker バージョンをすべて削除します。

    sudo dnf remove docker \
        docker-client \
        docker-client-latest \
        docker-common \
        docker-latest \
        docker-latest-logrotate \
        docker-logrotate \
        docker-engine
    
  2. podman-manpages を削除します。

    sudo dnf remove podman-manpages
    
  3. Docker 20.10.0 以降のインストール

    sudo dnf install -y yum-utils
    
    sudo yum-config-manager \
        --add-repo \
        https://download.docker.com/linux/rhel/docker-ce.repo
    
    sudo dnf install -y --allowerasing docker-ce docker-ce-cli containerd.io
    
    sudo systemctl start docker
    
  4. バージョン 20.10.0 以降が実行されていることを確認します。

    sudo docker version
    
  5. 出力と次の例を比較して、クライアントとサーバーのバージョンが 20.10.0 以降であることを確認します。

    Client: Docker Engine - Community
    Version:           25.0.3
    ...
    Server: Docker Engine - Community
    Engine:
    Version:          25.0.3
    
  6. Docker が動作していることを確認します。

    docker run hello-world
    

    次のように表示されます。

    Hello from Docker!
    

    This message shows that your installation appears to be working correctly.

時刻同期の設定

時刻同期は、指定した外部時間基準を使用して、ノードマシンの時計を設定することで構成されます。時刻同期は、イベント ロギングや指標収集など、時間的制約のあるクラスタ アクティビティにとって重要です。ノードマシンのカーネルは、ノード上で実行されるコンテナのクロックを制御します。適切な時刻同期を保証するには、利用可能なサービス(chronysystemd-timesyncdntp、または ntpdate)のいずれかを使用して、ネットワーク タイム プロトコル(NTP)サービスをマシンにインストールします。timedatectl を実行して、システム クロックが同期していることを確認します。timedatectl の出力には次のステータスが含まれます。

System clock synchronized: yes

Linux カーネルの inotify の上限が最小値以上であることを確認する

RHEL 9 を実行しているマシンの場合、Linux カーネル inotify の最大ユーザー インスタンスとユーザー ウォッチの上限は、次の値以上または次の値と等しくする必要があります。

  • fs.inotify.max_user_instances: 8192
  • fs.inotify.max_user_watches: 524288

これらの値がノードマシンで正しく設定されるように以下のことを確認します。

  1. max_user_instances の値を確認します。

    cat /proc/sys/fs/inotify/max_user_instances
    
  2. 必要に応じて、max_user_instances を最小値に更新します。

    echo 'fs.inotify.max_user_instances=8192' | sudo tee --append /etc/sysctl.conf
    
  3. max_user_watches の値を確認します。

    cat /proc/sys/fs/inotify/max_user_watches
    
  4. 必要に応じて、max_user_watches を最小値に更新します。

    echo 'fs.inotify.max_user_watches=524288' | sudo tee --append /etc/sysctl.conf
    
  5. いずれかの値を更新した場合は、マシンを再起動します。

ベスト プラクティス

インストールを簡素化するために、ヘッドレス管理の最小限のインストールを使用して RHEL を構成することをおすすめします。また、ネットワーク接続を有効にし、デフォルトの DHCP を使用するか、有効な静的 IP アドレスとネットワーク情報を指定します。cloud.google.com などの必要な外部リソースにマシンが接続できることを確認してください。

Docker の実行に失敗した場合は、次のコマンドで Docker デーモンが動作していることを確認します。

sudo systemctl start docker