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

Oracle Cloud Hangout Cafe - Kubernetesクラスタの管理術

Oracle Cloud Hangout Cafe - Kubernetesクラスタの管理術

Oracle Cloud Hangout Cafe(おちゃかふぇ)のセッションスライドです。

(セッションの録画)
https://youtu.be/NfCjLayAU7I

(イベントページ)
https://ochacafe.connpass.com/event/186070/

oracle4engineer

September 30, 2020
Tweet

More Decks by oracle4engineer

Other Decks in Technology

Transcript

  1. Kubernetesクラスタの管理術
    Oracle Cloud Hangout Cafe 3 #3
    Takuya Niita
    Oracle Corporation Japan
    Sep 30th, 2020
    Rancher/VerrazzanoによるKubernetesマルチクラスタ管理⼊⾨

    View full-size slide

  2. 2 Copyright © 2020, Oracle and/or its affiliates.
    1. Kubernetesマルチクラスタ管理の必要性と課題
    2. Kubernetesマルチクラスタ管理術その1(Rancher)
    3. Kubernetesマルチクラスタ管理術その2(Verrazzano)
    4. まとめ
    アジェンダ

    View full-size slide

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

    View full-size slide

  4. Kubernetesマルチクラスタ管理の必要性と課題
    Takuya Niita
    Oracle Corporation Japan
    Sep 30th, 2020
    Copyright © 2020, Oracle and/or its affiliates.
    4
    Oracle Cloud Hangout Cafe 3 #3 –Kubernetesクラスタの管理術

    View full-size slide

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

    View full-size slide

  6. クラスタ運⽤で実施すべきこと – メンテナンス –
    Copyright © 2020, Oracle and/or its affiliates.
    6
    Kuberentesの定期的なアップグレード
    • パブリッククラウド環境
    • マネージドKubernetesサービス
    • 各Kubenetesサービスに沿ったアップグレード
    • ⾃前でコンピュートに構築したKubernetes環境
    • ⼿動でのアップグレード
    • kubeadmなどのツールを利⽤したアップグレード
    • オンプレミス/プライベートクラウドKubernetes環境
    • ⼿動でのアップグレード
    • kubeadmなどのツールを利⽤したアップグレード
    A社クラウド O社クラウド オンプレミス

    View full-size slide

  7. クラスタ運⽤で実施すべきこと – セキュリティ –
    Copyright © 2020, Oracle and/or its affiliates.
    7
    クラスタ内/クラスタ間アクセス制御でセキュリティ確保
    • クラスタレベルでのセキュリティ
    • API認証
    • OpenID ConnectやLDAPなどを利用
    • API認可
    • RBAC(Role-based Access Control)の利用
    • ワークロードに対する制御(リソース使⽤量など)
    • Namespaceの利⽤
    • クラスタを跨いだセキュリティ
    • クラスタ間を考慮したAPI認証/認可
    • クラスタ間でアクセスできるクラスタ/リソースを制限
    • 通信の暗号化
    • Mutual TLS (mTLS)通信によるセキュアな通信 API認証/認可
    ユーザA
    ユーザB
    mTLS
    Namespaceでの
    リソース制御
    mTLS
    Namespaceでの
    リソース制御
    Namespaceでの
    リソース制御

    View full-size slide

  8. クラスタ運⽤で実施すべきこと – オペレーション –
    Copyright © 2020, Oracle and/or its affiliates.
    8
    クラスタのネットワーク制御と監視
    • クラスタ内/クラスタ間のネットワーク制御
    • NetworkPolicyによるネットワーク・トポロジーの
    構築
    • NetworkPolicyをサポートするプラグインを利⽤
    • クラスタの監視
    • メトリクス監視
    • Master Node/Worker Nodeのヘルスチェック
    • メモリ/CPU/ディスクなどのバイタル監視
    • アラーム通知の仕組み構築
    • 異常が検知された場合のアラーム発⽕
    Network
    Policy
    メトリクス アラーム
    メトリクス アラーム
    Network
    Policy
    Network
    Policy

    View full-size slide

  9. 参考︓コンテナアプリケーション運⽤で実施すべきこと – Observabilityとは –
    Copyright © 2020, Oracle and/or its affiliates.
    9
    Observability(可観測性)
    • システムが運⽤する上で必要な内部状態の情報を取
    得できる状態、もしくはその仕組み。
    • メトリクス
    • 定量的な数値から構成される指標
    • リソース使⽤状況データなどによる状態監視
    • Prometheus/Grafanaなどを利⽤
    • ロギング
    • 主にアプリケーションが出⼒するメッセージ
    • アプリケーションログによる状態監視や障害特定
    • Elasticsearch/Kibanaなどを利⽤
    • トレーシング
    • アプリケーションの⼀連の処理を追跡(トレース)
    • ⼀連のリクエスト毎にユニークなIDを割り当てることでアプリ
    ケーション処理フローの可視性向上
    • JaegerやOpenTracingなどを利⽤
    Metrics
    Logging
    Tracing

    View full-size slide

  10. 参考︓コンテナアプリケーション運⽤で実施すべきこと – サービスメッシュとは –
    Copyright © 2020, Oracle and/or its affiliates.
    10
    サービスメッシュ
    • 各アプリケーションごとにプロキシを配置し、プロキシを
    利⽤して他のアプリケーションと通信させる仕組み
    • きめ細かいルーティングや障害連鎖の防⽌
    • 最も有名なプロダクト︓
    • データプレーン
    • サービス間通信をプロキシが担うことで通信を制御
    • Kubernetes的にはサイドカーとしてPodごとに配置
    • IstioではEnvoyをプロキシとして利⽤
    • コントロールプレーン
    • プロキシのポリシーを⼀元管理
    • Istioではistiodというデーモンに統合
    参考:https://istio.io/latest/docs/ops/deployment/architecture/

    View full-size slide

  11. アプリケーションへのObservabilityスタック適⽤
    • 適切なスタックの適⽤
    • それぞれのアプリケーションに対して適材適所にてスタックを適⽤
    • Observabilityスタックから取得した情報の確認
    コンテナアプリケーション運⽤で実施すべきこと – Observability –
    Copyright © 2020, Oracle and/or its affiliates.
    11
    開発者
    適用するスタック
    を設定
    監視
    監視

    View full-size slide

  12. アプリケーションへのサービスメッシュ適⽤
    • クラスタ内/クラスタ間のアプリケーション間の通信制御
    • mTLS通信を利⽤したセキュアな通信の構築
    • サービスメッシュを利⽤したネットワークトラッフィックの監視
    • Prometheus/Grafana/Jaegerを利⽤
    コンテナアプリケーション運⽤で実施すべきこと – サービスメッシュ –
    Copyright © 2020, Oracle and/or its affiliates.
    12
    mTLS 2
    On-premises

    Public Cloud

    View full-size slide

  13. コンテナアプリケーション運⽤で実施すべきこと – セキュリティ –
    Copyright © 2020, Oracle and/or its affiliates.
    13
    PodSecurityPolicyによるコンテナの権限制御
    • 全てのコンテナに共通するPolicyの適⽤
    • 特権モードの利⽤可否
    • Privileged:true/false
    • ホストネットワーク/ポートの利⽤可否
    • hostNetwork:true/false
    • ホストボリュームの利⽤可否
    • allowedHostPaths:true/false
    • 実⾏ユーザ/グループの定義
    • seLinuxの設定
    • fsGroupの設定
    PodSecurityPolicyの設定例

    View full-size slide

  14. コンテナアプリケーション運⽤で実施すべきこと – オペレーション –
    Copyright © 2020, Oracle and/or its affiliates.
    14
    デプロイ先の制御とCI/CDパイプライン
    • どのクラスタにどのアプリケーションをデプロイすべきかの
    制御
    • 複数のKubernetesクラスタとそのアプリケーション
    のトポロジーを適切に管理
    • どのクラスタにどのアプリケーションがデプロイされてい
    るかを把握
    • 各クラスタごとのCI/CDパイプラインの構築/運⽤
    • デプロイ対象のアプリケーションによって異なるパイ
    プライン構築
    • 効率的なパイプラインの構築/運⽤
    レポジトリ
    On-premises
    Public Cloud












    View full-size slide

  15. マルチKubernetesクラスタにおける課題
    Copyright © 2020, Oracle and/or its affiliates.
    15
    クラスタ管理の側⾯から
    • メンテナンス
    • 定期的なアップグレードをそれぞれのプラットフォー
    ムに応じた個別操作で実施
    • セキュリティ
    • クラスタ内/クラスタ間のアクセス制御の設定におい
    て設定ミスが発⽣するリスク
    • オペレーション
    • クラスタ内/クラスタ間のネットワーク制御やモニタリ
    ング、アラーム通知の仕組みを個別に構築するこ
    とが必要
    コンテナアプリケーション管理の側⾯から
    • Observability/サービスメッシュ
    • 数あるOSSプロダクトの中からスタックを選定し、コ
    ンテナ毎に設定しておくことが必要
    • セキュリティ
    • ポリシーの設定が各コンテナごとに必要
    • オペレーション
    • コンテナアプリケーションに関するトポロジーの設計
    や把握とCI/CDパイプラインの構築が必要

    View full-size slide

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

    View full-size slide

  17. Kubernetesクラスタ管理術その1 – Rancher –
    Takuya Niita
    Oracle Corporation Japan
    Sep 30th, 2020
    Copyright © 2020, Oracle and/or its affiliates.
    17
    Oracle Cloud Hangout Cafe 3 #3 –Kubernetesクラスタの管理術

    View full-size slide

  18. Rancher
    • https://rancher.com/
    • Rancher Labs社が開発
    • SUSEが買収(2020/10末までに完了予定)
    • マルチKubernetes管理ツールの⼀つ
    • “Run Kubernetes Everywhere”
    • パブリッククラウド、オンプレミス、エッジなど幅広い
    Kubernetes環境をカバー
    • 最新v2.4.8(2020/9時点)
    • オープンソースでGitHubに公開
    • https://github.com/rancher/rancher
    • オフィシャルサポートを受けられるエンタープライズ
    向けの利⽤形態もあり
    マルチクラスタ管理ツール – Rancher –
    Copyright © 2020, Oracle and/or its affiliates.
    18
    Rancherとは「牧場主」の意味
    アプリケーション基盤のコンテナ化により、ペットのように⼤
    事に扱う時代から、家畜のように⼤勢を効率的に扱って
    いくというコンセプト(諸説あり)

    View full-size slide

  19. • 各種パブリックドクラウドからオンプレミス、エッジに⾄るまで幅広いKubernetes環境をカバー
    • シンプルなダッシュボードから⼀括で各種Kubernetesサービスを運⽤可能
    • 現在対応しているKubernetesサービス(2020年9⽉時点)
    • GKE/AKS/EKS/RKE(Rancher提供のKubernetes構築ツール)/k3s(Rancher提供のedge向けプラットフォーム)など
    • 各種KubernetesサービスはDriverと呼ばれるプラグインで管理可能
    • Rancherダッシュボードからクラスタ作成や操作が可能
    • 同じく、既存クラスタのインポートも可能
    • Observabilityやサービスメッシュなどのツールも管理可能
    • Prometheus/Grafana、Istioなど
    • 各クラスタへのアクセス制御が可能
    • RBAC⽅式でのクラスタに対するユーザ認証を実施
    Rancher概要
    Copyright © 2020, Oracle and/or its affiliates.
    19

    View full-size slide

  20. High-Availability
    • Helmを利⽤して専⽤の
    Kubernetesクラスタ上の複数ノー
    ドにRancherをインストール
    • 本番環境で奨励される⽅式
    Single-node
    • Helmを利⽤して専⽤の
    Kubernetesクラスタ上の単⼀ノード
    にのみRancherをインストール
    • High-Availability構成への移⾏を
    将来的に想定し、短期的にリソー
    スを節約して利⽤する⽬的での⽅

    Docker
    • Dockerコンテナとしてインストール
    • テストやデモンストレーション⽬的
    での⽅式
    Rancherの構築⽅式
    Copyright © 2020, Oracle and/or its affiliates.
    20

    View full-size slide

  21. Rancher Server
    • Rancherのコアとなる部分
    • Authentication Proxy/Cluster Controller
    • Rancher API/GUIの構築
    • Kubernetesの構築/管理
    • 認証機能、アクセスプロキシの提供
    Cluster Agent
    • クラスタの状態を管理するためにRancher Serverがクラ
    スタに1つデプロイ
    • クラスタ情報をRancher Serverへ登録
    Node Agent
    • DaemonSetで全ノードに対してデプロイ
    • Rancher ServerへNode情報の登録
    • 配置すべきコンテナの管理
    Rancherのアーキテクチャ
    Copyright © 2020, Oracle and/or its affiliates.
    21
    Authentication
    Proxy
    Cluster
    Controller1
    Cluster
    Controller3
    Cluster
    Controller2
    Cluster Agent1
    API Server
    kubelet
    Node Agent
    kubelet
    Node Agent
    Rancher Server
    User Cluster
    Operatorパターン
    で動作
    kubelet
    Node Agent

    View full-size slide

  22. Node
    • アプリケーションが動作する場所
    • Worker Nodeと同義
    Namespace
    • Workload(Pod/Deployment)のリソース分離を実現す
    る仕組み
    • KubernetesにおけるNamespace
    NodePool(RKE環境)
    • 複数Nodeをグルーピングした単位
    • NodePoolで定義した数とNode数が異なる場合は
    Nodeの作成/削除を実施
    Project
    • ユーザが所属する単位
    • 複数のNamespaceを含有可能
    Rancherにおけるリソースの概念
    Copyright © 2020, Oracle and/or its affiliates.
    22
    Node Node Node Node Node Node
    Node Pool Node Pool
    Project Project
    Namespace Namespace Namespace
    NodePoolとProjectを取り入れることにより
    クラスタ管理をより柔軟に実現可能

    View full-size slide

  23. RancherのRole権限
    Copyright © 2020, Oracle and/or its affiliates.
    23
    Global Role
    • 特定のクラスタに依存しない権限
    • アカウント管理など
    • Administrator/Standard User/User-Base
    Cluster Role
    • Kubernetesクラスタ別の権限
    • ノード/ストレージ/プロジェクトの管理など
    • Owner/Member/Custom
    Project Role
    • プロジェクト別の権限
    • Namespaceの管理やSecretリソースの管理など
    • Owner/Member/Read Only/Custom
    BUILT-IN
    PROJECT
    ROLE
    OWNER MEMBER READ ONLY
    Manage
    Project
    Members
    Create
    Namespaces
    Manage
    Config Maps
    View Config
    Maps
    参考:https://rancher.com/docs/rancher/v2.x/en/admin-
    settings/rbac/cluster-project-roles/#project-role-reference

    View full-size slide

  24. Rancherのその他機能
    Copyright © 2020, Oracle and/or its affiliates.
    24
    カタログ機能
    • Helmを利⽤することで視覚的なアプリケーションデプロ
    イを実現
    • ドロップダウンリストやラジオボタンなどの視覚的な
    UIを利⽤してアプリケーションを管理対象の
    Kubernetes環境にデプロイ
    Observability/サービスメッシュなどのツールとの統合
    • Prometheus/Grafana/Elasticsearch/Kibana
    などをRancherダッシュボート上で管理
    CI/CD機能
    • シンプルなCI/CDエクスペリエンスを提供し、Dockerレジ
    ストリやJenkins/GitLabなどと連携したパイプラインの効
    率的な作成

    View full-size slide

  25. • シナリオ1
    • RancherのCI/CDパイプラインを使ってみよう
    • Rancher Pipelineを利用して、サンプルアプリケーションをデプロイしてみる
    • シナリオ2
    • Rancherでサービスメッシュを始めてみよう
    • RancherからIstio環境を構築して、サンプルアプリ上にサービスメッシュを構築してみる
    ※各シナリオの待ち時間にRancherの各種機能を簡単に紹介します
    Rancherデモ
    Copyright © 2020, Oracle and/or its affiliates.
    25

    View full-size slide

  26. Rancherデモ環境 概要図
    Copyright © 2020, Oracle and/or its affiliates.
    26
    Oracle Container Engine for Kubernetes
    Oracle Container Engine for Kubernetes Oracle Container Engine for Kubernetes
    Rancher Pipeline
    シナリオ1 シナリオ2
    デプロイ
    サンプルアプリ
    サンプルアプリ

    View full-size slide

  27. Rancherデモ シナリオ2 サンプルアプリ概要図
    Copyright © 2020, Oracle and/or its affiliates.
    27
    Ingress Gateway
    Product
    Page
    Review-v1
    Ratings
    Review-v2
    Review-v3
    Details
    Request

    View full-size slide

  28. Rancherを利用することで柔軟なマルチクラスタ管理は可能
    しかし・・・
    冒頭で述べたコンテナアプリケーションのライフサイクル管理が必要
    コンテナアプリケーション管理の側⾯から
    • サービスメッシュ、Observabilityで共通したスタックを⼀元的にカスタマイズ可能な形で適⽤
    • 複雑なマイクロサービスアプリケーション間の連携
    • コンテナに対する⼀元的なセキュリティポリシーの適⽤
    • コンテナアプリケーションのトポロジーの把握と効率的なCI/CDパイプラインの構築
    そこで、クラスタ管理とコンテナアプリケーションの両方を実現するプラットフォーム
    クラスタ管理だけでは不⼗分・・・
    Copyright © 2020, Oracle and/or its affiliates.
    28

    View full-size slide

  29. Kubernetesクラスタ管理術その2 – Verrazzano –
    Takuya Niita
    Oracle Corporation Japan
    Sep 30th, 2020
    Copyright © 2020, Oracle and/or its affiliates.
    29
    Oracle Cloud Hangout Cafe 3 #3 –Kubernetesクラスタの管理術

    View full-size slide

  30. Verrazzano
    • https://github.com/verrazzano/verrazzano
    • Oracleがオープンソースで開発を進めているマルチ
    Kubernetesクラスタ管理ツール
    • “An open source enterprise container platform”
    • 以下の5つのコンセプトを包含
    • Multi Cloud
    • Application Lifecyle Management
    • Observability
    • Strong Securiry
    • Isolation
    • WebLogic/Coherence/Helidonとの⾼い親和性があり、
    レガシーJavaアプリケーションのコンテナ化を実現可能
    マルチクラスタ管理ツール – Verrazzano –
    Copyright © 2020, Oracle and/or its affiliates.
    30
    Verrazzanoはニューヨーク市のスタテンアイランドとブルックリ
    ンを結ぶ吊り橋に由来する
    アメリカ国内の吊り橋としては最⻑
    各Kubernetes環境の橋渡しの役割を担うというコンセプ
    ト(諸説あり)

    View full-size slide

  31. Multi Cloud
    • マネージド(クラウド)およびセル
    フマネージド(プライベート/オンプ
    レミス)のKubernetesクラスタをサ
    ポート
    • ベンダーロックインの回避
    Application Lifecycle Management
    • ⼤規模アプリケーションを管理可

    • アプリケーションに対するオペ
    レーション、デプロイメント戦略、
    監視スタックを構成
    Verrazzano Container Platformが持つ5つのコンセプト(1)
    Copyright © 2020, Oracle and/or its affiliates.
    31
    Public Cloud Private Cloud
    On-premise
    オペレー
    ション
    Observa
    bility
    セキュリ
    ティ
    デプロイメ
    ント戦略
    CI/CD
    Metrics
    Logging
    Tracing
    Observability
    • Prometheus/Grafana/Elasticsea
    rch/Kibana/Jaeger/Zipkinなどの
    最も広く使⽤されているオープン
    ソースツールを利⽤した
    Observabilityの実現
    • 各種ダッシュボードを即時に
    利⽤可能

    View full-size slide

  32. Strong Security
    • CalicoやPod Securityを利⽤したポリシーの適⽤
    • サービスメッシュ間の通信暗号化
    • アプリケーション認証、シングルサインオンの実現
    Isolation
    • 管理者は複数のユーザーグループ間でリソースを安全
    に共有可能
    • ユーザは必要に応じてプロジェクトに割り当てられ、
    ユーザが操作可能なスコープを制限
    Verrazzano Container Platformが持つ5つのコンセプト(2)
    Copyright © 2020, Oracle and/or its affiliates.
    32

    View full-size slide

  33. Verrazzanoを利⽤して全てのKubernetesクラスタ環境への包括的な管理を実現
    • 各ベンダーが提供するマネージドKubernetesサービスやオンプレミス環境に展開するKubernetesクラスタもVerrazzano
    上で管理可能
    • 各Kubernetesクラスタについて同⼀のポリシーを適⽤して構築/運⽤が可能
    Verrazzanoで実現する“Multi Cloud”
    Copyright © 2020, Oracle and/or its affiliates.
    33
    マルチクラスタ管理
    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

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

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



    VerrazzanoModel
    Helidon
    Application
    Helidon Application:
    - name: helidonapp
    image: helidonapp



    View full-size slide

  36. manifestでアプリケーションのデプロイ先を定義
    • “VerrazzanoBinding”というカスタムリソースを利⽤
    • 事前に定義したVerrazzanoModelの各アプリケーションをデプロイ先に紐付け
    VerrazzanoBindingを利用したアプリケーションとデプロイ環境の紐付け
    Copyright © 2020, Oracle and/or its affiliates.
    36
    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

  37. コンテナアプリケーションネイティブなパイプラインの提供
    • 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.
    37
    CI/CDパイプライン
    On-premises
    Public Cloud
    40%
    60%

    View full-size slide

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

    View full-size slide

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

    View full-size slide

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

    View full-size slide

  41. Verrazzanoデモ概要図
    Copyright © 2020, Oracle and/or its affiliates.
    41
    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

  42. まとめ
    Takuya Niita
    Oracle Corporation Japan
    Sep 30th, 2020
    Copyright © 2020, Oracle and/or its affiliates.
    42
    Oracle Cloud Hangout Cafe 3 #3 –Kubernetesクラスタの管理術

    View full-size slide

  43. マルチKubernetesクラスタ管理
    • 複数のKubernetesクラスタを利⽤したコンテナアプリケーションの運⽤
    • セキュリティの向上、耐障害性の向上や災害対策、ベンダーロックインの回避
    マルチKubernetesクラスタの管理術
    • Rancherを利⽤したマルチクラスタ管理
    • パブリッククラウド、プライベートクラウド、エッジを含めた各環境のクラスタ管理の実現
    • NodePool/プロジェクトやRoleでの権限制御によるクラスタの柔軟な管理
    コンテナアプリケーションライフサイクルも含めた管理術
    • Verrazzanoを利⽤したマルチクラスタ管理
    • ユーザ負担で構築しなければならないタスクを統合プラッフォームにより迅速に実現可能
    • Observabilityやコンテナレベルでのネットワーク/セキュリティを意識した環境の⾃動構築と運⽤の実現
    Kubernetesクラスタ管理術
    Copyright © 2020, Oracle and/or its affiliates.
    43

    View full-size slide

  44. Rancherドキュメント
    https://rancher.com/docs/rancher/v2.x/en/
    Rancher(GitHub)
    https://github.com/rancher/rancher
    Rancher Meetup
    https://rancherjp.connpass.com/
    Rancher書籍
    「RancherによるKubernetes活⽤完全ガイド」
    https://book.impress.co.jp/books/1119101048
    Verrazzanoドキュメント
    https://verrazzano.io/docs/
    Verrazzano(GitHub)
    https://github.com/verrazzano/verrazzano(α版)
    チュートリアル
    https://github.com/verrazzano/verrazzano/blob/mast
    er/install/README.md
    Verrazzano Slack
    Verrazzano.slack.com
    Invite URL:https://bit.ly/3gOeRJn
    参考情報
    Copyright © 2020, Oracle and/or its affiliates.
    44

    View full-size slide

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

    View full-size slide