まーぽんって誰がつけたの?

iOS→Scala→インフラなおじさん技術メモ

deisでminioを置き換えるだけをやってみる

公式ページを参考に

Configuring Object Storage

本当にここを変えただけ。bucketはGCSであらかじめ作っておく。権限とかもなんもしてない。

diff --git a/values.yml b/values.yml
index c25cfb2..1d94aca 100644
--- a/values.yml
+++ b/values.yml
@@ -7,7 +7,7 @@ global:
   # - azure: Store persistent data in Azure's object storage
   # - gcs: Store persistent data in Google Cloud Storage
   # - minio: Store persistent data on in-cluster Minio server
-  storage: minio
+  storage: gcs

   # Set the location of Workflow's PostgreSQL database
   #
@@ -75,9 +75,9 @@ gcs:
   # key_json is expanded into a JSON file on the remote server. It must be
   # well-formatted JSON data.
   key_json: <base64-encoded JSON data>
-  registry_bucket: "your-registry-bucket-name"
-  database_bucket: "your-database-bucket-name"
-  builder_bucket: "your-builder-bucket-name"
+  registry_bucket: "my-registry"
+  database_bucket: "my-database"
+  builder_bucket: "my-builder"

deisをinstallする

適当にRakeタスク作って、コマンド実行。--setでsecrety keyを渡せるのいいね:100:

namespace :helm do
  task :install do
    sh %Q(helm install deis/workflow --namespace deis -f values.yml \
          --set gcs.key_json="$(cat gcloud-service-key.json | base64)"
        )
  end
end

状態

確かにminioはいなくなった。

$ helm status nobby-gibbon
LAST DEPLOYED: Tue Mar 28 20:41:00 2017
NAMESPACE: deis
STATUS: DEPLOYED

RESOURCES:
==> v1/ServiceAccount
NAME                   SECRETS  AGE
deis-nsqd              1        9m
deis-workflow-manager  1        9m
deis-router            1        9m
deis-registry          1        9m
deis-database          1        9m
deis-builder           1        9m
deis-logger-fluentd    1        9m
deis-controller        1        9m
deis-logger            1        9m
deis-monitor-telegraf  1        9m

==> v1/Service
NAME                    CLUSTER-IP    EXTERNAL-IP     PORT(S)                                                   AGE
deis-monitor-influxui   10.3.254.23   <none>          80/TCP                                                    9m
deis-logger-redis       10.3.249.48   <none>          6379/TCP                                                  9m
deis-registry           10.3.250.48   <none>          80/TCP                                                    9m
deis-database           10.3.242.10   <none>          5432/TCP                                                  9m
deis-monitor-influxapi  10.3.241.35   <none>          80/TCP                                                    9m
deis-workflow-manager   10.3.242.232  <none>          80/TCP                                                    9m
deis-builder            10.3.244.107  <none>          2222/TCP                                                  9m
deis-logger             10.3.253.37   <none>          80/TCP                                                    9m
deis-monitor-grafana    10.3.245.167  <none>          80/TCP                                                    9m
deis-router             10.3.252.162  35.190.228.247  80:32439/TCP,443:30793/TCP,2222:30898/TCP,9090:30627/TCP  9m
deis-nsqd               10.3.246.21   <none>          4151/TCP,4150/TCP                                         9m
deis-controller         10.3.241.43   <none>          80/TCP                                                    9m

==> extensions/v1beta1/Deployment
NAME                   DESIRED  CURRENT  UP-TO-DATE  AVAILABLE  AGE
deis-monitor-grafana   1        1        1           1          9m
deis-controller        1        1        1           1          9m
deis-logger            1        1        1           1          9m
deis-nsqd              1        1        1           1          9m
deis-database          1        1        1           1          9m
deis-builder           1        1        1           1          9m
deis-workflow-manager  1        1        1           1          9m
deis-router            1        1        1           1          9m
deis-registry          1        1        1           1          9m
deis-logger-redis      1        1        1           1          9m
deis-monitor-influxdb  1        1        1           1          9m

==> extensions/v1beta1/DaemonSet
NAME                   DESIRED  CURRENT  READY  NODE-SELECTOR  AGE
deis-monitor-telegraf  4        4        4      <none>         9m
deis-registry-proxy    4        4        4      <none>         9m
deis-logger-fluentd    4        4        4      <none>         9m

==> v1/Secret
NAME                   TYPE    DATA  AGE
deis-router-dhparam    Opaque  1     9m
objectstorage-keyfile  Opaque  4     9m
minio-user             Opaque  2     9m

==> v1/ConfigMap
NAME                  DATA  AGE
dockerbuilder-config  2     9m
slugbuilder-config    2     9m
slugrunner-config     1     9m

GCSのbucketの中になんか入ってる

databaseにだけ入ってた。これがなんか状態を保存してるやつなんだろうな。

f:id:masato47744:20170422013114p:plain

deisのアンインストール

なんとなく分かったのでアンインストール

$ helm list
NAME            REVISION    UPDATED                     STATUS      CHART               NAMESPACE
nobby-gibbon    1           Tue Mar 28 20:41:00 2017    DEPLOYED    workflow-v2.12.0    deis
$ helm delete nobby-gibbon

これだけだと、secret情報が消えなかったので次に再度helm installするときに、エラーになってしまう。こんな感じで残っちゃうようだ。

$ kubectl get secrets -n deis
NAME                       TYPE                                  DATA      AGE
builder-key-auth           Opaque                                1         18m
builder-ssh-private-keys   Opaque                                3         18m
database-creds             Opaque                                2         18m
default-token-vdgrd        kubernetes.io/service-account-token   3         19m
deis-workflow-manager      Opaque                                1         17m
deploy-hook-key            Opaque                                1         18m
django-secret-key          Opaque                                1         18m
logger-redis-creds         Opaque                                1         18m

なので、コマンドラインで一気に消す。今までのぼくなら1個ずつ手動入力してたけどlazy nightに参加したのでがんばって怠惰になるためにワンライナーでやる。

$ kubectl get secrets -n deis | awk '{print $1}' | tail -n +2 | xargs kubectl delete secret -n deis

追記

ただ、helm deleteだけだと、完全には消えなかったので、helm delete --purgeをつける必要があった。