Slide 1

Slide 1 text

STRICTLY CONFIDENTIAL 2019/11/8 Alpaca Japan Shinya Sasaki Why Rancher ?

Slide 2

Slide 2 text

STRICTLY CONFIDENTIAL Who? Shinya Sasaki Head of Infrastructure Engineering at AlpacaJapan Co., Ltd. Osaka, Japan 2

Slide 3

Slide 3 text

STRICTLY CONFIDENTIAL Why Rancher ?

Slide 4

Slide 4 text

STRICTLY CONFIDENTIAL KubernetesとRancherと私

Slide 5

Slide 5 text

STRICTLY CONFIDENTIAL Kubernetes 検証開始 (2017年位)

Slide 6

Slide 6 text

STRICTLY CONFIDENTIAL ➢ 苦行・・・ Kubernetesクラスタ 構築 8

Slide 7

Slide 7 text

STRICTLY CONFIDENTIAL Kubernetes 検証開始 (2017年位)

Slide 8

Slide 8 text

STRICTLY CONFIDENTIAL Kubernetes 検証開始 (2017年位) → クラスタ構築にRancherを投入

Slide 9

Slide 9 text

STRICTLY CONFIDENTIAL ➢ GUI ➢ AWS上でつくる であれ 、AccessKey情報だけでつくれた Rancherで 構築 11

Slide 10

Slide 10 text

STRICTLY CONFIDENTIAL Kubernetes 検証開始 (2017年位) → クラスタ構築にRancherを投入

Slide 11

Slide 11 text

STRICTLY CONFIDENTIAL Kubernetes 検証開始 (2017年位) → クラスタ構築にRancherを投入 マネージドサービスが出揃う (2018年位)

Slide 12

Slide 12 text

STRICTLY CONFIDENTIAL マネージドサービス 登場 14

Slide 13

Slide 13 text

STRICTLY CONFIDENTIAL Kubernetes 検証開始 (2017年位) → クラスタ構築にRancherを投入 マネージドサービスが出揃う (2018年位)

Slide 14

Slide 14 text

STRICTLY CONFIDENTIAL Kubernetes 検証開始 (2017年位) → クラスタ構築にRancherを投入 マネージドサービスが出揃う (2018年位) → Rancher こと 忘れる

Slide 15

Slide 15 text

STRICTLY CONFIDENTIAL Kubernetes 検証開始 (2017年位) → クラスタ構築にRancherを投入 マネージドサービスが出揃う (2018年位) → Rancher こと 忘れる 本番環境へ Kubernetes導入、運用開始 (2019年)

Slide 16

Slide 16 text

STRICTLY CONFIDENTIAL Kubernetes 検証開始 (2017年位) → クラスタ構築にRancherを投入 マネージドサービスが出揃う (2018年位) → Rancher こと 忘れる 本番環境へ Kubernetes導入、運用開始 (2019年) → Rancher再投入

Slide 17

Slide 17 text

STRICTLY CONFIDENTIAL Kubernetes 検証開始 (2017年位) → クラスタ構築にRancherを投入 マネージドサービスが出揃う (2018年位) → Rancher こと 忘れる 本番環境へ Kubernetes導入、運用開始 (2019年) → Rancher再投入

Slide 18

Slide 18 text

STRICTLY CONFIDENTIAL kubernetes運用を始めると出てきた課題 20 1. クラスタ 増加 2. 利用ユーザ 増加 3. 利用シーン 増加

Slide 19

Slide 19 text

STRICTLY CONFIDENTIAL 1. クラスタ 増加 ど レベルでクラスタをつくるか? • シングルクラスタ • 1つ、もしく ある程度大きなクラスタで運用 • 用途ごとにNamespaceを分ける • マルチクラスタ • 用途ごとに個々にクラスタをつくる • サービスごと • 環境(Production、Staging、Development)ごと 21

Slide 20

Slide 20 text

STRICTLY CONFIDENTIAL 1. クラスタ 増加 ど レベルでクラスタをつくるか? • シングルクラスタ • 1つ、もしく ある程度大きなクラスタで運用 • 用途ごとにNamespaceを分ける • マルチクラスタ • 用途ごとに個々にクラスタをつくる • サービスごと • 環境(Production、Staging、Development)ごと 22

Slide 21

Slide 21 text

STRICTLY CONFIDENTIAL シングルクラスタ デメリット • バージョンアップ等 メンテナンス、障害時 影響大 • 作業調整が大変 • 影響が把握できない • ポリシー 管理が複雑 • セキュリティグループ、IAMポリシー 23

Slide 22

Slide 22 text

