tiller を作り直す
tiller 作成(helm init)のオプションはいろいろあるようだ。どれがいいのか悩まず前進を優先。ココを参考にした。
備考) RBAC環境にインストールする場合は のところ
$ helm reset --force Tiller (the Helm server-side component) has been uninstalled from your Kubernetes Cluster. $ kubectl -n kube-system create serviceaccount tiller serviceaccount/tiller created $ kubectl create clusterrolebinding tiller --clusterrole cluster-admin --serviceaccount=kube-system:tiller clusterrolebinding.rbac.authorization.k8s.io/tiller created $ helm init --service-account=tiller $HELM_HOME has been configured at /home/core/.helm. Tiller (the Helm server-side component) has been installed into your Kubernetes Cluster. Please note: by default, Tiller is deployed with an insecure 'allow unauthenticated users' policy. To prevent this, run `helm init` with the --tiller-tls-verify flag. For more information on securing your installation see: https://docs.helm.sh/using_helm/#securing-your-helm-installation
ls しても問題なくなった。
$ helm ls
$ helm version
Client: &version.Version{SemVer:"v2.14.3", GitCommit:"0e7f3b6637f7af8fcfddb3d2941fcc7cbebb0085", GitTreeState:"clean"}
Server: &version.Version{SemVer:"v2.14.3", GitCommit:"0e7f3b6637f7af8fcfddb3d2941fcc7cbebb0085", GitTreeState:"clean"}
install an Example Chart
helm repo update と ‘helm install`。長いがあとで見返したいのでそのまま載せる。
$ helm repo update
Hang tight while we grab the latest from your chart repositories...
...Skip local chart repository
...Successfully got an update from the "stable" chart repository
Update Complete.
$ helm install stable/mysql
NAME: eerie-lobster
LAST DEPLOYED: Tue Aug 13 20:13:43 2019
NAMESPACE: default
STATUS: DEPLOYED
RESOURCES:
==> v1/ConfigMap
NAME DATA AGE
eerie-lobster-mysql-test 1 1s
==> v1/PersistentVolumeClaim
NAME STATUS VOLUME CAPACITY ACCESS MODES STORAGECLASS AGE
eerie-lobster-mysql Pending 1s
==> v1/Pod(related)
NAME READY STATUS RESTARTS AGE
eerie-lobster-mysql-7d46967994-txtxk 0/1 Pending 0 0s
==> v1/Secret
NAME TYPE DATA AGE
eerie-lobster-mysql Opaque 2 1s
==> v1/Service
NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE
eerie-lobster-mysql ClusterIP 10.97.180.130 <none> 3306/TCP 1s
==> v1beta1/Deployment
NAME READY UP-TO-DATE AVAILABLE AGE
eerie-lobster-mysql 0/1 1 0 1s
NOTES:
MySQL can be accessed via port 3306 on the following DNS name from within your cluster:
eerie-lobster-mysql.default.svc.cluster.local
To get your root password run:
MYSQL_ROOT_PASSWORD=$(kubectl get secret --namespace default eerie-lobster-mysql -o jsonpath="{.data.mysql-root-password}" | base64 --decode; echo)
To connect to your database:
1. Run an Ubuntu pod that you can use as a client:
kubectl run -i --tty ubuntu --image=ubuntu:16.04 --restart=Never -- bash -il
2. Install the mysql client:
$ apt-get update && apt-get install mysql-client -y
3. Connect using the mysql cli, then provide your password:
$ mysql -h eerie-lobster-mysql -p
To connect to your database directly from outside the K8s cluster:
MYSQL_HOST=127.0.0.1
MYSQL_PORT=3306
# Execute the following command to route the connection:
kubectl port-forward svc/eerie-lobster-mysql 3306
mysql -h ${MYSQL_HOST} -P${MYSQL_PORT} -u root -p${MYSQL_ROOT_PASSWORD}
sevice, deployment が作成されたがpending。
$ kubectl get svc NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE eerie-lobster-mysql ClusterIP 10.97.180.130 <none> 3306/TCP 56s kubernetes ClusterIP 10.96.0.1 <none> 443/TCP 13d $ kubectl get deploy NAME READY UP-TO-DATE AVAILABLE AGE eerie-lobster-mysql 0/1 1 0 4m57s $ kubectl get pod NAME READY STATUS RESTARTS AGE eerie-lobster-mysql-7d46967994-txtxk 0/1 Pending 0 98s
pod を見ると PersistentVolumeClaims をバインドできてない。
$ kubectl describe pod eerie
Name: eerie-lobster-mysql-7d46967994-txtxk
Namespace: default
Priority: 0
Node: <none>
Labels: app=eerie-lobster-mysql
pod-template-hash=7d46967994
Annotations: <none>
Status: Pending
Events:
Type Reason Age From Message
---- ------ ---- ---- -------
Warning FailedScheduling 31s (x6 over 6m29s) default-scheduler pod has unbound immediate PersistentVolumeClaims (repeated 2 times)
うーん、また失敗。アンインストールする。helm ls -a したところ残っていた。
$ helm ls NAME REVISION UPDATED STATUS CHART APP VERSION NAMESPACE eerie-lobster 1 Tue Aug 13 20:13:43 2019 DEPLOYED mysql-1.3.0 5.7.14 default $ helm delete eerie-lobster release "eerie-lobster" deleted $ helm ls $ helm ls -a NAME REVISION UPDATED STATUS CHART APP VERSIONNAMESPACE eerie-lobster 1 Tue Aug 13 20:13:43 2019 DELETED mysql-1.3.0 5.7.14 default
delete で残るのは rollback で元に戻すのだそうだ。rollbackしてみる。rollbackはnameとrevisionを指定する。するとrevision:2になった。
$ helm rollback Error: This command needs 2 arguments: release name, revision number $ helm rollback eerie-lobster 1 Rollback was a success. $ helm ls NAME REVISION UPDATED STATUS CHART APP VERSION NAMESPACE eerie-lobster 2 Tue Aug 13 20:36:15 2019 DEPLOYED mysql-1.3.0 5.7. 14 default
今度は purge
$ helm delete --purge eerie-lobster release "eerie-lobster" deleted $ helm ls -a
なかなか進まない
なかなか前進しないが、概念学習とコマンド練習にはなっている。
PersistentVolumeClaims は未経験。PersistentVolumeClaims のチュートリアルがあるようなので試そうと思う。