Slide 1

Slide 1 text

Google Kubernetes Engine でお手軽k8s生活 2019/05/29 fun-tech #10 @khdd-mks

Slide 2

Slide 2 text

自己紹介 ・北島久資 (@khdd-mks) ・オープンストリーム所属 アーキテクト ・ fun-tech 運営 ・ Kubernetes 歴 1 年程度 Kubernetes 業務歴 0 日

Slide 3

Slide 3 text

Google Kubernetes Engine ( 以下 GKE)

Slide 4

Slide 4 text

の前に

Slide 5

Slide 5 text

Google Cloud Platform ( 以下 GCP)

Slide 6

Slide 6 text

No content

Slide 7

Slide 7 text

GCP ・ Google が提供しているクラウドサービス ・ Google という巨大サービスと同等の技術・インフラを用いているため 高可用性・高信頼性等が期待できる ・他のクラウドサービスにもあるような様々なサービスが存在するが、 特に自社のノウハウを生かしたビッグデータ分析基盤 (BigQuery) 等が特徴

Slide 8

Slide 8 text

GCPの簡易歴史 2008 GAE (Google App Engine) サービス開始 2010 〜 2012 いくつかの IaaS, SaaS 等がサービス開始 2013 運営中のサービスを統一し、名称を GCP に変更 2014 Google が Kubernetes を発表し、そのマネージドサービスである Google Container Engine もサービス開始 2016 東京リージョン開設 2017 Google Container Engine の名称を Google Kubernetes Engine に変更

Slide 9

Slide 9 text

あらためて本題の GKE

Slide 10

Slide 10 text

No content

Slide 11

Slide 11 text

GKE ・ GCP 上で提供される Kubernetes のマネージドサービス ・マスター・ワーカーノード共に管理してくれる ( しかもマスターは課金されない! ) ・通常の Kubernetes とほぼ同じように (kubectl で ) 操作可能

Slide 12

Slide 12 text

GKE ・ GCP 上で提供される Kubernetes のマネージドサービス ・マスター・ワーカーノード共に管理してくれる ( しかもマスターは課金されない! ) ・通常の Kubernetes とほぼ同じように (kubectl で ) 操作可能 最大のお手軽ポイント

Slide 13

Slide 13 text

とりあえずクラスタを作成してみる

Slide 14

Slide 14 text

No content

Slide 15

Slide 15 text

しばらく待つとクラスタ作成完了

Slide 16

Slide 16 text

作成したクラスタを使ってみる

Slide 17

Slide 17 text

# kubectl 用の認証情報を保存 $ gcloud container clusters get-credentials [CLUSTER_NAME] # 後は普通に kubectl で操作可能 $ kubectl get nodes NAME STATUS ROLES AGE VERSION gke-[cluster-name]-default-pool-0123456-abcdef Ready 8m3s v1.12.7-gke.10 gke-[cluster-name]-default-pool-1234567-abcdef Ready 8m v1.12.7-gke.10 gke-[cluster-name]-default-pool-2345678-abcdef Ready 8m4s v1.12.7-gke.10 gke-[cluster-name]-default-pool-3456789-abcdef Ready 8m1s v1.12.7-gke.10 gke-[cluster-name]-default-pool-4567890-abcdef Ready 8m5s v1.12.7-gke.10 gke-[cluster-name]-default-pool-5678901-abcdef Ready 8m7s v1.12.7-gke.10 ※ GKE の場合、マスターノードの情報が kubectl get nodes の結果に含まれていない

Slide 18

Slide 18 text

自力でクラスタ構築するのに比べて どのくらいお手軽なの?

Slide 19

Slide 19 text

自力で構築する場合 1. Docker のインストール 2. kubeadm, kubelet, kubectl のインストール 3. cgroup ドライバの設定 4. マスター用のロードバランサーを用意 5. マスターの 1 台で kubeadm init 6. マスターの残りに、 5. で作成された認証情報をコピー 7. マスターの残りで、 kubeadm join --experimental-control-plane ↑ここまででようやくマスターの構築完了 8. ワーカーノードで kubeadm join 9. Pod ネットワークのインストール

Slide 20

Slide 20 text

自力で構築する場合 1. Docker のインストール 2. kubeadm, kubelet, kubectl のインストール 3. cgroup ドライバの設定 4. マスター用のロードバランサーを用意 5. マスターの 1 台で kubeadm init 6. マスターの残りに、 5. で作成された認証情報をコピー 7. マスターの残りで、 kubeadm join --experimental-control-plane ↑ここまででようやくマスターの構築完了 8. ワーカーで kubeadm join 9. Pod ネットワークのインストール に加えて 全サーバーの死活監視を個別に実施し ダウン時等の自動復旧の仕組みを構築する必要がある

Slide 21

Slide 21 text

GKE はこれを 自動でやってくれている ので 非常にお手軽

Slide 22

Slide 22 text

その他自力構築との違い type: LoadBalancer の Service

Slide 23

Slide 23 text

type: LoadBalancer の Service type: LoadBalancer の Service を作成しても、通常の Kubernetes では何も起きない。 GKE クラスタ上で作成した場合は、自動的に GCLB(Google Cloud Load Balancing) が作成され、紐付けが行われる。

Slide 24

Slide 24 text

時間があればデモ

Slide 25

Slide 25 text

まとめ ・ GKE は構築も運用監視も全部よしなにやってくれるので非常にお手軽 ・操作方法も通常の k8s とほぼ同じなのでお手軽 ・とりあえず k8s やるときにオススメ

Slide 26

Slide 26 text

ご清聴ありがとうございました