Slide 1

Slide 1 text

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

Slide 2

Slide 2 text

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

Slide 3

Slide 3 text

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

Slide 4

Slide 4 text

1 Helm

Slide 5

Slide 5 text

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

Slide 6

Slide 6 text

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/

Slide 7

Slide 7 text

2 組み合わせ

Slide 8

Slide 8 text

例 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

Slide 9

Slide 9 text

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

Slide 10

Slide 10 text

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

Slide 11

Slide 11 text

3 周辺ツール

Slide 12

Slide 12 text

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

Slide 13

Slide 13 text

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

Slide 14

Slide 14 text

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

Slide 15

Slide 15 text

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

Slide 16

Slide 16 text

4 情報源

Slide 17

Slide 17 text

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/

Slide 18

Slide 18 text

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/

Slide 19

Slide 19 text

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

Slide 20

Slide 20 text

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

Slide 21

Slide 21 text

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

Slide 22

Slide 22 text

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

Slide 23

Slide 23 text

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

Slide 24

Slide 24 text

まとめ

Slide 25

Slide 25 text

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

Slide 26

Slide 26 text

ありがとうございました