Upgrade to Pro — share decks privately, control downloads, hide ads and more …

GKE始めるにあたって 最初に知っておきたかったこと - 酔いどれGCPUG 2018/03/02

3a206ec7df76023cca167a8886b69672?s=47 K.Himeno
March 04, 2018

GKE始めるにあたって 最初に知っておきたかったこと - 酔いどれGCPUG 2018/03/02

ブログに話しきれなかったことを書いています。
https://goo.gl/h7V2gT

2018/03/02(金) 酔いどれGCPUGでLTした内容になります。
https://gcpug-tokyo.connpass.com/event/78667/presentation/

3a206ec7df76023cca167a8886b69672?s=128

K.Himeno

March 04, 2018
Tweet

More Decks by K.Himeno

Other Decks in Technology

Transcript

  1. GKE始めるにあたって 最初に知っておきたかったこと Twitter@himenoglyph 酔いどれGCPUG 3/2(金) https://gcpug-tokyo.connpass.com/event/78667/

  2. • 姫野 滉盛 • Github@Himenon • Twitter@himenoglyph • レバレジーズ株式会社 新卒1年目

    • WEBエンジニア • データ収集・分析基盤作ってる(Python) ← GCPでやった! • 趣味 • カメラ • イベント参加(今年度だけで36個に参加) 自己紹介 2 あなたは誰?
  3. 1 Helm 2 組み合わせ 3 周辺ツール 4 情報源 アジェンダ 3 はじめに ランキングにGCP周りのサービス名が入っていませんが、それぞれの説明の中でGCPのサー ビスが登場します。 注意書き

    ・GCPを触って4ヶ月目に入るのですが、間違っている箇所があればコメントをいただけれ ば幸いです。 ・また、もっといいやり方があれば、ぜひ教えてください。大歓迎です!!! ・大事なことですが、このスライドの情報は筆者が2018年の3月2日までの情報を整理した ものになっているので、これのスライドを未来に呼んだ場合情報が古くなっている可能性が 極めて高いです。 ・誤植などありましたら、Twitter(@himenoglyph)までご連絡下さい。
  4. 1 Helm

  5. デフォルト設定では、 kubectl config set-context helm init helm create postgres とするだけで、postgresが

    GKE上に立ち上がる。 設定値を変更するときは helm upgrade -f value.yaml とする Kubernetesのパッケージマネージャ 5 https://docs.helm.sh/ https://github.com/kubernetes/helm https://github.com/kubernetes/charts
  6. bitnamiというパッケージ管 理システムがあります。 パッケージ化されたアプリ ケーションのデプロイを簡 単にやってくれます。 Cabinというアプリに関して は、自分でホスティングし たhelm chartsを呼び出すこ とで、自作のContainerを

    Kubernetesに載せることが できます。 bitnamiとは? 6 https://bitnami.com/ Cabin - Manage Kubernetes https://kubeapps.com/ 追記:bitnamiはcncfのメンバーだそうです。
 https://www.cncf.io/about/members/
  7. 2 組み合わせ

  8. 例 Githubにpushしたタイミン グで、Container Builderで コンテナをビルドしたら、 Slackに通知する。 コレだけのために3つサービ スを使います。 ・Cloud Functions

    ・Cloud Pub/Sub ・Container Engine 幸い、チュートリアルがある ので、やることをおすすめ! Container Builder x Cloud Function x Pub/Sub 8 https://cloud.google.com/container-builder/docs/tutorials/configuring-third-party-notifications?hl=ja
  9. helmはWEB上にホスティングす ることができます。 helm repo add [name] [url] ただ、PublicのURLだと、誰もが 見れてしまう状態になってしまい ます。

    Cloud Storageに保管すると、 Privateにホスティングできます。 アクセスするときは、SAを発行し て、gcloudコマンドで認証を通し てから行います。 helmのPrivateホスティング 9 https://github.com/viglesiasce/helm-gcs 非公式ではありますが、helm-gcsという非公式ではありますが、 helmの拡張機能があります。これを参考にシェルスクリプトを作れ ます。 ※100行もないので、さくっと読めます。
  10. 公式チュートリアルとしては 「Google Kubernetes Engineから接続する」があり ます。 もっと楽な方法で、helmで提 供されているgcloud-sqlproxy を使うと非常に楽です。 ※Cloud SQLの罠

    WEBインター フェースから作っ たユーザーはroot権限と同等 (MySQLで確認) KubernetesとCloud SQLの連携 10 https://github.com/kubernetes/charts/tree/master/stable/gcloud-sqlproxy helmを使うと、インストールは $ helm install -f values.yaml stable/gcloud-sqlproxy でGKE上にProxyが立ち上がります。values.yamlは設定ファイル。
  11. 3 周辺ツール

  12. GCPが公式に提供している アーキテクチャを書くための アイコンセットがあります。 様々な形式で構成図を書け るように提供されているので、 使うことをお勧めします。 個人的にはオススメは Draw.ioです。 (次のページで紹介) GCPアーキテクチャ図用のアイコンセット

    12 https://cloud.google.com/icons/
  13. draw.ioはフローチャートか らUML、ER図、ネットワー ク図、アーキテクチャ図に至 るまでのWEBエディタ、もし くはデスクトップ版のアプリ で作成することが可能です。 作成された図は商用利用も可 能。 Google App

    Engineにホス ティングされている。 draw.io 13 https://about.draw.io/ https://www.draw.io
  14. docker-composeから Kubernetesのマニフェスト に変換するためのコマンド ラインツール。 docker-composeと Kubernetesの設定を照らし 合わせながら学習すると、 理解が捗ります。 kompose 14

    https://github.com/kubernetes/kompose
  15. 昨年から、Dockerが Kubernetesを公式でサポー トし始めました。 edge版のDockerを利用す ると、ローカルに Kubernetes環境が整います。 minikubeは設定に手間がか かるので、この方法でローカ ル環境を構築しています。 Docker

    edgeでローカルにKubernetesの環境を 15 https://www.docker.com/kubernetes
  16. 4 情報源

  17. GCPが提供しているチュー トリアルと、Kubernetes が提供しているチュートリア ルがあります。 GCPで注意すべきことは hl=en で学んだほうが確実だとい うことです。 Kubernetes Tutorial

    17 https://cloud.google.com/kubernetes-engine/docs/quickstart?hl=en https://cloud.google.com/kubernetes-engine/docs/quickstart?hl=en https://kubernetes.io/docs/tutorials/
  18. KubernetesのAPI OVERVIEWというページが 有ることは知っていたのです が、 kubect patch -h でヘルプに書いてあったTop Level API

    Objectsというペー ジが ・軽くて ・検索しやすく ・端的にまとまっている のでおすすめします。 全体感の把握にも使えます。 k8s: マニフェストのパラメータを全部確認したい 18 https://htmlpreview.github.io/?https://github.com/kubernetes/kubernetes/blob/HEAD/docs/api-reference/v1/definitions.html https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.9/
  19. 第一情報源はコードから。 後に紹介する ・helm ・kompose もあるので、始めるときは一 度リポジトリ一通りをみて おくことをおすすめ! k8s: Github 19

    https://github.com/kubernetes
  20. Kubernetes公式のチュート リアル。 Githubのリポジトリの更新 履歴を見てみると、2年前が 最終更新日。 イラストが多めなので、概念 理解などに使える。 やるときは、最新版と違う ところがあるかも知れない、 という前提でみる。

    k8s: Kubernetes Bootcamp 20 https://kubernetesbootcamp.github.io/kubernetes-bootcamp/index.html 追記:現在は非推奨だそうです。
  21. GCP公式のサンプル集です。 GCPの公式チュートリアルは サービスの使い方にフォーカス しているため、大抵の場合、コ ンソールだけで済みます。 が、ちゃんと挙動を確認するた めには、実際のコードを読むと、 GCPでどのようなコード、設 定を書けばよいのか参考になり ます。

    GCP: Github 21 https://github.com/GoogleCloudPlatform
  22. Community Tutorial 119個のチュートリアルがあ ります。 公式に掲載しているだけあっ て、なかなか密度が高いです。 確度の高い情報を集めると きにおすすめします。 GCP: Community

    Tutorial 22 https://cloud.google.com/community/tutorials/
  23. GCPをどのように使うか、 より実践的な記事が掲載され ています。 いろいろとあるGCPのサー ビスをどのように組み合わ せて使ったら良いのか、理 由を含めて参考になります。 GCP: Solution Article

    23 https://cloud.google.com/solutions/continuous-integration-helm-concourse#architecture
  24. まとめ

  25. ・知らないとツライ 知っていると楽できる \(^o^)/ ・GCPUGのSlackで質問したらすぐに返ってきた!
 (ほんとありがとうございます❗❗❗) ・GCP楽しい まとめ 25

  26. ありがとうございました