Anthos プライベート モード インフラストラクチャをインストールします

このページは、インフラストラクチャ オペレーターを対象としています。

Anthos プライベート モードとは、Anthos のバージョンの 1 つのことで、インターネットから物理的に完全に隔離された環境で実行されます。Anthos プライベート モードを使用すると、オンプレミスで厳しく規制されたワークロードを実行でき、同時にクラウド ネイティブ インフラストラクチャの多くのメリットを享受できます。

はじめに

Anthos プライベート モードのアーキテクチャは、ベアメタル版 Anthos の接続バージョンのアーキテクチャに似ています。クラスタユーザークラスタの作成と管理に使用する管理者が存在します。ワークロードはユーザー クラスタで実行します。Anthos プライベート モードのデプロイをインストールして管理するために必要なツールを含む単一のマシンである管理ワークステーションもあります。

ベアメタル版 Anthos の接続バージョンと比較して、Anthos プライベート モードには 3 つの追加コンポーネントがあります。

  • オプションのコンテナ レジストリ。管理ワークステーションで実行され、Anthos コンテナ イメージがすべて格納されます。Container Registry にアクセスできない場合に必要になります。
  • actl コマンドライン ツール。Anthos プライベート モードのインストールや他の管理タスクの実行を容易にします。
  • 承認と認証、オブザーバビリティ、マルチクラスタ Anthos 機能の管理を支援する Anthos Management Center。Management Center には、管理クラスタで実行されるウェブベースの Console が含まれます。Management Center Console のユーザー インターフェースを使用すると、Anthos のデプロイを構成するすべてのリソース(マシン、アドレスプール、ユーザー クラスタなど)を管理できます。Management Center Console を使用して Anthos 機能を管理し、ワークロードをモニタリングすることもできます。

Anthos プライベート モードのアーキテクチャを説明する図

図: Anthos のプライベート モードのアーキテクチャ図

環境の準備

プロダクト リリースへのアクセス権の取得、最新バージョンのダウンロード、依存関係のインストールを行います。

始める前に

このページで説明する手順を行う前に、Anthos プライベート モードの技術的な要件が満たされていることを確認してください。

Anthos プライベート モードへのアクセス権を取得する

Anthos プライベート モード リリースへのアクセス権は、Google から付与される必要があります。Google の担当者に各テスターのメールアドレスをご指定いただければ、ダウンロード リポジトリへのアクセス権をテスター各々に付与いたします。メールアドレスは Google アカウントである必要があります。

Google の担当者によって Anthos プライベート モード リリースにアクセスできることが確認された後、次のコマンドを実行して、Anthos プライベート モード リリースをダウンロードする権限があることを確認してください。

gsutil ls gs://anthos-private-mode-release/

エラーが表示された場合は、gcloud auth list コマンドを実行して、Google の担当者に提供したものと同じ Google アカウントが gsutil で使用されていることを確認します。

または、正しく権限が付与されていることは、最新のリリース バケットにアクセスして確認することもできます。その際のログインは、前に指定した Google アカウントで行う必要があります。

Anthos プライベート モード リリースへのアクセスで問題が発生した場合は、Google の担当者にお問い合わせください。

Anthos プライベート モードをダウンロードする

このセクションでは、Anthos プライベート モードのリリースをダウンロードします。このリリースは、それぞれ数ギガバイトの複数のファイルで構成されます。ご使用のインターネット接続によっては、ダウンロードに長い時間がかかることがあります。

Anthos プライベート モードをダウンロードする

管理ワークステーションで、次のコマンドを実行します。

# Login with the account granted access to Anthos private mode
gcloud auth login

# Download the script which helps download all the latest components
export VERSION=1.9.3-gke.0

# Please use official 'INSTALLER_DIGEST' value from https://cloud.google.com/anthos/private-mode/docs/1.9/installing/infrastructure#download
export INSTALLER_DIGEST=ad410b7450e8ecaaa94821592dd0f49a1ade75e460e9ab18205c3b1364c6e910
export INSTALLER=get-anthos-private-mode-$VERSION.sh
gsutil cp gs://anthos-private-mode-release/$VERSION/$INSTALLER .
if [[ -n "$INSTALLER_DIGEST" ]]; then echo "$INSTALLER_DIGEST $INSTALLER" | sha256sum -c; fi && chmod +x $INSTALLER && ./$INSTALLER

