構築方法(構成管理) / クラスタアップデート
GKE
on-prem
ハイブリッドクラウドにおける Kubernetes 運用
Description
構築方法
(構成管理) Terraform kubespray
※. Ansible ベースの Kubernetes クラスタ構築ツール
マスターノード マネージド 自前で運用
Cloud Provider GCP
-ログ収集 StackDriver に送信(デフォルトで収集) Google 公式が公開している StackDriver 用の
Fluentd プラグインを改修して StackDriver に送信 クラスタ
アップデート 自動 kubespray
クラスタへの認証 gcloud コマンドで Google アカウント経由で認証 Kubernetes の機能としての Service Account / User 等で認証
Kubernetes
オンプレミス
Kubernetes
GKE
・・・
Anthos 導入前
マスターノード
Kubernetes
オンプレミス
Kubernetes
GKE
● マネージドなので運用する必要無し
○ マスターノードは隠蔽されている
● マスターノード含めて運用する必要がある
○ クラスタ全体の安定性は GKE の方が高い
○ 過去経験として様々な障害が発生
■ 原因調査から解決まで骨の折れる作業
■ あくまで Kubernetes のナレッジを溜める
いい機会だと考えている
Anthos 導入後
マスターノード
GKE
on-prem
Client Machine Admin Workstation
gkectl
kubectl
kubectl
GKE on-prem
Admin Cluster
User Cluster Master Node
Worker Node Worker Node
Worker Node
User Cluster Control Plane Component
User Cluster Control Plane Component
User Cluster Control Plane Component
Worker Node Worker Node
Worker Node Admin Cluster
LoadBalancer
User Cluster LoadBalancer
LB (Standby) LB (Active) LB (Standby)
LB (Active)
● GKE と同様 User Cluster から見るとマスターノードが隠蔽された状態
○ Admin Cluster の POD として Control Plane が稼働しているため高い耐障害性
■ 仮に POD がダウンしても Kubernetes のレイヤーでオートヒーリング
○ Admin Cluster も vSphere 上で稼働しているため完全にマネージドではない
■ 運用上極力意識をしなくて良い設計になっている
ハイブリッドクラウドにおける Kubernetes 運用
Description
構築方法
(構成管理) Terraform kubespray
※. Ansible ベースの Kubernetes クラスタ構築ツール
マスターノード マネージド 自前で運用
Cloud Provider GCP
-ログ収集 StackDriver に送信(デフォルトで収集) Google 公式が公開している StackDriver 用の
Fluentd プラグインを改修して StackDriver に送信 クラスタ
アップデート 自動 kubespray
クラスタへの認証 gcloud コマンドで Google アカウント経由で認証 Kubernetes の機能としての Service Account / User 等で認証
Kubernetes
オンプレミス
Kubernetes
GKE
・・・
Anthos 導入前
Cloud Provider / ログ収集
Kubernetes
オンプレミス
Kubernetes
GKE
● GCP の様々なサービスと統合されている
○ ロギング: Cloud Logging
○ 監視: Cloud Monitoring
○ 負荷分散: Google Cloud Load Balancing etc...
● 各機能等の連携をそれぞれ用意必要がある
○ ロギング: Stackdriver 用の Fluentd Plugin を改修
■ Version Up に沿ってメンテナンスの必要がある
■ https://github.com/GoogleCloudPlatform/fluent-plugin-google-cloud
○ 負荷分散: Metal LB をクラスタにインストール
■ https://github.com/metallb/metallb
Kubernetes
GKE
・・・
Kubernetes
on-prem
Anthos 導入後
Cloud Provider / ログ収集
GKE
on-prem
Seesaw / BIG-IP / Citrix
● クラスタ管理者が意識せずとも自動で連携
○ GKE と同じインターフェースでログやメトリクスの確認が可能
■ 運用の統合を大きく加速
■ 公式から Cloud Monitoring のダッシュボードも提供
● 監視設定等もスムーズにスタートできる
ハイブリッドクラウドにおける Kubernetes 運用
Description
構築方法
(構成管理) Terraform kubespray
※. Ansible ベースの Kubernetes クラスタ構築ツール
マスターノード マネージド 自前で運用
Cloud Provider GCP
-ログ収集 StackDriver に送信(デフォルトで収集) Google 公式が公開している StackDriver 用の
Fluentd プラグインを改修して StackDriver に送信 クラスタ
アップデート 自動 kubespray
クラスタへの認証 gcloud コマンドで Google アカウント経由で認証 Kubernetes の機能としての Service Account / User 等で認証
Kubernetes
オンプレミス
Kubernetes
GKE
・・・
Anthos 導入前
クラスタへの認証
Kubernetes
オンプレミス
Kubernetes
GKE
● ユーザーアカウント( SRE や開発者)
○ gcloud コマンドを使った認証
■ Google アカウントによる認証
● 認証情報は統合的に管理できていない
○ クラスタ毎にバラバラの認証情報
Kubernetes
GKE Kubernetes
on-prem
Kubernetes
on-prem
Kubernetes
GKE
アカウント
Anthos 導入後
クラスタへの認証
GKE
on-prem
● OpenID Connect を利用した認証に対応
○ Google を Provider として認証すれば Google アカウントでクラスタへ認証が可能
■ ドメインによる認証の制限等も可能
● e.g.) @uzabase.com のドメインアカウントのみ承認
GKE
on-prem
Anthos 導入により 様々運用を簡素 / 統一化
● その他機能も活用
○ Anthos Config Management による GitOps の実践
○ GKE / Anthos のダッシュボード統合
etc...
Anthos GKE On-Prem Cluster - dev/e2e test
Anthos 導入戦略
monolit
OSS kubernetes Cluster - prod
on-premise
Anthos GKE On-Prem Cluster - dev/e2e test
logging / monitoring