1 - Helmを使用したサービスカタログのインストール
サービスカタログは kubernetesクラスターで稼働するアプリケーションが、クラウドプロバイダーによって提供されるデータストアサービスのように、外部のマネージドソフトウェアを容易に使えるようにするための拡張APIです。
サービスカタログを使用することで、提供されているマネージドサービスを、それらのサービスがどのように作成されるか、また管理されるかについての知識を無しに、一覧表示したり、プロビジョニングや使用をすることができます。
Helmを使用してKubernetesクラスターにサービスカタログをインストールします。手順の最新情報はkubernetes-sigs/service-catalogリポジトリーを参照してください。
始める前に
- サービスカタログの基本概念を理解してください。
- サービスカタログを使用するには、Kubernetesクラスターのバージョンが1.7以降である必要があります。
- KubernetesクラスターのクラスターDNSを有効化する必要があります。
- クラウド上のKubernetesクラスター、またはMinikubeを使用している場合、クラスターDNSはすでに有効化されています。
hack/local-up-cluster.shを使用している場合は、環境変数KUBE_ENABLE_CLUSTER_DNSが設定されていることを確認し、インストールスクリプトを実行してください。
- kubectlのインストールおよびセットアップを参考に、v1.7以降のkubectlをインストールし、設定を行ってください。
- v2.7.0以降のHelmをインストールしてください。
- Helm install instructionsを参考にしてください。
- 上記のバージョンのHelmをすでにインストールしている場合は、
helm initを実行し、HelmのサーバーサイドコンポーネントであるTillerをインストールしてください。
Helmリポジトリーにサービスカタログを追加
Helmをインストールし、以下のコマンドを実行することでローカルマシンにservice-catalogのHelmリポジトリーを追加します。
helm repo add svc-cat https://kubernetes-sigs.github.io/service-catalog
以下のコマンドを実行し、インストールに成功していることを確認します。
helm search service-catalog
インストールが成功していれば、出力は以下のようになります:
NAME CHART VERSION APP VERSION DESCRIPTION
svc-cat/catalog 0.2.1 service-catalog API server and controller-manager helm chart
svc-cat/catalog-v0.2 0.2.2 service-catalog API server and controller-manager helm chart
RBACの有効化
KubernetesクラスターのRBACを有効化することで、Tiller Podにcluster-adminアクセスを持たせます。
v0.25以前のMinikubeを使用している場合は、明示的にRBACを有効化して起動する必要があります:
minikube start --extra-config=apiserver.Authorization.Mode=RBAC
v0.26以降のMinikubeを使用している場合は、以下のコマンドを実行してください。
minikube start
v0.26以降のMinikubeを使用している場合、--extra-configを指定しないでください。
このフラグは--extra-config=apiserver.authorization-modeを指定するものに変更されており、現在MinikubeではデフォルトでRBACが有効化されています。
古いフラグを指定すると、スタートコマンドが応答しなくなることがあります。
hack/local-up-cluster.shを使用している場合、環境変数AUTHORIZATION_MODEを以下の値に設定してください:
AUTHORIZATION_MODE=Node,RBAC hack/local-up-cluster.sh -O
helm initは、デフォルトでkube-systemのnamespaceにTiller Podをインストールし、TillerはdefaultのServiceAccountを使用するように設定されています。
helm initを実行する際に--tiller-namespaceまたは--service-accountのフラグを使用する場合、以下のコマンドの--serviceaccountフラグには適切なnamespaceとServiceAccountを指定する必要があります。Tillerにcluster-adminアクセスを設定する場合:
kubectl create clusterrolebinding tiller-cluster-admin \
--clusterrole=cluster-admin \
--serviceaccount=kube-system:default
Kubernetesクラスターにサービスカタログをインストール
以下のコマンドを使用して、Helmリポジトリーのrootからサービスカタログをインストールします:
helm install catalog svc-cat/catalog --namespace catalog
helm install svc-cat/catalog --name catalog --namespace catalog
次の項目
2 - SCを使用したサービスカタログのインストール
サービスカタログは kubernetesクラスターで稼働するアプリケーションが、クラウドプロバイダーによって提供されるデータストアサービスのように、外部のマネージドソフトウェアを容易に使えるようにするための拡張APIです。
サービスカタログを使用することで、提供されているマネージドサービスを、それらのサービスがどのように作成されるか、また管理されるかについての知識を無しに、一覧表示したり、プロビジョニングや使用をすることができます。
GCPのService Catalog Installerツールを使うと、Kubernetesクラスター上にサービスカタログを簡単にインストール・アンインストールして、Google Cloudのプロジェクトに紐付けることもできます。
サービスカタログ自体は、Google Cloudだけではなく、どのような種類のマネージドサービスでも動作します。
始める前に
サービスカタログの基本概念を理解してください。
Go 1.6+をインストールして、
GOPATHを設定してください。SSLに関するファイルを生成するために必要なcfsslツールをインストールしてください。
サービスカタログを使用するには、Kubernetesクラスターのバージョンが1.7以降である必要があります。
kubectlのインストールおよびセットアップを参考に、v1.7以降のkubectlをインストールし、設定を行ってください。
サービスカタログをインストールするためには、kubectlのユーザーがcluster-adminロールにバインドされている必要があります。正しくバインドされていることを確認するには、次のコマンドを実行します。
kubectl create clusterrolebinding cluster-admin-binding --clusterrole=cluster-admin --user=<user-name>
ローカル環境にscをインストールする
インストーラーは、ローカルのコンピューター上でscと呼ばれるCLIツールとして実行します。
go getを使用してインストールします。
go get github.com/GoogleCloudPlatform/k8s-service-catalog/installer/cmd/sc
これで、scがGOPATH/binディレクトリー内にインストールされたはずです。
Kubernetesクラスターにサービスカタログをインストールする
まず、すべての依存関係がインストールされていることを確認します。次のコマンドを実行してください。
sc check
チェックが成功したら、次のように表示されるはずです。
Dependency check passed. You are good to go.
次に、バックアップに使用したいstorageclassを指定して、installコマンドを実行します。
sc install --etcd-backup-storageclass "standard"
サービスカタログのアンインストール
Kubernetesクラスターからサービスカタログをアンインストールしたい場合は、scツールを使って次のコマンドを実行します。
sc uninstall
次の項目
- サービスブローカーのサンプルを読む。
- kubernetes-incubator/service-catalogプロジェクトを探索する。