# If you are working on a workstation shared with other users,
# we recommend that you revoke your credentials after downloading the release.
gcloud auth revoke YOUR_EMAIL_ADDRESS

残りの依存関係をインストールする

Anthos プライベート モードのダウンロード完了後、次のコマンドを実行します。

cd anthos-baremetal-private-mode

# Add actl command line tool and tools directory to the PATH
export PATH=$PWD/bin:$PATH

# Download Harbor offline installer
curl -SL \
  https://github.com/goharbor/harbor/releases/download/v2.2.0/harbor-offline-installer-v2.2.0.tgz \
  --output "local-registry/harbor-offline-installer.tgz"

# Install docker-compose
curl -SL \
  https://github.com/docker/compose/releases/download/1.28.5/docker-compose-Linux-x86_64 \
  --output "local-registry/docker-compose"

この 2 つの手順は、インターネット接続が必要な唯一のプロセスです。 インターネットから完全に隔離された環境に Anthos プライベート モードをインストールする場合は、次のいずれかの方法を使用します。

  • まず、管理ワークステーションをインターネットに接続し、前述のリリースをダウンロードします。次に、ワークステーションをインターネットから切断し、完全に隔離された環境に接続します。
  • インターネットに接続されたデベロッパー ワークステーションからリリースをダウンロードし、ポータブル ストレージ デバイスにコピーして、このポータブル ストレージ デバイスを隔離された管理ワークステーションにつなぎ替えます。

Anthos 分離モードのリリースには、次の内容が含まれています。

./anthos-baremetal-private-mode
├── actl-workspace
│   └── admin
│       └── admin.yaml
├── baremetal
│   ├── images
│   └── package-spec.yaml
├── bin
│   ├── actl
│   ├── istioctl
│   └── nomos
├── local-registry
│   ├── cleanup.sh
│   ├── docker-compose
│   ├── generate-certs.sh
│   ├── harbor-offline-installer.tgz
│   └── install.sh
├── managementcenter
│   ├── images
│   └── management-center.yaml
├── services
│   ├── anthos-config-management
│   ├── anthos-service-mesh
│   └── images
├── third_party
└── updatecenter
    └── images
  • local-registry ディレクトリには、ローカルのコンテナ レジストリを設定するためのリソースが含まれています。
  • managementcenterservicesbaremetal など、他のディレクトリには、管理クラスタと Anthos Management Center をインストールするために必要なものがすべて含まれています。

(省略可)actl シェルのオートコンプリートを有効にする

actl コマンドライン ツールは、Bash、Zsh、Fish のシェル オート コンプリートをサポートしています。Ubuntu / Debian の bash などで、actl help completion の手順に沿ってシェルでオートコンプリートを設定します。

# One time setup: install bash-completion
sudo apt update && sudo apt install bash-completion

# In ~/.bashrc
source /etc/profile.d/bash_completion.sh
source <(actl completion bash)

コンテナ レジストリを設定する

Anthos プライベート モードは、Anthos コンテナ イメージをローカルのコンテナ レジストリに格納することにより機能します。独自のコンテナ レジストリを使用することも、Anthos プライベート モードにバンドルされたコンテナ レジストリを使用することもできます。

次の環境変数をエクスポートします。

export REGISTRY_HOST=REGISTRY_HOST
export REGISTRY_PASSWORD=REGISTRY_PASSWORD

# By default, a public project called 'library' is created,
# and you can also create other public or private projects with the container registry portal.
export PRIVATE_REGISTRY=${REGISTRY_HOST}/library

以下を置き換えます。

  • REGISTRY_HOST は、レジストリ IP アドレスです。管理ワークステーションに Anthos プライベート モード コンテナ レジストリをインストールして使用する場合は、ここで管理ワークステーションの IP アドレスを使用します。

  • REGISTRY_PASSWORD は、レジストリ パスワードに設定した値です。

独自のコンテナ レジストリを使用する場合は、コンテナ レジストリへのイメージのアップロード セクションの手順に進んでください。

