helm ってみたがまた失敗
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 のチュートリアルがあるようなので試そうと思う。