STRICTLY CONFIDENTIAL2019/11/8Alpaca JapanShinya SasakiWhy Rancher ?
View Slide
STRICTLY CONFIDENTIALWho?Shinya SasakiHead of Infrastructure Engineeringat AlpacaJapan Co., Ltd.Osaka, Japan2
STRICTLY CONFIDENTIALWhy Rancher ?
STRICTLY CONFIDENTIALKubernetesとRancherと私
STRICTLY CONFIDENTIALKubernetes 検証開始 (2017年位)
STRICTLY CONFIDENTIAL➢ 苦行・・・Kubernetesクラスタ 構築8
STRICTLY CONFIDENTIALKubernetes 検証開始 (2017年位)→ クラスタ構築にRancherを投入
STRICTLY CONFIDENTIAL➢ GUI➢ AWS上でつくる であれ 、AccessKey情報だけでつくれたRancherで 構築11
STRICTLY CONFIDENTIALKubernetes 検証開始 (2017年位)→ クラスタ構築にRancherを投入マネージドサービスが出揃う (2018年位)
STRICTLY CONFIDENTIALマネージドサービス 登場14
STRICTLY CONFIDENTIALKubernetes 検証開始 (2017年位)→ クラスタ構築にRancherを投入マネージドサービスが出揃う (2018年位)→ Rancher こと 忘れる
STRICTLY CONFIDENTIALKubernetes 検証開始 (2017年位)→ クラスタ構築にRancherを投入マネージドサービスが出揃う (2018年位)→ Rancher こと 忘れる本番環境へ Kubernetes導入、運用開始 (2019年)
STRICTLY CONFIDENTIALKubernetes 検証開始 (2017年位)→ クラスタ構築にRancherを投入マネージドサービスが出揃う (2018年位)→ Rancher こと 忘れる本番環境へ Kubernetes導入、運用開始 (2019年)→ Rancher再投入
STRICTLY CONFIDENTIALkubernetes運用を始めると出てきた課題201. クラスタ 増加2. 利用ユーザ 増加3. 利用シーン 増加
STRICTLY CONFIDENTIAL1. クラスタ 増加ど レベルでクラスタをつくるか?• シングルクラスタ• 1つ、もしく ある程度大きなクラスタで運用• 用途ごとにNamespaceを分ける• マルチクラスタ• 用途ごとに個々にクラスタをつくる• サービスごと• 環境(Production、Staging、Development)ごと21
STRICTLY CONFIDENTIAL1. クラスタ 増加ど レベルでクラスタをつくるか?• シングルクラスタ• 1つ、もしく ある程度大きなクラスタで運用• 用途ごとにNamespaceを分ける• マルチクラスタ• 用途ごとに個々にクラスタをつくる• サービスごと• 環境(Production、Staging、Development)ごと22
STRICTLY CONFIDENTIALシングルクラスタ デメリット• バージョンアップ等 メンテナンス、障害時 影響大• 作業調整が大変• 影響が把握できない• ポリシー 管理が複雑• セキュリティグループ、IAMポリシー23
STRICTLY CONFIDENTIALマルチクラスタ デメリット• 複数 API URL、kubeconfig24
STRICTLY CONFIDENTIAL2. 利用ユーザ 増加• 運用負荷 増加• 利用方法 説明• クラスタ追加時 アクセス方法 通知• kubeconfig 配布• アクセス権• ユーザごとに権限を変えたい• Namespaceレベル• リソースレベル• RW/RO→ RBAC25
STRICTLY CONFIDENTIALEKSで ユーザアクセス制限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
STRICTLY CONFIDENTIAL3. 利用シーン 増加• 環境 違い• 普段 セットアップされたローカルPC or Macからkubectlを実行• 一時的にローカル環境使えない場合とか• ユーザーごと Kubernetes理解度、利用頻度 違い• kubectl? なにそれ?• こ コンテナ実行したいだけなんだけど• こ yaml実行したいだけなんだけど27
STRICTLY CONFIDENTIAL1. クラスタ 増加へ 対応• 複数 API URL、kubeconfig28
STRICTLY CONFIDENTIAL1. クラスタ 増加へ 対応• 複数 API URL、kubeconfig29Rancher URLさえわかっていれ
STRICTLY CONFIDENTIAL2. 利用ユーザ 増加へ 対応• 運用負荷 増加• 利用方法 説明• クラスタ追加時 アクセス方法 通知• kubeconfig 配布• アクセス権• ユーザごとに権限を変えたい• Namespaceレベル• リソースレベル• RW/RO→ RBAC30
STRICTLY CONFIDENTIAL2. 利用ユーザ 増加へ 対応• 運用負荷 増加• 利用方法 説明• クラスタ追加時 アクセス方法 通知• kubeconfig 配布• アクセス権• ユーザごとに権限を変えたい• Namespaceレベル• リソースレベル• RW/RO→ RBAC31外部認証に対応クラスタごと、プロジェクトごとにユーザ権限が設定可能
STRICTLY CONFIDENTIAL2. 利用ユーザ 増加へ 対応• 運用負荷 増加• 利用方法 説明• クラスタ追加時 アクセス方法 通知• kubeconfig 配布• アクセス権• ユーザごとに権限を変えたい• Namespaceレベル• リソースレベル• RW/RO→ RBAC32ユーザに権限を付与すれ 、アクセス可能なクラスタ /プロジェクト み表示
STRICTLY CONFIDENTIAL3. 利用シーン 増加へ 対応• 環境 違い• 普段 セットアップされたローカルPC or Macからkubectlを実行• 一時的にローカル環境使えない場合とか• ユーザーごと Kubernetes理解度、利用頻度 違い• kubectl? なにそれ?• こ コンテナ実行したいだけなんだけど• こ yaml実行したいだけなんだけど33
STRICTLY CONFIDENTIAL3. 利用シーン 増加へ 対応• 環境 違い• 普段 セットアップされたローカルPC or Macからkubectlを実行• 一時的にローカル環境使えない場合とか• ユーザーごと Kubernetes理解度、利用頻度 違い• kubectl? なにそれ?• こ コンテナ実行したいだけなんだけど• こ yaml実行したいだけなんだけど34ブラウザ上で kubectl yamlファイル コピペ GUIで コンテナ、パラメータ指定複数 デプロイ方法に対応
STRICTLY CONFIDENTIALまとめ• マネージドサービスを使っていても出てくる課題• クラスタ 増加• 利用ユーザ 増加• 利用シーン 増加• Rancherと使うとクラスタ管理 楽になる(かも)35
STRICTLY CONFIDENTIALThank you