Anthos プライベート モードの Container Registry を設定する

このセクションでは、管理ワークステーションに非公開のコンテナ レジストリを設定します。管理ワークステーションから、次のコマンドをすべて実行します。

  1. 自前の非公開コンテナ レジストリがない場合は、Anthos プライベート モードの Container Registry をインストールします。

    cd ~/anthos-baremetal-private-mode
    
    # Move it to a path under $PATH
    chmod a+x local-registry/docker-compose
    sudo cp local-registry/docker-compose /usr/bin
    
    # Install local registry
    ./local-registry/install.sh
    
  2. レジストリにログインして、アクセスできることを確認してください。エラーが表示された場合は、数秒待ってください。

    docker login ${REGISTRY_HOST} -u admin -p ${REGISTRY_PASSWORD}
    

注:

  • Anthos プライベート モードのコンテナ レジストリは、Anthos プライベート モードのインストールにのみ使用されます。本番環境で使用するには、まだ適切ではありません。
  • デフォルトの公開レジストリ プロジェクトは library で、デフォルトで使用できますが、必要に応じてレジストリにログインし、新しいプロジェクトを作成することもできます。
  • コンテナ レジストリは、サービスの開始後、https://REGISTRY_HOST/ で利用できます。ログイン認証情報は、ユーザー名が admin で、REGISTRY_PASSWORD がパスワードです。
  • 認証情報は暗号化されずに /home/<USER>/.docker/config.json に保存されます。

コンテナ レジストリにイメージをアップロードする

このセクションでは、Anthos プライベート モードのコンテナ イメージをコンテナ レジストリにアップロードします。

Anthos プライベート モードのコンテナ イメージを準備して、コンテナ レジストリにアップロードします。入力を求めるメッセージが表示されたら、Use that credential オプションを選択するか、新しい認証情報を入力します。

actl images push --private-registry=${PRIVATE_REGISTRY} \
    --images ~/anthos-baremetal-private-mode

注: ワークステーションで HTTP プロキシを使用する場合、actl images push コマンドが機能するには、次の環境変数の設定解除が必要になる場合があります。

unset http_proxy
unset https_proxy
unset HTTP_PROXY
unset HTTPS_PROXY

省略可: Helm チャートを Container Registry にアップロードする

このセクションでは、オプションの Anthos プライベート モードの Helm チャートをコンテナ レジストリにアップロードします。Anthos プライベート モード バージョン 1.9 には、2 つの Google Cloud Marketplace ソリューション(PostgreSQL と Redis)用のバンドル Helm チャートが含まれています。これらの一般的なオープンソース ソフトウェア スタックは、Google によってパッケージ化され、接続されていない環境で動作するように設計されています。

  1. Anthos プライベート モードの Helm チャートを準備して Container Registry にアップロードします。入力を求めるメッセージが表示されたら、Use that credential オプションを選択するか、新しい認証情報を入力します。

    actl packages push --private-registry=${PRIVATE_REGISTRY} \
      ~/anthos-baremetal-private-mode/services/third_party-postgresql/package-spec.yaml
    actl packages push --private-registry=${PRIVATE_REGISTRY} \
      ~/anthos-baremetal-private-mode/services/third_party-redis-ha/package-spec.yaml
    
  2. Anthos プライベート モードの Helm チャートを Container Registry から pull するには、Helm の試験運用版 OCI サポートを有効にします。

    export HELM_EXPERIMENTAL_OCI=1
    
  3. 非公開レジストリで自己署名証明書を使用する場合は、システム内の認証局(CA)証明書も更新する必要があります。詳細については、こちらの Helm の問題をご覧ください。

    sudo cp local-registry/ca.crt /usr/local/share/ca-certificates/
    sudo update-ca-certificates
    
  4. レジストリにログインして、アクセスできることを確認してください。

    helm registry login ${REGISTRY_HOST} -u admin -p ${REGISTRY_PASSWORD}
    
  5. Anthos プライベート モードの Helm チャートを Container Registry から pull してエクスポートします。

    helm chart pull ${PRIVATE_REGISTRY}/<CHART>:<TAG>
    helm chart export ${PRIVATE_REGISTRY}/<CHART>:<TAG> .
    

次のステップ