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

Verrazzanoで実現するKubernetesマルチクラスタ運用とコンテナアプリケーションのライフサイクル管理

 Verrazzanoで実現するKubernetesマルチクラスタ運用とコンテナアプリケーションのライフサイクル管理

Cloud Native Days Tokyo2020(2020/9/8~2020/9/9)でご紹介したOracleがオープンソースで開発しているVerrazzanoというサービスのご紹介です!

以下で公開しておりますのでご興味がある方はぜひお試しください!
Web:https://verrazzano.io/
GitHub:https://github.com/verrazzano/verrazzano

oracle4engineer

September 09, 2020
Tweet

More Decks by oracle4engineer

Other Decks in Technology

Transcript

  1. Verrazzanoで実現するKubernetesマルチクラスタ
    運⽤とコンテナアプリケーションのライフサイクル管理
    Takuya Niita
    ⽇本オラクル株式会社
    Sep 09, 2020

    View full-size slide

  2. Safe harbor statement
    以下の事項は、弊社の⼀般的な製品の⽅向性に関する概要を説明するものです。
    また、情報提供を唯⼀の⽬的とするものであり、いかなる契約にも組み込むことはできませ
    ん。以下の事項は、マテリアルやコード、機能を提供することをコミットメント(確約)するも
    のではないため、購買決定を⾏う際の判断材料になさらないで下さい。
    オラクル製品に関して記載されている機能の開発、リリースおよび時期については、弊社の
    裁量により決定されます。
    Oracleは、⽶国オラクル・コーポレーション及びその⼦会社、関連会社の⽶国及びその他の国における登録商標または商標です。
    他社名⼜は製品名は、それぞれ各社の商標である場合があります。
    Copyright © 2020, Oracle and/or its affiliates.
    2

    View full-size slide

  3. 3 Copyright © 2020, Oracle and/or its affiliates.
    1. Kubernetesのマルチクラスタ管理の必要性と課題
    2. Verrazzanoの概要とメリット
    3. デモ
    アジェンダ

    View full-size slide

  4. • 仁井⽥ 拓也
    • ⽇本オラクル株式会社
    テクノロジー・クラウド・エンジニアリング本部
    • 前職は某SIer
    • Oracle歴︓1年5ヶ⽉
    • Cloud Native歴︓1年ちょっと
    • Kubernetesもここ1年で触り始めました
    • CKA取得
    • ジブリ⼤好き
    ⾃⼰紹介
    Copyright © 2020, Oracle and/or its affiliates.
    4
    @takuya_0301

    View full-size slide

  5. Kubernetesのマルチクラスタ管理の必要性と課題
    Copyright © 2020, Oracle and/or its affiliates.
    5

    View full-size slide

  6. シングルクラスター運⽤での課題
    • 障害が発⽣した場合に影響範囲が⼤きくなってしまう可能性
    • セキュリティの境界線が曖昧になってしまう可能性
    • ベンダーロックインが発⽣する可能性
    マルチクラスタの採⽤によるメリット
    • クラスタを分離することで、耐障害性の向上やディザスタリカバリへの対応が可能
    • クラスタで隔離することで、セキュリティに関する境界線が明確化
    • 複数のKubernetesサービスを利⽤することでベンダーロックインを回避
    マルチKubernetesクラスタ運⽤でのメリット
    Copyright © 2020, Oracle and/or its affiliates.
    6

    View full-size slide

  7. コントロールプレーン/ノードのメンテナンス
    • クラスタの作成/削除
    • Master NodeとWorker Nodeの更新
    セキュリティ
    • クラスタのアクセスに対する制御
    • クラスタを跨いだアクセスに対する制御
    オペレーション
    • クラスタ内/クラスタ間のネットワーク制御
    • クラスタ毎のメトリクス監視やアラーム通知
    マルチKubernetesクラスタ運⽤で実施すべきこと
    Copyright © 2020, Oracle and/or its affiliates.
    7

    View full-size slide

  8. コントロールプレーン/ノードのメンテナンス
    • クラスタの作成/削除
    • Master NodeとWorker Nodeの更新
    =>それぞれのプラットフォームに応じた個別操作が必要
    セキュリティ
    • クラスタのアクセスに対する制御
    • クラスタを跨いだアクセスに対する制御
    =>設定ミスが発⽣する可能性
    オペレーション
    • クラスタ内/クラスタ間のネットワーク制御
    • クラスタ毎のモニタリングやアラーム通知
    =>クラスタ毎に設定/構築が必要
    マルチKubernetesクラスタ運⽤の課題
    Copyright © 2020, Oracle and/or its affiliates.
    8
    A社クラウド オンプレミス環境
    O社クラウド
    A社クラウド オンプレミス環境
    O社クラウド
    開発者 管理者

    View full-size slide

  9. デプロイスタックの共通化
    • 各デプロイ先でのObservability(Metrics/Logging/
    Tracing)環境の構築と運⽤
    • 各コンテナアプリケーション間のネットワーク通信の制御
    セキュリティ
    • 各コンテナに付与する権限の制御
    オペレーション
    • どのクラスタにどのコンテナアプリケーションをデプロイすべき
    かの制御
    • CI/CDパイプラインの構築と運⽤
    マルチKubernetesクラスタのコンテナアプリケーション運⽤で実施すべきこと
    Copyright © 2020, Oracle and/or its affiliates.
    9
    シェルスクリプト
    コマンド
    レポジトリ
    デプロイ
    デプロイ
    デプロイ

    View full-size slide

  10. デプロイスタックの共通化
    • 各デプロイ先でのObservability (Metrics/Logging/
    Tracing)環境の構築と運⽤
    • 各コンテナアプリケーション間のネットワーク通信の制御
    =>スタックの選定と各コンテナ毎に定義することが必要
    セキュリティ
    • 各コンテナに付与する権限の制御
    =>各コンテナ毎に個別に定義が必要
    オペレーション
    • どのクラスタにどのコンテナアプリケーションをデプロイすべきかの
    制御
    • CI/CDパイプラインの構築と運⽤
    =>トポロジーの適切な設計/把握とパイプラインの構築が必要
    マルチKubernetesクラスタでのコンテナアプリケーション運⽤の課題
    Copyright © 2020, Oracle and/or its affiliates.
    10
    シェルスクリプト
    コマンド
    シェルスクリプト
    コマンド
    レポジトリ コンテナA
    コンテナB
    コンテナC
    コンテナD
    コンテナE
    コンテナF

    View full-size slide

  11. クラスタ管理の側⾯から
    • 全てのクラウド/オンプレミス環境上のKubernetesクラス
    タを管理するための統⼀されたプラットフォーム
    • マルチクラスターに対して認証、RBACでのアクセス制御
    を⼀元的に管理
    • 複雑なクラスタ内/外のネットワーク制御の管理
    • 統合された監視プラットフォームによる運⽤
    コンテナアプリケーション管理の側⾯から
    • サービスメッシュ、Observabilityで共通したスタックを⼀
    元的にカスタマイズ可能な形で適⽤
    • 複雑なマイクロサービスアプリケーション間の連携
    • コンテナに対する⼀元的なセキュリティポリシーの適⽤
    • コンテナアプリケーションのトポロジーの把握と効率的な
    CI/CDパイプラインの構築
    複数のKubernetesクラスタを管理していくために
    Copyright © 2020, Oracle and/or its affiliates.
    11
    マルチクラスタ管理とコンテナアプリケーションライフサイクル
    の両⽅が実現可能なプラットフォームが必要

    View full-size slide

  12. Verrazzanoの概要とメリット
    Copyright © 2020, Oracle and/or its affiliates.
    12

    View full-size slide

  13. Curated
    • プラットフォームを構築するために
    統合するすべてのコンポーネントを
    Oracleが厳選して提供
    • 選択したプロダクトとそのバー
    ジョンを全て機能することをテ
    ストした上で提供
    Multi Cloud
    • マネージド(クラウド)およびセル
    フマネージド(プライベート/オンプ
    レミス)のKubernetesクラスタをサ
    ポート
    • ベンダーロックインの回避
    Application Lifecycle Management
    • ⼤規模アプリケーションを管理可

    • アプリケーションに対するオペ
    レーション、デプロイメント戦略、
    監視スタックを構成
    Verrazzano Container Platformが持つ6つのコンセプト(1)
    Copyright © 2020, Oracle and/or its affiliates.
    13
    Public Cloud Private Cloud
    On-premise
    オペレー
    ション
    Observ
    ability
    セキュリティ
    デプロイメ
    ント戦略
    CI/CD

    View full-size slide

  14. Metrics
    Logging
    Tracing
    Observability
    • Prometheus/Grafana/Elasticsea
    rch/Kibana/Jaeger/Zipkinなどの
    最も広く使⽤されているオープン
    ソースツールを利⽤した
    Observabilityの実現
    • 各種ダッシュボードを即時に
    利⽤可能
    Strong Security
    • CalicoやPod Securityを利⽤した
    ポリシーの適⽤
    • サービスメッシュ間の通信暗号化
    • アプリケーション認証、シングルサイ
    ンオンの実現
    Isolation
    • 管理者は複数のユーザーグループ
    間でリソースを安全に共有可能
    • ユーザは必要に応じてプロジェ
    クトに割り当てられ、ユーザが
    操作可能なスコープを制限
    Verrazzano Container Platformが持つ6つのコンセプト(2)
    Copyright © 2020, Oracle and/or its affiliates.
    14

    View full-size slide

  15. Cloud Nativeを実現する多くのOSSソリューションから厳選して組み合わせたオープンソースの統合プラットフォーム
    • ⾮常に多くのOSSソリューションを組み合わせて⼀つのシステム体系として実現・維持していくことは、エンドユーザーにとっ
    て⼤きな負担になることが多い
    • Oracleが統合プラットフォームとして提供
    Verrazzanoで実現する“Curated”
    Copyright © 2020, Oracle and/or its affiliates.
    15
    ログ監視︓ELK Stack/Fluentd
    サービスメッシュ︓ Istio control plane
    マルチクラスタ管理︓Rancher Console
    モニタリング︓Prometheus/Grafana
    CI/CD︓GitOps
    ログ情報
    Rancher
    Agent
    Verrazzano
    Operator
    アプリケーション
    Istio
    データプレーン
    Pod
    deploy

    View full-size slide

  16. Verrazzanoを利⽤して全てのKubernetesクラスタ環境への包括的な管理を実現
    • 各ベンダーが提供するマネージドKubernetesサービスやオンプレミス環境に展開するKubernetesクラスタもVerrazzano
    上で管理可能
    • 各Kubernetesクラスタについて同⼀のポリシーを適⽤して構築/運⽤が可能
    Verrazzanoで実現する“Multi Cloud”
    Copyright © 2020, Oracle and/or its affiliates.
    16
    マルチクラスタ管理
    Verrazzano
    インフラ運⽤管理
    Rancher/Istio
    モニタリング・ログ収集
    Prometheus
    Grafana
    Fluentd
    EFK Stack
    Jaeger
    CI/CDインフラ
    Gitlab
    Jenkins
    SSO/アクセス管理
    Keycloak
    Oracle Cloud Private Cloud 3rd Party Cloud
    Kubernetes Kubernetes Kubernetes

    View full-size slide

  17. Service Mesh
    VerrazzanoModelを利⽤したアプリケーション定義
    • モデルを更新することでアプリケーションへのパッチ適⽤
    や更新を実施
    VerrazzanoBindingでのデプロイ環境との紐付け
    • Bindingを更新することで各環境のアプリケーション構
    成を⾃在に構成
    CI/CDパイプライン構築/運⽤の提供
    • GitLabやJenkinsを利⽤したコンテナアプリケーションネ
    イティブなGitOpsの構築と管理を実現
    Observabilityの提供
    • 効率的な監視やロギングの実現
    Securityの提供
    • 強固なセキュリティの実現
    Verrazzanoで実現する“Application Lifecycle Management”
    Copyright © 2020, Oracle and/or its affiliates.
    17
    Application1
    Application2
    Placement
    Cluster-1
    Name: app1
    Cluster-2
    Name: app2
    app1
    cluster-1
    VerrazzanoModel VerrazzanoBinding
    アプリケーション定義とデプロイ環境のバインドを実施
    GitOpsパイプライン
    app2
    cluster-2
    mTLS

    View full-size slide

  18. Yaml形式(manifest)で複数のアプリケーション定義
    • ”VerrazzanoModel”と呼ばれるカスタムリソースを利⽤
    • 後述する”VerrazzanoBinding”というカスタムリソースを
    利⽤し、定義したアプリケーションを各デプロイ先に対し
    て紐付け
    • Oracleが提供する各プロダクトはコンポーネントとして
    事前定義済みであり、細やかな設定が利⽤可能
    • WebLogic
    • Coherence
    • Helidon
    VerrazzanoModelを利⽤した複数のアプリケーション定義
    Copyright © 2020, Oracle and/or its affiliates.
    18
    Application 1
    Web Application1:
    - name: webapp1
    image: webapp1
    !
    !
    !
    VerrazzanoModel
    Helidon
    Application
    Helidon Application:
    - name: helidonapp
    image: helidonapp
    !
    !
    !

    View full-size slide

  19. Yaml形式(manifest)でアプリケーションのデプロイ先を定義
    • “VerrazzanoBinding”というカスタムリソースを利⽤
    • 事前に定義したVerrazzanoModelの各アプリケーションをデプロイ先に紐付け
    VerrazzanoBindingを利⽤したアプリケーションとデプロイ環境の紐付け
    Copyright © 2020, Oracle and/or its affiliates.
    19
    Web Application:
    - name: Application1
    image: webapp1
    - ingress:
    - name: Ingress1
    - database:
    - target: mysql
    VerrazzanoModel
    VerrazzanoBinding
    Placement
    managed-cluster-1
    Namespace: spaceA
    Components:
    Name: Application1
    Database Bindings
    name: mysql
    url:jdbc:mysql://.....
    Ingress Bindings
    Name: Ingress1
    Public Cloud/On-Premises
    Space A
    Application1
    managed-cluster-1
    Ingress1
    MySQL

    View full-size slide

  20. コンテナアプリケーションネイティブなパイプラインの提供
    • GitLab/Jenkinsを⽤いたGitOpsの構築
    • BYOでのパイプライン構築も可能
    WebLogicアプリケーションとの⾼い親和性
    • WebLogic Image Tool、WebLogic Deploy Toolingや
    WebLogic Kubernetes operatorを利⽤したアプリケー
    ションのデプロイ
    ⾼度なデプロイ戦略の実現
    • Blue/GreenデプロイメントやA/Bテストのような⾼度な
    デプロイ戦略を効率的に実現可能
    Verrazzanoで実現するCI/CD
    Copyright © 2020, Oracle and/or its affiliates.
    20
    CI/CDパイプライン
    On-premises
    Public Cloud
    40%
    60%

    View full-size slide

  21. コンテナ
    Observabilityスタックの提供
    • デプロイするすべてのアプリケーションに適⽤
    • メトリクス
    • WebLogic/Coherence/Helidonアプリケーションにつ
    いては⾃動でPrometheusフォーマットにエクスポート
    • ロギング
    • WebLogic/Coherence/Helidonアプリケーションのロ
    ギングを⾃動で設定(Fluentdを利⽤)
    • その他のアプリケーションは標準出⼒へのベストプラク
    ティス構成を適⽤可能
    • 分散トレーシング
    • OpenTracing/Jaegerによるトレーシング
    • Istio/Envoyによるネットワーク監視の提供
    • 適⽤するスタックについてはユーザが構築可能
    Verrazzanoで実現する“Observability”
    Copyright © 2020, Oracle and/or its affiliates.
    21
    開発者
    コンテナ
    適⽤するスタックを設定

    View full-size slide

  22. 各種プラットフォームへのSSOを提供
    • 各ダッシュボードへのシングルサインオンを提供
    • LDAPやActive Directoryも利⽤可能
    • RBACとの連携やアプリケーションエンドポイントへの
    アクセス制御も実現可能
    マルチクラスタRBACの提供
    • クラスタを跨ぐRBAC制御を実装可能
    • Istioを利⽤し、サービス間のセキュア(mTLS)な通信を
    即時に提供
    • 証明書の⾃動管理を実現
    Verrazzanoで実現する“Strong Security”と“Isolation”
    Copyright © 2020, Oracle and/or its affiliates.
    22
    Public Cloud On-premises
    mTLS
    ユーザA ユーザB
    管理者
    モニタリング・ダッシュボード
    SSO
    SSO/RBAC

    View full-size slide

  23. Verrazzano Enterprise Container Platform
    • Verrazzano Container Platformに加えてエンタープラ
    イズ向けに機能拡張と豊富なサポートを提供予定
    • クラスタ間の⾃動フェイルオーバー機能
    • 機械学習/AIによる⾃動スケーリング
    • GraalVM EEやnative imageとの統合
    • サービスメッシュ設定に関するバックアップ/リストア
    機能の提供
    • オンプレミスのOracle Databaseとの統合
    • OpenShiftとの統合
    Verrazzano Enterprise Container Platform
    Copyright © 2020, Oracle and/or its affiliates.
    23

    View full-size slide

  24. Verrazzano Container Platform
    • コミュニティサポートの提供
    • Oracle Cloud Infrastructure上の各サービスとの統合
    • OCI IAM
    • OCI KMS(Key Management Service)
    • OCI APIGateway
    • Knativeサポート
    • VSCodeプラグインの提供
    Verrazzano Enterprise Container Platform
    • 24/7のサポート
    • WebLogicやCoherence、GraalVMなどのOracleが提
    供するプロダクトとのさらなる統合
    今後のロードマップ
    Copyright © 2020, Oracle and/or its affiliates.
    24
    Key
    Management
    API/Service
    ID & Access
    Management

    View full-size slide

  25. Verrazzanoデモ
    Copyright © 2020, Oracle and/or its affiliates.
    25

    View full-size slide

  26. デモシナリオ
    • Verrazzanoを構築した環境へサンプルアプリケーション
    (Bob‘s Books)をデプロイ
    • ⼀般書店であるフロントエンドのウェブストア
    「Robert’s Books」(Helidon/Coherence)
    • 児童書専⾨店のフロントエンドWebストア
    「Bobby's Books」
    (WebLogic/Helidon/Coherence)
    • バックエンドの「注⽂処理」アプリケーション
    (WebLogic/MySQL)
    • VerrazzanoModelやVerrazzanoBindingの中⾝を軽く
    確認
    • デプロイ後に⾃動的にObservability環境
    (Prometheus/Grafana/EFK Stack)が構築されるので、
    UIを確認
    Verrazzanoデモ概要
    Copyright © 2020, Oracle and/or its affiliates.
    26

    View full-size slide

  27. Verrazzanoデモ概要図
    Copyright © 2020, Oracle and/or its affiliates.
    27
    Oracle Container Engine for Kubernetes
    Istio
    IngressGateway
    Ingress
    Controller
    verrazzano-system
    bobs
    robert bobby
    namespace
    /bobbys-front-end
    /
    /bobs-bookstore-order-manager

    View full-size slide

  28. Verrazzanoデモ
    Copyright © 2020, Oracle and/or its affiliates.
    28

    View full-size slide

  29. Webサイト
    https://verrazzano.io/
    ※α版での提供のため、原則として、調査⽬的や知識習
    得⽬的でのご利⽤をお願い致します
    チュートリアル
    https://github.com/verrazzano/verrazzano/blob/mast
    er/install/README.md
    ※複数のサンプルアプリケーションをデプロイ可能です
    Slack
    Verrazzano.slack.com
    Invite URL:https://bit.ly/3gOeRJn
    Verrazzano Information
    Copyright © 2020, Oracle and/or its affiliates.
    29

    View full-size slide

  30. 30 Copyright © 2020, Oracle and/or its affiliates
    Blockchain GIG
    Big Data JAM Session
    データ ・サイエンティストな⽅々に
    向けてビッグデータや機械学習に関
    する技術情報をお届け
    Oracle Code Night Online
    Oracle Cloud Hangout Café
    毎回クラウド・ネイティブな
    テーマを取り上げて
    がっつり掘り下げる会
    通称おちゃかふぇ
    Blockchain GIG
    エンタープライズ領域でのブ
    ロックチェーン活⽤にフォーカ
    スを当て、多彩なゲストも参加
    MySQL Technology Café
    初⼼者からディープなエンジニ
    アまで、MySQLフリークな⽅々
    と最新情報や活⽤事例を紹介
    Oracle Database Technology Night
    オラクルの精鋭の技術者陣が、
    「明⽇から現場ですぐに使える
    テクニック」をお伝え
    様々なテーマでウェビナー開催中!
    各種Meetupの詳細・お申込みは で♪

    View full-size slide

  31. 31 Copyright © 2020, Oracle and/or its affiliates
    各イベント情報はconnpassにて公開中!
    oracle-code-tokyo-dev.connpass.com oracle.com/goto/jp-code-night
    過去開催 Code Night Onlineは
    Oracle Video Hubにて公開中!
    Oracle Code Night Online

    View full-size slide

  32. Oracle Cloud
    Hangout Café 3
    Oracle Cloud Hangout Cafeは、
    クラウドネイティブ時代の開発者を対象に巷で話題の
    オープン・スタンダードなテクノロジーをテーマに取り上げ、
    短時間でガッツリ学んでお持ち帰りいただく テクニカルな
    勉強会シリーズ。
    知識習得やスキル向上の場として是⾮ご活⽤ください︕
    https://ochacafe.connpass.com/
    OCHa Cafe3 #3 は9⽉30⽇ 開催︕

    View full-size slide

  33. Thank you
    33 Copyright © 2020, Oracle and/or its affiliates.

    View full-size slide