Ubuntu を構成する

ベアメタル版 GKE を使用するには、ノードマシンの基本オペレーティング システムを構成する必要があります。このページでは、必要な構成を完了するために必要な手順を説明します。GKE on Bare Metal の要件のトラブルシューティングの詳細については、既知の問題をご覧ください。

準備

サポートされているバージョンのオペレーティング システムと Ubuntu Hardware Enablement(HWE)カーネルを使用していることを確認します。サポートされているバージョンのリストについては、オペレーティング システムの選択をご覧ください。

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

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

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

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

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

  • 次のコマンドを使用して、パッケージ管理システムが正しく動作していることを確認します。

    sudo apt-get check
    

    エラーがない場合、出力は次の例のようになります。

    # Reading package lists... Done
    # Building dependency tree
    # Reading state information... Done
    

Uncomplicated Firewall(UFW)を無効にする

  1. ufw を無効にします:

    sudo ufw disable
    
  2. ufw が無効になっていることを確認します。

    sudo ufw status
    # Status: inactive
    

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

ベアメタル版 GKE では、状況に応じて次のように、Docker をベアメタル マシンにインストールできます。

  • ベアメタル マシンに Docker がインストールされていない場合は、bmctl によって 20.10.0 以降がインストールされます。
  • ベアメタル マシンに Docker 19.03.5 以前がインストールされている場合は、bmctl によって Docker がバージョン 20.10.0 以降にアップグレードされます。

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

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

    sudo apt-get remove docker docker-engine docker.io containerd runc
    
  2. パッケージ マネージャーを更新します。

    sudo apt-get update
    
  3. Docker 20.10.0 以降のインストール

    sudo apt-get install \
      apt-transport-https \
      ca-certificates \
      curl \
      gnupg-agent \
      software-properties-common \
      docker.io
    
  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
    

時刻同期の設定

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

System clock synchronized: yes

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

Ubuntu 22.04 を実行しているマシンの場合、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. いずれかの値を更新した場合は、マシンを再起動します。