Anthos(GKE Enterprise):クイックスタート
このクイックスタートでは、ニフクラ CatalogのAnthos(GKE Enterprise)テンプレートを使用して、Anthos clusters on bare metal(GKE on bare metal) のクラスターをスタンドアローンクラスターで作成する方法と、そのクラスターに接続する方法について説明します。
- ステップ1:申し込み・ログイン
- ステップ2:Google Cloudの準備
- ステップ3:SSHキー作成
- ステップ4:リソースグループ作成
- ステップ5:初期設定
- ステップ6:管理ワークステーションのファイアウォールグループにINルールを追加
- ステップ7:クラスター接続
- ステップ8:Google Cloudのクラスター認証
ステップ1:申し込み・ログイン
ニフクラ Catalogを利用するにはニフクラの申し込みが必要です。
ニフクラへのお申し込み
「ニフクラお申し込み」より、申し込みを行います。
コントロールパネルにログイン
ニフクラのコントロールパネルにログインします。
ステップ2:Google Cloudの準備
ニフクラ側とは別に、Google Cloud側の準備 を行う必要があります。
ステップ3:SSHキー作成
作成するサーバーと同じリージョンでSSHキーを事前に生成する必要があります。
コントロールパネル左上のプルダウンメニューから「コンピューティング」を選択します。
右上のメニューから「リージョン」をクリックし、SSHキーを作成するリージョンを選択します。
左メニューから「SSHキー」を選択します。
左上の「SSHキー作成」を選択します。
SSHキーの名前、パスフレーズ、メモを入力し「作成する」をクリックします。
秘密鍵がダウンロードされ、作成したSSHキーが一覧に表示されます。
ステップ4:リソースグループ作成
コントロールパネル左上のプルダウンメニューから「Catalog」を選択します。
左メニューから「リソースグループ」を選択します。
左上の「リソースグループ作成」を選択します。
「01 テンプレート選択」タブで Anthos(GKE Enterprise) を選択し、「基本設定へ」をクリックします。
「02 基本設定」タブでリソースグループ名、メモを入力し、「作成する」をクリックします。
リソースグループの初期設定の画面が表示されれば、リソースグループの作成は完了です。
ステップ5:初期設定
「01 基本設定」タブでリソースグループ全体の設定を行い、「Google Cloud設定へ」をクリックします。
デプロイメントモデルには、スタンドアローンクラスターを選択します。
「02 Google Cloud設定」タブでGoogle Cloudの設定を行い、「管理ワークステーション設定へ」をクリックします。
サービスアカウントキーは、Google Cloud側の準備で作成したものをアップロードします。
「03 管理ワークステーション設定」タブで管理ワークステーションの設定を行い、「クラスター設定へ」をクリックします。
「04 クラスター設定」タブでクラスターの設定を行い、「確認へ」をクリックします。
「05 確認」タブで設定内容を確認し「設定する」をクリックします。
リソースグループのステータスが「プロビジョニング中」から「プロビジョニング完了」になれば、クラスターを利用することができます。 作成するノード数やサーバータイプによって、リソースグループが「プロビジョニング完了」となるまでに時間のかかる場合があります。
ステップ6:管理ワークステーションのファイアウォールグループにINルールを追加
管理ワークステーションにSSHログインするため、管理ワークステーションに設定されているファイアウォールグループにINルールを追加します。
管理ワークステーションに設定されているファイアウォールグループ名を確認します。 リソースグループの詳細ボタンをクリックし、「管理ワークステーション」タブのファイアウォールを確認して控えておきます。
コントロールパネル左上のプルダウンメニューから「コンピューティング」を選択します。
左メニューから「ファイアウォール」を選択します。
管理ワークステーションに設定されているファイアウォールグループのチェックをONにします。
「選択したファイアウォールグループの操作」ドロップダウンメニューから「INルール追加」を選択します。
「+ ルール追加」をクリックし、ルールの設定を行ったのち、右下の「ルール追加」をクリックします。
ここでは、管理ワークステーションにSSHで接続するために、クライアントのIPアドレスからの SSH:22 のINルールの許可を追加します。
作成したファイアウォールグループに、ルールが追加されていれば作成成功です。
ステップ7:クラスター接続
クライアント環境から「03 管理ワークステーション設定」で指定したsshキーを利用し、管理ワークステーションにSSHログインします。
kubectl
等で作成したクラスターに接続することができます。/opt/nifcloud-catalog/bmctl-workspace
はbmctl
のワークスペースとして利用され、クラスターへの接続ファイルもこのディレクトリ配下にあります。$ kubectl get node --kubeconfig=/opt/nifcloud-catalog/bmctl-workspace/quickstart/quickstart-kubeconfig NAME STATUS ROLES AGE VERSION qscpsv3lsbo Ready control-plane 92m v1.27.4-gke.1600 qswksv98h6j Ready worker 87m v1.27.4-gke.1600 qswksva6qwj Ready worker 87m v1.27.4-gke.1600 qswksva6sit Ready worker 88m v1.27.4-gke.1600
ステップ8:Google Cloudのクラスター認証
Anthos(GKE Enterprise)テンプレートの初期設定が正常に完了すると、Google Cloudのコントロールパネルで作成したクラスターが確認できます。
Google Cloud外で作成したクラスターは、Google Cloudのコントロールパネルでクラスターへのログインを要求されます。認証方法はいくつかありますが、ここでは、クラスター内にKubernetesサービスアカウントを作成し、その署名なしトークンを使用してログインします。詳細は、Google Cloud: 署名なしトークンを使用して認証するを参照してください。
クライアント環境から「03 管理ワークステーション設定」で指定したsshキーを利用し、管理ワークステーションにSSHログインします。
cloud-console-reader RBAC ロールを作成して適用します。
$ export KUBECONFIG=/opt/nifcloud-catalog/bmctl-workspace/quickstart/quickstart-kubeconfig $ cat <<EOF > cloud-console-reader.yaml kind: ClusterRole apiVersion: rbac.authorization.k8s.io/v1 metadata: name: cloud-console-reader rules: - apiGroups: [""] resources: ["nodes", "persistentvolumes", "pods"] verbs: ["get", "list", "watch"] - apiGroups: ["storage.k8s.io"] resources: ["storageclasses"] verbs: ["get", "list", "watch"] EOF $ kubectl apply -f cloud-console-reader.yaml
Kubernetesサービスアカウントを作成して権限をバインドします。
$ KSA_NAME=quickstart $ kubectl create serviceaccount ${KSA_NAME} $ kubectl create clusterrolebinding quickstart-view \ --clusterrole view --serviceaccount default:${KSA_NAME} $ kubectl create clusterrolebinding quickstart-cloud-console-reader \ --clusterrole cloud-console-reader --serviceaccount default:${KSA_NAME}
Kubernetesサービスアカウントのトークンの取得します。
$ SECRET_NAME=quickstart-token $ kubectl apply -f - << __EOF__ apiVersion: v1 kind: Secret metadata: name: "${SECRET_NAME}" annotations: kubernetes.io/service-account.name: "${KSA_NAME}" type: kubernetes.io/service-account-token __EOF__ $ until [[ $(kubectl get -o=jsonpath="{.data.token}" "secret/${SECRET_NAME}") ]]; do echo "waiting for token..." >&2; sleep 1; done $ kubectl get secret ${SECRET_NAME} -o jsonpath='{$.data.token}' | base64 --decode
Google Cloudのコントロールパネルにお客様のアカウントでログインします。
作成したクラスターに対して、4の手順で取得したトークンを指定してクラスター認証をします。