この記事は
NTTドコモテクニカルジャーナル Vol.29 No.1 クラウドオーケストレータを活用した複数 Kubernetes 管理の筆者による解説記事です。この記事ではクラウドオーケストレーターを使いはじめるためのインストールとセットアップ方法を紹介します。
クラウドオーケストレーターとは
クラウドオーケストレーターは、複数のクラウドを管理するためのワンストップポータルです。
CMS である Drupal をベースにオープンソースとして公開されているため、どなたでも利用することができます。
クラウドオーケストレーターを使うメリット
- クラウドオーケストレーターを使うと、AWS、Kubernetes、OpenStack、VMware、Terraform Cloud といったさまざまなクラウドを一元的に管理できます。
- シングルサインオンや Azure AD (Active Directory) で既存のシステムに統合できます。
- Kubernetes のリソースの使用状況を分析、最適化し、運用コストを削減します。
インストール
クラウドオーケストレーターをインストールするには、いくつかの方法があります。
以下、3つの方法をそれぞれ説明します。
AWS Marketplace から起動
いちばん簡単な方法です。AWS Marketplace の Cloud Orchestrator から起動してください。
AWS CloudFormation を使う方法
ビデオマニュアル CloudFormation でインストールする方法 をご覧ください。
EC2、ECR、S3、IAM の管理者権限のアカウントが必要です。
- テンプレートを起動し、スタックが完了するまで数分待ちます。
- クラウドオーケストレーターの自動セットアップスクリプトが実行されます(十数分かかります)。
- 進行状況をみるには、サーバーに SSH で接続しログを確認します。
- スタック作成が完了したら、Drupal URL をクリックします。
以下の表から、利用環境に合った CloudFormation テンプレートを選択してください。
構成 | Apache2 | Memached | MariaDB | VPC | CloudFormation テンプレート |
---|---|---|---|---|---|
EC2 シングルインスタンス | Docker | Docker | Docker | 自動作成 | cloud_orchestrator_single.yaml |
EC2 シングルインスタンス | Docker | Docker | Docker | 既存利用 | cloud_orchestrator_single_manual_vpc.yaml |
EC2+ElastiCache+RDS | Docker | ElastiCache | RDS | 自動作成 | cloud_orchestrator_full.yaml |
EC2+ElastiCache+RDS | Docker | ElastiCache | RDS | 既存利用 | cloud_orchestrator_full_manual_vpc.yaml |
EC2 上の Docker+RDS | Docker | Docker | RDS | 既存利用 | cloud_orchestrator_docker_rds_manual_vpc.yaml |
※ Docker...同一 EC2 インスタンス上の Docker コンテナで実行されます。
PHP Composer によるインストール
ビデオマニュアル Composer でインストールする方法 をご覧ください。
-
はじめる前に、LAMP スタックと PHP の
composer
をあらかじめインストール・設定しておきます。 -
ターミナルを起動し、
/var/www
ディレクトリに移動します。cd /var/www
-
composer
でクラウドオーケストレーターをインストールします- 最新の Stable バージョンがインストールされます。
-
composer
でのインストール中、GitHub の API コールの回数制限でエラーになることがあります。GitHub のこの記事を参考に GitHub のトークンを適切に設定してから上のコマンドを再実行してみてください。
composer create-project docomoinnovations/cloud_orchestrator
-
composer
の実行終了後、ディレクトリ/var/www/cloud_orchestrator/docroot
が Cloud Orchestrator が稼働するホストのデフォルトトップページになるように、Apache2 や NGINX などお使いのウェブサーバーを設定します。 -
ウェブブラウザーを開いて、サイトに移動します。
-
インストール手順に従ってサイトを設定します。
セットアップ
ここでは、クラウドオーケストレーターで特に Kubernetes を管理するための設定方法を説明します。
Kubernetes の設定
-
アドミンユーザーを作成するための、以下の内容のマニフェストを作成します。
vi admin-user.yaml
apiVersion: v1 kind: ServiceAccount metadata: name: admin-user namespace: kube-system --- apiVersion: rbac.authorization.k8s.io/v1 kind: ClusterRoleBinding metadata: name: admin-user roleRef: apiGroup: rbac.authorization.k8s.io kind: ClusterRole name: cluster-admin subjects: - kind: ServiceAccount name: admin-user namespace: kube-system
-
マニフェストからアドミンユーザーを作成します。
kubectl apply -f admin-user.yaml
-
以下のコマンドを実行し、画面上に表示されるトークンを取得します。
export POD=$(kubectl -n kube-system get secret | grep admin-user-token | cut -f1 -d' ') && kubectl describe secret ${POD} --namespace kube-system
クラウドオーケストレーターの設定
- クラウドオーケストレーターにログインします。
- Tour または Cloud service providers メニューから、K8s Cloud Service Provider を追加します。
- API Server のフィールドにマスターノードの API エンドポイント URL、上で作成したアドミンユーザーのトークンを入力し、Save ボタンで保存します。
- 以下の画面が表示されれば成功です。
- Cloud service providers メニューからクラスタを選択すると、各種リソースが確認できます。
複数の Kubernetes クラスターの管理
上記の手順にしたがって各クラスターのマスターノードの API エンドポイント URL とアドミンユーザーのトークンを取得、K8s Cloud service provider をそれぞれ追加することで複数の K8s クラスターを管理できます。
次のステップ
クラウドオーケストレーターをもっと深く知りたい方のために、関連サイトをリストアップしておきます。