STRICTLY CONFIDENTIAL マルチクラスタ デメリット • 複数 API URL、kubeconfig 24

Slide 23

Slide 23 text

STRICTLY CONFIDENTIAL 2. 利用ユーザ 増加 • 運用負荷 増加 • 利用方法 説明 • クラスタ追加時 アクセス方法 通知 • kubeconfig 配布 • アクセス権 • ユーザごとに権限を変えたい • Namespaceレベル • リソースレベル • RW/RO → RBAC 25

Slide 24

Slide 24 text

STRICTLY CONFIDENTIAL EKSで ユーザアクセス制限 1. AWS側でIAMユーザを作成 2. kubernetes側でRBAC設定適用 3. kubernetes側でconfigmap/aws-authを編集し、IAM ユーザに紐づけ 26 $ kubectl edit -n kube-system configmap/aws-auth • 問題点 • aws-auth ワーカーノード IAMロールも含まれる で、Git管理しにくい • あとから確認しにくい https://docs.aws.amazon.com/ja_jp/eks/latest/userguide/add-user-role.html

Slide 25

Slide 25 text

STRICTLY CONFIDENTIAL 3. 利用シーン 増加 • 環境 違い • 普段 セットアップされたローカルPC or Macからkubectlを実行 • 一時的にローカル環境使えない場合とか • ユーザーごと Kubernetes理解度、利用頻度 違い • kubectl? なにそれ? • こ コンテナ実行したいだけなんだけど • こ yaml実行したいだけなんだけど 27

Slide 26

Slide 26 text

STRICTLY CONFIDENTIAL 1. クラスタ 増加へ 対応 • 複数 API URL、kubeconfig 28

Slide 27

Slide 27 text

STRICTLY CONFIDENTIAL 1. クラスタ 増加へ 対応 • 複数 API URL、kubeconfig 29 Rancher URLさえわかっていれ

Slide 28

Slide 28 text

STRICTLY CONFIDENTIAL 2. 利用ユーザ 増加へ 対応 • 運用負荷 増加 • 利用方法 説明 • クラスタ追加時 アクセス方法 通知 • kubeconfig 配布 • アクセス権 • ユーザごとに権限を変えたい • Namespaceレベル • リソースレベル • RW/RO → RBAC 30

Slide 29

Slide 29 text

STRICTLY CONFIDENTIAL 2. 利用ユーザ 増加へ 対応 • 運用負荷 増加 • 利用方法 説明 • クラスタ追加時 アクセス方法 通知 • kubeconfig 配布 • アクセス権 • ユーザごとに権限を変えたい • Namespaceレベル • リソースレベル • RW/RO → RBAC 31 外部認証に対応 クラスタごと、プロジェクトごと にユーザ権限が設定可能

Slide 30

Slide 30 text

STRICTLY CONFIDENTIAL 2. 利用ユーザ 増加へ 対応 • 運用負荷 増加 • 利用方法 説明 • クラスタ追加時 アクセス方法 通知 • kubeconfig 配布 • アクセス権 • ユーザごとに権限を変えたい • Namespaceレベル • リソースレベル • RW/RO → RBAC 32 ユーザに権限を付与すれ 、 アクセス可能なクラスタ /プロ ジェクト み表示

Slide 31

Slide 31 text

STRICTLY CONFIDENTIAL 3. 利用シーン 増加へ 対応 • 環境 違い • 普段 セットアップされたローカルPC or Macからkubectlを実行 • 一時的にローカル環境使えない場合とか • ユーザーごと Kubernetes理解度、利用頻度 違い • kubectl? なにそれ? • こ コンテナ実行したいだけなんだけど • こ yaml実行したいだけなんだけど 33

Slide 32

Slide 32 text

STRICTLY CONFIDENTIAL 3. 利用シーン 増加へ 対応 • 環境 違い • 普段 セットアップされたローカルPC or Macからkubectlを実行 • 一時的にローカル環境使えない場合とか • ユーザーごと Kubernetes理解度、利用頻度 違い • kubectl? なにそれ? • こ コンテナ実行したいだけなんだけど • こ yaml実行したいだけなんだけど 34 ブラウザ上で kubectl yamlファイル コピペ GUIで コンテナ、パラメータ指定 複数 デプロイ方法に対応

Slide 33

Slide 33 text

STRICTLY CONFIDENTIAL まとめ • マネージドサービスを使っていても出てくる課題 • クラスタ 増加 • 利用ユーザ 増加 • 利用シーン 増加 • Rancherと使うとクラスタ管理 楽になる(かも) 35

Slide 34

Slide 34 text

STRICTLY CONFIDENTIAL Thank you