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