概要
helmはkubernetesのためのパッケージマネージャです。helmを使うと複雑なkubernetesアプリケーションを作成、管理することができます。この記事ではhelmをminikubeにインストールする方法を説明します。サンプルとしてredisをデプロイします。
環境
- minikube: v1.3.1
- kubernetes: 1.15
- macOS: 10.14.4
- helm: v2.14.3
macOSにbrewでhelmをインストールする
brew install kubernetes-helm
クラスタロールを作成する
clusterrole.yml
apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRole
metadata:
annotations:
rbac.authorization.kubernetes.io/autoupdate: "true"
labels:
kubernetes.io/bootstrapping: rbac-defaults
name: cluster-admin
rules:
- apiGroups:
- '*'
resources:
- '*'
verbs:
- '*'
- nonResourceURLs:
- '*'
verbs:
- '*'
適用する
kubectl create -f clusterrole.yaml
クラスタロールにサービスアカウントを紐付ける
kubectl create serviceaccount -n kube-system tiller
kubectl create clusterrolebinding tiller-cluster-rule --clusterrole=cluster-admin --serviceaccount=kube-system:tiller
tillerを初期化する
helm init --service-account tiller
正しくインストールが完了したか確認する
kubectl --namespace kube-system get pods | grep tiller
出力
kubectl --namespace kube-system get pods | grep tiller
tiller-deploy-2885612843-xrj5m 1/1 Running 0 4d
Redisクラスタをhelmでインストールしてみる
helm install stable/redis --set serviceType=NodePort
正しくRedisクラスタがデプロイされているか確認する
kubectl get po | grep redis
出力
kissing-serval-redis-master-0 1/1 Running 0 8m12s
kissing-serval-redis-slave-0 1/1 Running 0 8m11s
kissing-serval-redis-slave-1 1/1 Running 0 5m6s