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

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

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/

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/

    View full-size slide

  2. • 姫野 滉盛
    • Github@Himenon
    • Twitter@himenoglyph
    • レバレジーズ株式会社 新卒1年目
    • WEBエンジニア
    • データ収集・分析基盤作ってる(Python) ← GCPでやった!
    • 趣味
    • カメラ
    • イベント参加(今年度だけで36個に参加)
    自己紹介
    2
    あなたは誰?

    View full-size slide

  3. 1 Helm
    2 組み合わせ
    3 周辺ツール
    4 情報源
    アジェンダ
    3
    はじめに
    ランキングにGCP周りのサービス名が入っていませんが、それぞれの説明の中でGCPのサー
    ビスが登場します。
    注意書き
    ・GCPを触って4ヶ月目に入るのですが、間違っている箇所があればコメントをいただけれ
    ば幸いです。
    ・また、もっといいやり方があれば、ぜひ教えてください。大歓迎です!!!
    ・大事なことですが、このスライドの情報は筆者が2018年の3月2日までの情報を整理した
    ものになっているので、これのスライドを未来に呼んだ場合情報が古くなっている可能性が
    極めて高いです。
    ・誤植などありましたら、Twitter(@himenoglyph)までご連絡下さい。

    View full-size slide

  4. デフォルト設定では、
    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

    View full-size slide

  5. 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/

    View full-size slide

  6. 2 組み合わせ

    View full-size slide


  7. 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

    View full-size slide

  8. 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行もないので、さくっと読めます。

    View full-size slide

  9. 公式チュートリアルとしては
    「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は設定ファイル。

    View full-size slide

  10. 3 周辺ツール

    View full-size slide

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

    View full-size slide

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

    View full-size slide

  13. docker-composeから
    Kubernetesのマニフェスト
    に変換するためのコマンド
    ラインツール。
    docker-composeと
    Kubernetesの設定を照らし
    合わせながら学習すると、
    理解が捗ります。
    kompose
    14
    https://github.com/kubernetes/kompose

    View full-size slide

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

    View full-size slide

  15. 4 情報源

    View full-size slide

  16. 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/

    View full-size slide

  17. 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/

    View full-size slide

  18. 第一情報源はコードから。
    後に紹介する
    ・helm
    ・kompose
    もあるので、始めるときは一
    度リポジトリ一通りをみて
    おくことをおすすめ!
    k8s: Github
    19
    https://github.com/kubernetes

    View full-size slide

  19. Kubernetes公式のチュート
    リアル。
    Githubのリポジトリの更新
    履歴を見てみると、2年前が
    最終更新日。
    イラストが多めなので、概念
    理解などに使える。
    やるときは、最新版と違う
    ところがあるかも知れない、
    という前提でみる。
    k8s: Kubernetes Bootcamp
    20
    https://kubernetesbootcamp.github.io/kubernetes-bootcamp/index.html
    追記:現在は非推奨だそうです。

    View full-size slide

  20. GCP公式のサンプル集です。
    GCPの公式チュートリアルは
    サービスの使い方にフォーカス
    しているため、大抵の場合、コ
    ンソールだけで済みます。
    が、ちゃんと挙動を確認するた
    めには、実際のコードを読むと、
    GCPでどのようなコード、設
    定を書けばよいのか参考になり
    ます。
    GCP: Github
    21
    https://github.com/GoogleCloudPlatform

    View full-size slide

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

    View full-size slide

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

    View full-size slide

  23. ・知らないとツライ 知っていると楽できる \(^o^)/
    ・GCPUGのSlackで質問したらすぐに返ってきた!

    (ほんとありがとうございます❗❗❗)
    ・GCP楽しい
    まとめ
    25

    View full-size slide

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

    View full-size slide