Upgrade to Pro — share decks privately, control downloads, hide ads and more …

ACM 2.1 概要説明資料 short

Yuhki Hanada
January 14, 2021

ACM 2.1 概要説明資料 short

Red Hat Advanced Cluster Management 2.1

ページ内のURLをクリックしたいという方向けに slideshare にもアップしています。https://www.slideshare.net/YuhkiHanada/acm21-short-public

Yuhki Hanada

January 14, 2021
Tweet

More Decks by Yuhki Hanada

Other Decks in Technology

Transcript

  1. Red Hat Advanced Cluster Management for Kubernetes 2.1 Cloud Solution

    Architect Yuhki Hanada 最終更新日 2021/01/14 1
  2. 複数クラスターを構築する動機 Red Hat Advanced Cluster Management for Kubernetes アプリの可用性を保つため のマルチクラスター化

    低遅延を目指した Edge への配置 プロダクション/ ステージング/テスト 開発クラスターの準備 ビジネスの拡大に 伴う新規クラスター の追加 DR(ディジャスター リカバリー)用の マルチクラスター トレーニング向け 環境の 一時的な払い出し CAPEX コスト削減のため パブリッククラウドの 活用 ベンダーロックインを避 けるため複数環境を使用 したい。 (複数のベンダーのクラス ターの使用) 3 可用性の観点 ビジネス要件 プロジェクト要件 コスト・戦略
  3. IDC の調査では US の200以上の10億ドルの会社が、積極的に2 つ以上の “infrastructure clouds” をプロダクション環境で使用 しています。 81%

    マルチ・クラスタ環境を維持するのは大変です 4 複数の環境、クラウド / プライベートク ラウドを使ってマルチクラウドを実現 ▸大規模環境をマネージしようとすると、予期 していなかった運用上の困難が顕在化しがち になる。 ▸環境毎にセキュリティーの設定がまちまちに なる。 ▸インストールしているコンポーネントや、ク ラスターの構成が、ポリシー、コンプラアン スに沿っているか確認するのが大変。 複数のクラウドインフラを使用している 93% 複数のパブリック・クラウドと、一つ 以上のプライベート / 専用クラウドを 使っている Red Hat Advanced Cluster Management for Kubernetes
  4. 複数のクラスターの管理 5 数個のクラスタ アプリdeploy 各種基本設定 現状の確認 設定の更新 10個のクラスタ アプリdeploy 各種基本設定

    現状の確認 設定の更新 アプリdeploy 各種基本設定 現状の確認 設定の更新 マルチクラスタ管理ツールによる一括管理の場合 新規作成 削除 クラスタの作成 クラスタの削除 クラスタの更新 統一された運用設定 統一されたセキュリティ設定 同じ作業を10回繰り返し クラスタ作成時の基本マニュアル作業 クラスタ作成後の定期的なマニュアル作業 クラスタ作成時の基本マニュアル作業 クラスタ作成後の定期的なマニュアル作業 定義された作業が自動的に 実行される。 Audit / Compliance Audit / Compliance Audit / Compliance 手動による管理の場合
  5. 6 HUB Cluster API Server API Server API Server API

    Server API Server TLS Managed Clusters ACM for Kubernetes の概要 サポートのバージョンは資料作成時点の情報です。 詳細はこちらRed Hat Advanced Cluster Management for Kubernetes 2.1 Support Matrix - Red Hat Customer Portal ACM 用の専用のクラスタが推奨 (Master + Worker) 管理される側のクラスターには「multicluster-endpoint」というネームスペースと管理のために必要な pod 等のリソースが作成されます。 ACM Hub ACM 管理用Pod ACM 管理用Pod ACM 管理用Pod ACM 管理用Pod ACM 管理用Pod ・OpenShift と Kubernetes のクラスタの両方が管理できます。 (他社 Managed サービスは、リモートからのクラスター作成一部機能制限あり) ・Kubernetes 標準の APIサーバー経由で管理を行います。 他社 Managed Kubernetes (GKE/EKS/IKS(IBM K8S)/ AKS) OpenShift クラスター Kubernetes なら必ず持ってい る Interface
  6. ACM (Advanced Cluster Management) の基本機能 ACM はオペレーター として提供されます 1) 管理対象クラスターの可視化

    - 管理対象クラスターの接続状況、Node数、Pod数 etc. - Dynamic Search – 管理対象リソース(Pod, Node, namespace, Role, Secret etc..)横断的検索機能 2) クラスターのライフサイクル管理 - クラスターのライフサイクル管理 (Create, Upgrade, Destroy) - 各クラスター毎のリソース(CPU, Memory等)使用状況をモニタリング 3) アプリケーション・ライフサイクル管理 - 複数クラスターにまたがるアプリケーションの管理 4) ポリシーベースのガバナンス - 集中的にセキュリティや、アプリケーション、インフラのポリシーを設定、適用 4つの基本機能
  7. 9 • OCP Kubernetesのフル・マネージメント ◦ OpenShift 3.11 - 4.6 ◦

    パブリッククラウドでホストされた OCP • パブリッククラウド: EKS, AKS, GKE, IKS, ROKS のサ ポート • クラスタのハイレベルな概要の確認 ◦ Application の状況(※1) ◦ コンプライアンスの適合状況(※1) ◦ Pod / Node / Cluster状況(※2) • クラスターを跨がった、トラブルシューティングと問題 解決 ◦ サーチ用のコンソール(Dynamic Search)を使っ て、Kubernetes Object を横断的に検索 クラスターの健全性とリソース使用状況 管理対象クラスターの可視化 ※1) ACMが作成するアプリケーション、コンプライアンスの定義の適合状況 ※2) 例えばPod の場合 Failed / Pending / Running
  8. 10 管理対象クラスタの可視化 (Observability Service※1 ) Grafana による、統合監視ダッシュボード Managed Cluster Hub

    Cluster Object Storage Alert Manager Thirdparty Applicatio n ACM Hub Clusterで性能監視情報を統合 使用されている OSS テクノロジー Managed Cluster のメトリックスの収集:Prometheus 各クラスターから収集した Prometheus のデータの統合管理: Thanos 収集したデータを可視化するダッシュボード : Grafana ユーザー側で準備が必要 (※2) ※1) この機能(Observability Service) の構成するには、追加のリソース(CPU/Memory/Disk)を考慮する必要があります。 ※2) データ保管用の Object Storage は別途、用意する必要があります。(S3 とその互換製品 / GCS / Azure Storage / Ceph をサポート)
  9. 11 • トラブルシューティングなどに使えるクラ スター内のリソースやオブジェクトの検索 ダッシュボード • 環境内に無数にある Kubernetes の”リソ ース”を横断的に検索

    • 例) unhealthy pod の表示 • 関連する情報をクリック操作でドリルダウ ン • 関連する PV / Secrets、その他、関連す るどんな Kubernetes リソースやオブジ ェクトを表示 管理対象クラスターの可視化 Dynamic Search
  10. 管理対象クラスターの可視化 (参考)Dynamic Search 12 ラベルの値の候補を表示 検索結果 検索Box 条件を指定して絞り込み Kubernetes リソースを検索によっ

    て絞り込むためのサーチ画面です。 ・大量のリソースを高速に検索する 事が可能です。 ・リソースを素早く見つけ出す事が できます。
  11. 13 13 • OpenShift クラスターを Create, Upgrade Destroy • Hive

    API for OCP cluster deploymentを活用 • ウィザード形式での作成 or YAMLベースでの 作成 (YAML形式で保管しておく事で設定をコードとして管理 する事も可能) • ACMから Managed Cluster(管理対象クラス タ)の OCPコンソールの起動 • Cluster ログイン用のクレデンシャルへのアク セス、kubeadmin コンフィグレーションのダ ウンロード クラスターの作成とインポート Multi-Cluster のLifecycle 管理 ACM 2.1 でGA OpenShift Cluster 、リモート作成対象の環境
  12. 14 14 • セキュリティ、アプリケーショ ン、インフラストラクチャのポ リシーを設定して適用 • アプリケーション、クラスター 構成の詳細な視覚化 •

    「inform」モードで、「ポリ シー」違反を検知 • 「enforce」モードで「ポリシ ー」違反している状況を強制的 に修正 • ポリシーに違反は、ダッシュボ ードにカテゴリーにわけて表示 ポリシーによるCompliance 管理 ポリシーの作成画面
  13. Stable な Policy (As of 2020/12/01) 16 https://github.com/open-cluster-management/policy-collection/tree/master/stable Policy Description

    policy-limitclusteradmin OpenShift の cluster-admin ユーザーの数を制限する policy-role 指定された Permissionを持ったロールが存在している確認する。 policy-rolebinding ある Entityが特定のロールに紐付いているか確認する。 policy-etcdencryption Secret や、ConfigMap、Route、OAuthアクセストークン等に暗号化を使用する (etcd 暗号化) policy-limitmemory Resource Limitが設定されているか確認する。 policy-namespace 指定された namespace が存在しているか確認する policy-pod 指定された Pod が存在しているか確認する policy-certificate 指定された期間に Expire する証明所が無いか確認する policy-imagemanifestvuln コンテナイメージの脆弱性を検知する。CSO(Container Security Operator) のインストールが必要。 (Quayも必要) policy-psp Pod のセキュリティ・ポリシーが存在している事を確認 policy-scc SCC(Security Context Constrains) が指定された通りに存在しているか確認
  14. 17 17 アプリケーションのLifecycle 管理 • アプリケーションを大規模にデプロ イする。 • Deploy Applications

    from Multiple Sources and Clusters • アプリケーションの関係を素早く可 視化する。 • 「サブスクリプション」と「チャネ ル」を使う事により、最新のアプリ ケーションのバージョンが適切なク ラスターに自動的に配布されます。 アプリケーションのライフサイクルをシンプルに ・クラスターをまたいだアプリケーシ ョンのデプロイ ・リポジトリの変更を検知した自動デ プロイ デプロイされた、 Kubernetes “リソース”
  15. 18 18 • GitHubや Helm Chart レ ポジトリをチャネルに設 定する事で、レポジトリ の変更をトリガーにアプ

    リケーションを更新 • Time Windows:アプリ ケーションを配布して良 い時間を設定する • ローリング・アップデー ト: パーセンテージを指 定し、変更を適用する割 合を制御 Objectstorage アプリケーションのLifecycle 管理 : ACMを使った DevOps Managed Cluster (管理対象クラスター) ACM HUB Cluster 変更監視 Deploy 開発者 アプリケーションを更新 Repository に置く チャネル チャネル チャネル 東京 NY シンガポール クラスターがサブスクライブしているものを配布
  16. 19 ACM と Ansible 連携(Tech Preview @ ACM2.1) Managed Cluster

    (管理さ れているクラスター)が、 サブクスクライブしている チャネルのリソースを読み 込みます。 ACM Hub が アプリケーシ ョンの Pre/Post アクショ ンとして、Ansible のテン プレート Job ID をコール します。 Ansible Automation Platformが Job を実行しま す。 ACM Hub がJobの実行の結 果を受け取るります。また、 Ansible の Job の状態を含 めた、Kubernetes リソー スを表示します。 1 2 3 4 Managed Cluster (管理対象クラスター) ACM HUBクラスター 1 2 3 4 アプリケーション Repository 監視 0 プレ/ポスト Jobの実行依頼 完了通知 ジョブの実行 アプリケーション更新 アプリケーション更新 アプリケーション更新状況のモニター ジョブ実行状況のモニター アプリケーショ ンの更新検知 プレJobの実行 ポストJobの実行 アプリケーショ ンの更新 処理の流れ
  17. 21 ユーザー・アプ リケーション ユーザー・アプ リケーション 開発環境へのマルチ・クラスタ管理ソフトの適用案 マルチ・クラスタ 管理ソフト クラスター 構成ポリシ

    ー定義 クラスター 構成 クラスター 構成 マルチ・クラスタ管理ソフト を使った、クラスター構成と アプリケーションの再現 namespace 管理ユーザー オペレーター等 ユーザー・アプ リケーション クラスター 構成 開発者 一般User 開発・テスト環境 ステージング環境 本番環境 インターネット ステージング・アクセス制御 プライベート・ネットワーク 開発者 開発 ブランチ Staging ブランチ 本番 ブランチ アプリケーション・レポジトリ マージ マージ test ok test ok 変更監視 アプリケーションのダウンロード 開発者のIP/token のみを透過 クラスタ構成ポリシー・レポジトリ ユーザー・アプリ ケーション定義 参照先のレポジ トリ等を記述 実体は、レポジ トリに取りに行 かせる。 コンテナの実体 はさらに、コン テナのレポジト リに取りに行く Kubernetes のリソース定義ファイル v19 v18 v17 自動で構成できるもの は自動構成 自動構成できないもの は、アラート通知
  18. 22 ユーザー・アプ リケーション ユーザー・アプ リケーション DNS Kubernetes 1.16 Kubernetes 1.18

    ユーザー・アプリ ケーション定義 クラスタのバージョンアップへの利用案 (1) バックアップ によるデータ移行 リストア コピー機能によるデータ移行 マルチ・クラス タ管理ソフト Load Balancer/Proxy LB / Proxy を使用した アクセス先の切り替え FQDNが参照す るIPアドレスを 変更 DNSの切り替え によるアクセス 先の切り替え PV PV PV Backup アプリケーション・デプロイ アプリケーションへのアクセスパス クラスター切り替え時に、 切り替え時間を確保して最 新のデータに更新 ユーザーデータを持つ アプリケーションの切り替え方法(例) 1) 新バージョンのクラスターを作成。 ユーザーアプリ、構成を再現 2) アプリケーションを停止 (旧バージョンクラスタ) 3) データをコピー 方法 A) Backup / Restore 方法 B) ストレージのCopy機能 3) アプリケーションの開始 (新バージョンクラスタ) 4) アクセスIPの切り替え 方法 A) DNSによる IP切り替え 方法 B) LB / Proxy を使った接続先切り替え クラスター 構成ポリシ ー定義 クラスター 構成 クラスター 構成 User マルチ・クラスタ管理ソフト を使った、クラスター構成と アプリケーションの再現 namespace 管理ユーザー オペレーター等 方法A 方法B 方法A 方法B
  19. 23 ユーザー・アプ リケーション ユーザー・アプ リケーション DNS Kubernetes 1.18 Kubernetes 1.19

    ユーザー・アプリ ケーション定義 クラスタのバージョンアップへの利用案 (2) マルチ・クラス タ管理ソフト Load Balancer/Proxy LB / Proxy を使用した アクセス先の切り替え FQDNが参照す るIPアドレスを 変更 DNSの切り替え によるアクセス 先の切り替え Database Server オンプレ /クラウド アプリケーション・デプロイ アプリケーションへのアクセスパス ユーザーデータを持つ アプリケーションの切り替え方法(例) 1) 新バージョンのクラスターを作成。 ユーザーアプリ、構成を再現 2) 旧バージョンのクラスタと、新バージョンのクラスタ ーに同時にトラフィックを割り振る 方法 A) DNSによる IP切り替え 方法 B) LB / Proxy を使った接続先切り替え 3) 問題がなければ、旧バージョンクラスタへのトラフィ ックをリタイヤ クラスター 構成ポリシ ー定義 クラスター 構成 クラスター 構成 User マルチ・クラスタ管理ソフト を使った、クラスター構成と アプリケーションの再現 namespace 管理ユーザー オペレーター等 方法A 方法B IP接続 トラフィックを両方に割り振 り、大丈夫そうなら切り替え ※アプリケーションの仕様によってはできないものもある。 例) セッションが必要だが、単独インスタンスで使用される事を想定してセッションを保持する機能が無いアプリ。
  20. サポート対象の Managed Cluster Features Red Hat OpenShift / OKE IBM

    Red Hat OpenShift Kubernetes Services (ROKS) Amazon EKS Google GKE IBM Cloud Kubernetes Service Microsoft AKS クラスタのリスト Yes Yes Yes Yes Yes Yes 既存クラスタのインポート Yes [a] Yes Yes Yes Yes Yes クラスタの作成 Yes [b][c] No No No No No クラスタのアップグレード Yes [b] No No No No No クラスタの削除 Yes [b] No No No No No [a] Red Hat OpenShift Container Platform 3.11. 200 and above [b] Red Hat OpenShift Container Platform 4.3.18 and above (4.4.3 and later /4.5.2 and later /4.6 and later) [c] AWS/GCP/ Azure サポートのバージョンは資料作成時点の情報です。詳細と最新の情報は以下から確認できます。 「Cluster Life Cycle Management」とは、管理しているCluster の「作成 / アップグレード / 削除」を指します。 OCP以外の Kubernetes ディストリビューションについては、クラスタの作成、アップデート等はサポートしていない。 https://access.redhat.com/articles/5248271 25 他社 managed Kubernetes サービス 管理対象概要 Master nodes Workers Cloud Provider の Managed な Kubernetes Cluster Cloud Provider の管理エリア ユーザーが使えるエ リア ・独自技術などを入れている場合も ・API でクラスタ-を作れたりするが、 Kubernetes 標準技術ではないため、この辺りを操 作するのはサポートされてない。
  21. 26 ACM Hub のサポート環境、インストール構成 Master nodes Infra nodes Master nodes

    Workers nodes Infra nodes ACM Application (Hub) ACM Application (Hub) ・ACM 専用のクラスタを用意する (運用・管理的に、ユーザーのアプリとは混ぜない事が、 おすすめ) ・用意したクラスターの Infra Node にインストール する ・既存のクラスターに追加 ・User Application が稼働す るクラスターに同居する ・Infra Node (※2) にインス トールする ・Worker Nodeでは、ユーザ ーのアプリケーションを稼働 User Application NS: open-cluster-management NS: open-cluster-management ACM Hub 構成例1 ACM Hub 構成例2 ※1)Managed の OpenShift 環境は、現在Hub環境としてはサポートされていません。IBM ROKS( Red Hat OpenShift on IBM Cloud) については、ACM 2.2でサポート予定です。 ※2) Infra Node は、OpenShift で定義される Node の Role です。ユーザーアプリケーションを動作させてない事を条件に OpenShift の Worker としての課金対象から免除されます。 Hub クラスターのサポートされる環境は、Self Managed の OpenShift 環境のみ(※1)で、一般の Kubernetes 環境はサポートさ れていません。 サポート・インストール環境 ※ Infra ノードは、OCPのライセンスが必要無い
  22. linkedin.com/company/red-hat youtube.com/user/RedHatVideo s facebook.com/redhatinc twitter.com/RedHat Red Hat is the world’s

    leading provider of enterprise open source software solutions. Award-winning support, training, and consulting services make Red Hat a trusted adviser to the Fortune 500. Thank you 27