このページでは、Compute Engine 上で動作する仮想マシン(VM)を使用して、高可用性(HA)モードで ベアメタル版 Anthos クラスタを試す方法について説明します。
ベアメタル版 Anthos クラスタは、ハードウェアを準備せずにすぐに試すことができます。このページの手順を完了すると、ベアメタル版 Anthos 環境用に Compute Engine で実行されるテスト環境を操作できるようになります。
Compute Engine VM 上でベアメタル版 Anthos クラスタを試すには、次の手順を行います。
- Compute Engine で 6 つの VM を作成する
- すべての VM 間に L2 接続で
vxlan
ネットワークを作成する - ベアメタル版 Anthos クラスタを使用するための前提条件をインストールする
- ベアメタル版 Anthos クラスタをデプロイする
- クラスタを確認する
始める前に
デプロイに必要なリソースは次のとおりです。
- ベアメタル版 Anthos クラスタをデプロイするための 6 つの VM
- プロジェクトに対するオーナー権限で
gcloud
にログインしている 1 つのワークステーション。
このガイドの手順は、anthos-samples リポジトリのインストール スクリプトから取得されています。よくある質問セクションには、このスクリプトを利用し、一般的なバリエーションを処理する方法の詳細が記載されています。
Compute Engine で 6 つの VM を作成する
以下の VM を作成する手順は次のとおりです。
- 1 つの管理 VM。別のマシンにベアメタル版 Anthos クラスタをデプロイするために使用。
- ベアメタル版 Anthos クラスタのコントロール プレーンを実行するために必要な 3 つのコントロール プレーン ノード用の 3 つの VM。
- ベアメタル版 Anthos クラスタでワークロードを実行するために必要な 2 つのワーカーノード用の 2 つの VM。
環境変数を設定します。
export PROJECT_ID=PROJECT_ID export ZONE=ZONE
次のコマンドを実行して、Google アカウントでログインし、プロジェクトをデフォルトとして設定します。
gcloud auth login gcloud config set project $PROJECT_ID
baremetal-gcr
サービス アカウントを作成します。Google Cloud APIs とサービスを有効にします。
複数の API とサービスに複数のサービス アカウントが必要とならないように、
baremetal-gcr
サービス アカウントに追加の権限を付与します。このページのすべてのコマンドに必要な変数と配列を作成します。
次のループを使用して 6 つの VM を作成します。
次のループを使用して、すべての VM で SSH を使用できることを確認します。
VM 間の L2 接続を使用して vxlan
ネットワークを作成する
Linux の標準 vxlan
機能を使用して、L2 接続ですべての VM を接続するネットワークを作成します。
以下のコマンドには、次のアクションを行う 2 つのループが含まれています。
これで、10.200.0.0/24 ネットワーク内に L2 接続が確立されました。VM には次の IP アドレスが割り振られます。
- 管理 VM: 10.200.0.2
- コントロール プレーン ノードを実行する VM:
- 10.200.0.3
- 10.200.0.4
- 10.200.0.5
- ワーカーノードを実行する VM:
- 10.200.0.6
- 10.200.0.7
ベアメタル版 Anthos クラスタを使用するための前提条件をインストールする
ベアメタル版 Anthos クラスタをインストールするには、管理マシンに次のツールが必要です。
bmctl
kubectl
- Docker
次のコマンドを実行して、必要なツールをインストールします。
次のコマンドを実行して、
root@10.200.0.x
が動作することを確認します。このコマンドは、以下のタスクを実行します。- 管理マシンで新しい SSH 認証鍵を生成します。
- デプロイメント内の他のすべての VM に公開鍵を追加します。
ベアメタル版 Anthos クラスタをデプロイする
次のコードブロックには、次のタスクを完了するために必要なすべてのコマンドと構成が含まれています。
- 必要なハイブリッド クラスタ用の構成ファイルを作成します。
- プリフライト チェックを実行します。
- クラスタをデプロイします。
gcloud compute ssh root@$VM_WS --zone ${ZONE} << EOF
set -x
export PROJECT_ID=$(gcloud config get-value project)
export clusterid=CLUSTER_NAME
bmctl create config -c \$clusterid
cat > bmctl-workspace/\$clusterid/\$clusterid.yaml << EOB
---
gcrKeyPath: /root/bm-gcr.json
sshPrivateKeyPath: /root/.ssh/id_rsa
gkeConnectAgentServiceAccountKeyPath: /root/bm-gcr.json
gkeConnectRegisterServiceAccountKeyPath: /root/bm-gcr.json
cloudOperationsServiceAccountKeyPath: /root/bm-gcr.json
---
apiVersion: v1
kind: Namespace
metadata:
name: cluster-\$clusterid
---
apiVersion: baremetal.cluster.gke.io/v1
kind: Cluster
metadata:
name: \$clusterid
namespace: cluster-\$clusterid
spec:
type: hybrid
anthosBareMetalVersion: 1.12.3
gkeConnect:
projectID: \$PROJECT_ID
controlPlane:
nodePoolSpec:
clusterName: \$clusterid
nodes:
- address: 10.200.0.3
- address: 10.200.0.4
- address: 10.200.0.5
clusterNetwork:
pods:
cidrBlocks:
- 192.168.0.0/16
services:
cidrBlocks:
- 172.26.232.0/24
loadBalancer:
mode: bundled
ports:
controlPlaneLBPort: 443
vips:
controlPlaneVIP: 10.200.0.49
ingressVIP: 10.200.0.50
addressPools:
- name: pool1
addresses:
- 10.200.0.50-10.200.0.70
clusterOperations:
# might need to be this location
location: us-central1
projectID: \$PROJECT_ID
storage:
lvpNodeMounts:
path: /mnt/localpv-disk
storageClassName: node-disk
lvpShare:
numPVUnderSharedPath: 5
path: /mnt/localpv-share
storageClassName: local-shared
nodeConfig:
podDensity:
maxPodsPerNode: 250
---
apiVersion: baremetal.cluster.gke.io/v1
kind: NodePool
metadata:
name: node-pool-1
namespace: cluster-\$clusterid
spec:
clusterName: \$clusterid
nodes:
- address: 10.200.0.6
- address: 10.200.0.7
EOB
bmctl create cluster -c \$clusterid
EOF
クラスタを確認する
クラスタの kubeconfig
ファイルは、管理マシンの bmctl-workspace
ディレクトリにあります。デプロイを確認するには次の手順を行います。
管理ワークステーションに SSH で接続します。
gcloud compute ssh root@$VM_WS --zone ${ZONE}
KUBECONFIG
環境変数にクラスタの構成ファイルへのパスを設定し、クラスタでkubectl
コマンドを実行します。export clusterid=CLUSTER_NAME export KUBECONFIG=$HOME/bmctl-workspace/$clusterid/$clusterid-kubeconfig kubectl get nodes
Google Cloud コンソールからクラスタにログインする
Google Cloud コンソールでベアメタル版 Anthos クラスタのワークロードを確認するには、クラスタの kubeconfig
ファイルが保存されている管理マシンにログインする必要があります。
詳細については、Google Cloud コンソールからクラスタにログインするをご覧ください。
クリーンアップ
管理マシンに接続して、クラスタ VM をインストール前の状態にリセットし、Google Cloud プロジェクトからクラスタを登録解除します。
gcloud compute ssh root@$VM_WS --zone ${ZONE} << EOF set -x export clusterid=CLUSTER_NAME bmctl reset -c \$clusterid EOF
名前に
abm
を含むすべての VM を一覧表示します。gcloud compute instances list | grep 'abm'
名前に
abm
を含むすべての VM を削除しても問題がないことを確認します。確認後、次のコマンドを実行して
abm
VM を削除できます。gcloud compute instances list --format="value(name)" | grep 'abm' | xargs gcloud \ --quiet compute instances delete