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プロジェクトを探索する。