Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

redashのプラベートカタログ作成してつまづいたアレやコレや

388 views

Published on

2018/01/23 Rancher Meetup Yokohama #01 での発表資料
redash をRancherのプライベートカタログ化を題材にカタログ化する際に有りがちな困り事の解決例を紹介

Published in: Engineering
  • Be the first to comment

redashのプラベートカタログ作成してつまづいたアレやコレや

  1. 1. redashのプラベートカタログ作成してつまづいた アレやコレや 2018/01/23 Rancher Meetup Yokohama #01 @yassan168(やっさん@牛勢)
  2. 2. 話さないこと • RancherServerやホストのセットアップ • プライベートカタログの作成方法(以下を見てください) • Using Private Catalogs in Rancher | Rancher Labs http://rancher.com/using-private-catalogs-rancher/ • Rancher プライベートカタログとCompose https://www.slideshare.net/m-daichang/rancher-compose
  3. 3. 話すこと 初めてプライベートカタログを作成していて 「こんな時どうするんだ?」とか「これは便利だ」 ってなったアレやコレやをredashを例に紹介。 • HTTPS化ってどうしたら良いの問題 • 初回起動時に1回だけ「create_dbしたい」問題 • docker-compose.ymlで条件分岐使いたい問題 • デプロイするホストを指定したい問題
  4. 4. 今回の構成 インスタンス03 インスタンス02 MySQL インスタンス01 Rancher Server Rancher Agent _n ( l _、_ \ \ ( <_,` ) ヽ___ ̄ ̄ ) ALLオンプレ!
  5. 5. HTTPS化ってどうしたら良いの問題 docker-composeだけなら、nginx側に証明書読ませれば良いけど、 Rancherだとどうしたら。。。 やる事は一緒。お手軽にやるには、、、 Rancher ServerのWeb UIから証明書を追加して、 スタックに証明書を読ませたロードバランサーを追加すればOK ※他にも色々やり方はあります
  6. 6. HTTPS化ってどうしたら良いの問題 • Web UIのメニューから「インフラストラクチャ」→「証明書」選択 • 「証明書を追加」を選択
  7. 7. HTTPS化ってどうしたら良いの問題 証明書を選択する際に表示する表示名と証明書の説明や、 プライベートキー(*.key)、証明書(*.crt)、(必要であれば)証明書チェーン(*.crt) のファイルを選択して貼り付け
  8. 8. HTTPS化ってどうしたら良いの問題 追加したいスタックを選択して、「ロードバランサー」を追加
  9. 9. HTTPS化ってどうしたら良いの問題
  10. 10. HTTPS化ってどうしたら良いの問題 設定したSSL証明書を選択
  11. 11. HTTPS化ってどうしたら良いの問題 ロードバランサーをデプロイするホストを選びたい場合は、 「スケジューリング」を以下の様に設定
  12. 12. 初回起動時に1回だけ「create_dbしたい」問題 redashの初回起動時に1回だけ実行したいコレ docker-compose -f docker-compose.production.yml run --rm server create_db 「server」に対して「create_db」を実行したい!1回だけ。 つまり1回だけ「create_db」を実行する「server」を別途追加したら良い ※そういう仕組みをsidekickと言います
  13. 13. 初回起動時に1回だけ「create_dbしたい」問題 1回だけ「create_db」するServiceをdocker-compose.ymlに以下の様に追 加 server-init: image: redash/redash:3.0.0.b3134 labels: io.rancher.container.start_once: true ※1回実行したら終了する command: create_db
  14. 14. 初回起動時に1回だけ「create_dbしたい」問題 後は、どのタイミングにどこで実行するかについて、serverに以下のよう に追加 server: image: redash/redash:3.0.0.b3134 labels: io.rancher.sidekicks: server-init io.rancher.container.hostname_override: container_name command: server
  15. 15. docker-compose.ymlで条件分岐使いたい問題 お試しで入れてるデータセット用のMySQLを使わない場合は含めたくない。 そんな場合は、以下のようにすると良いです。 • rancher-copose.ymlに条件式用のbooleanの変数を定義 • docker-compose.ymlにて、以下のようにして記述 {{- if eq .Values.変数 "true" }} ~ {{- end }} ※else句 {{- else}}も利用可能だし、ネストもOK cf. community-catalog/docker-compose.yml.tpl at master · rancher/community-catalog https://github.com/rancher/community-catalog/blob/master/templates/traefik/11/docker-compose.yml.tpl
  16. 16. docker-compose.ymlで条件分岐使いたい問題 rancher-compose.yml - variable: "ADD_SAMPLE_DATASET" label: "Add Sample DataSet?" required: true default: true type: boolean docker-compose.yml {{- if eq .Values.ADD_SAMPLE_DATASET "true" }} mysql: image: kakakakakku/mysql-57-world-database labels: io.rancher.container.hostname_override: container_name environment: TZ: ${MY_TIMEZONE} MYSQL_ALLOW_EMPTY_PASSWORD: "yes" {{- end }}
  17. 17. デプロイするホストを指定したい問題 redashのserverやworker、redisを同一ホストにデプロイしたいけど、どう すれば良いか? ホストにラベルを指定し、docker-compose.ymlに以下を追加すればOK server: image: redash/redash:${REDASH_IMAGE_VERSION} labels: io.rancher.scheduler.affinity:host_label: ${REDASH_HOST_LABEL} 以上。簡単です。
  18. 18. まとめ その他にも • スタック消して再度同じスタック追加したらボリュームが消えた /(^o^)\ナッテコッタ • カタログジェネレーター YOの使い方 とかあったんですが、、、、時間が切れたので続きは、 以下を見てください。 redash on Rancher - やっさんメモ http://yassan.hatenablog.jp/entry/advent-calendar-rancher-1220 (´-`).。oO( redashのアドベン焼き直しってのは内緒にしておこう... )
  19. 19. 今後追加予定のカタログ 今後、追加する予定のカタログ。 redashとは路線の違うBIツールなので試してみたい。 R Server と Jupyter Notebook データアナリストの要望 現状使ってるので、カタログ化して使いたい
  20. 20. 参考 • 今回ネタに使ったカタログ yassan/rancher-catalog: Rancher Catalogs https://github.com/yassan/rancher-catalog • SidekickなどのServiceの実行制御に関するドキュメント http://rancher.com/docs/rancher/v1.6/en/cattle/adding-services/ • カタログの参考書としてぴったりなのは公式のカタログ rancher/community-catalog: Catalog entries contributed by the community https://github.com/rancher/community-catalog
  21. 21. Let's Enjoy Rancher !

×