$30 off During Our Annual Pro Sale. View Details »

OCIコンテナサービス関連の技術詳細 /oke-ocir-details

OCIコンテナサービス関連の技術詳細 /oke-ocir-details

Oracle Infrastructure(OCI)のサービスの技術資料です。

oracle4engineer
PRO

January 23, 2023
Tweet

More Decks by oracle4engineer

Other Decks in Technology

Transcript

  1. OCIコンテナサービス関連の技術詳細
    ⽇本オラクル株式会社
    Jun, 2023

    View Slide

  2. Agenda
    1. OKE/OCIR技術詳細
    2. ユースケース例に基づくManifest設定例
    3. OKE/コンテナアプリケーションの監視
    2 Copyright © 2023, Oracle and/or its affiliates |

    View Slide

  3. OKE/OCIR技術詳細
    3 Copyright © 2023, Oracle and/or its affiliates |

    View Slide

  4. この資料でお話すること
    Oracle Container Engine for Kubernetes(OKE)
    • クラスタの構築⽅法
    • OKEのネットワーク関連(アプリケーションの公開、
    CNI)
    • OKEの永続化(ファイルストレージ、ブロックボリューム)
    • OKEでの他サービス管理(Service Operator)
    • OKEのスケーリング(HPA/VPA/Cluster
    Autoscaling)
    • OKE(API Server)へのアクセス制御
    Oracle Cloud Infrastructure Registry(OCIR)
    • OCIRの操作⽅法
    • OCIRにおけるイメージ保持ポリシー
    • Oracle Cloud Infrastructure Registry(OCIR)の署
    名/検証/脆弱性スキャン
    4 Copyright © 2023, Oracle and/or its affiliates |

    View Slide

  5. Oracle Container Engine for Kubernetes (OKE)
    ■ ユースケース
    迅速なコンテナプリケーションのデプロイと可⽤性の⾼い
    Kubernetesプラットフォームの実現、コンテナアプリケーション運⽤
    管理の省⼒化
    ■ 特徴
    • Oracle Databaseなど他のOCI周辺サービスとの親和性による
    効率的なコンテナアプリケーション環境構築の実現
    • OCI Service Operator for Kubernetesを利⽤した周辺
    サービスの効率的な運⽤管理
    • 仮想サーバ(VM)だけではなく、ベアメタルサーバ、GPUや
    HPCなどを利⽤し、多彩なワークロードを実現
    ■ 価格
    無料
    (※Compute/Block Volume/Network/Load Balancerなど
    のIaaSサービス)利⽤分のみ課⾦)
    5 Copyright © 2023, Oracle and/or its affiliates |
    ⾼可⽤性と開発⽣産性を両⽴するKubernetesプラットフォーム
    Service
    Operator
    Autonomous
    Database
    Object Storage
    Container Engine
    For Kubernetes
    Container Engine
    For Kubernetes
    Virtual
    Machine
    Container
    Registry
    Functions
    MySQL Database
    Service
    OCI-DevOps
    Streaming
    Load Balancer
    ワークロード
    運⽤監視
    Logging Monitoring
    Application
    Performance
    Monitoring
    Notifications
    OCI Service Mesh

    View Slide

  6. Oracle Container Engine for Kubernetes(OKE)の構築 – クイック作成 –
    クイック作成
    • 必須の⼊⼒項⽬はたったの5つ︕︕
    • クラスタ名
    • Kubernetesバージョン
    • v1.25.4/v1.24.1/v1.23.4から選択(2023/1現在)
    • Worker Nodeの可視性/Kubernetes APIエンドポイントの
    可視性
    • プライベート: Private Subnet上に構築
    • パブリック: Public Subnetに構築
    • シェイプ
    • VM/BM/GPU/HPCから選択可(CPU数とメモリ量をカ
    スタマイズ可能なflexible shapeもサポート)
    • ノード数(デフォルト:3ノード)
    • (option)ボリュームサイズ
    • デフォルト:50GB(最⼤32TBまで)
    • SSH公開キー(Worker NodeにSSHログイン可能)
    6 Copyright © 2023, Oracle and/or its affiliates |
    関連リソース(ネットワーク等)は⾃動⽣成!!

    View Slide

  7. Oracle Container Engine for Kubernetes(OKE)の構築 – カスタム作成 –
    カスタム作成
    • クイック作成に加えて、さらに詳細な項⽬を設定可能(⼀部
    抜粋)
    • ネットワーク・タイプ(いずれかを選択)
    • Native Pod Networking(OCI CNI)
    • Flannel
    • etcdの暗号化
    • OCI Vault Keyから暗号化キーを選択
    • コンテナイメージの検証有無
    • VCN(仮想ネットワーク)の設定(PodやServiceのCIDR
    含)
    • OSイメージの選択
    • 可⽤性ドメイン/障害ドメインの配置設定
    • Node削除時のcordon/drain設定
    • cloud-initスクリプト
    • Capacity Reservation利⽤有無
    7 Copyright © 2023, Oracle and/or its affiliates |

    View Slide

  8. Oracle Container Engine for Kubernetes(OKE)におけるネットワーク関連
    OKEでのアプリケーションの外部公開
    • Serviceリソースのtype: Load BalancerとしてOCI
    Load Balancer(Network Load Balancer含)を利
    ⽤可能(TCP/HTTP)
    • 指定可能なオプションは以下。(⼀部を抜粋)
    • HTTPSリスナーの利⽤
    • Load Balancerの帯域幅の選択
    (10Mbps/100Mbps/400Mbps/8000Mbps)
    • LBの種類(LB/NLB)やプロトコル(HTTP/TCP)…
    • Ingress ControllerとしてNGINX Ingress
    Controller for Kubernetesを利⽤することも可能
    OKEでのCNI(Container Network Interface)
    • CNIプラグインとしてはNative Pod Networking(OCI
    CNI)かFlannelを選択
    • Network Policyを利⽤する場合はCalicoを利⽤
    8 Copyright © 2023, Oracle and/or its affiliates |
    利⽤可能なオプションは
    「metadata.annotation」
    配下に指定

    View Slide

  9. Oracle Container Engine for Kubernetes(OKE)における永続化
    Block VolumeをPersistent Volumeとして利⽤
    • OKEにbuild-inされているCSI(Container Storage
    Interface)である”oci-bv”を利⽤してプロビジョニング
    可能
    • プロビジョニングはPersistent Volume Claim(PVC)を
    作成するだけ
    • 50GBからプロビジョニング可能
    FSSをPersistent Volumeとして利⽤
    • OKEにbuild-inされているCSI(Container Storage
    Interface)である”oci-bv”を利⽤してプロビジョニング可能
    • 予めStorageClassを作成しておく
    • 利⽤時はPersistent Volume Claim(PVC)を作成
    9 Copyright © 2023, Oracle and/or its affiliates |

    View Slide

  10. Oracle Container Engine for Kubernetes(OKE)での他サービス管理
    Service Operatorによるサービスカタログ管理
    • https://github.com/oracle/oci-service-
    operator
    • 以下のOCIサービスを管理可能
    • Autonomous Database(ATP/ADW)
    • Streaming
    • MySQL Database Service(MDS)
    • OCI Service Mesh
    • OLM(Operator Lifecycle Manager)でインス
    トール
    • 各サービスのライフサイクルもサポート
    • Ex) Autonomous Database
    • プロビジョニング
    • 既存Autonomous Databaseへのバインド
    • アップデート
    10 Copyright © 2023, Oracle and/or its affiliates |
    ATPプロビジョニング時のパラメータ(⼀部)

    View Slide

  11. Oracle Container Engine for Kubernetes(OKE)でのスケーリング
    HPA(Horizontal Pod Autoscaling)
    • HPAを有効にするためにはメトリクスサーバのインストー
    ルが必要
    HorizontalPodAutoscalerリソースの作成
    • 基本的に以下の項⽬を設定
    • targetAverageUtilization(ターゲットになる
    CPU/メモリ使⽤率)
    • minReplicas(スケール時のPodの最⼩数)
    • maxReplicas(スケール時のPodの最⼤数)
    VPA(Vertical Pod Autoscaling)
    • VPAを有効にするためにはメトリクスサーバのインストー
    ルが必要
    • 必要なコンポーネントのインストール
    • https://github.com/kubernetes/autoscaler
    /tree/master/vertical-pod-autoscaler
    • 基本的にはResource Request を実績値から判断し、
    ⾃動で調整する仕組み
    Cluster Autoscaling(CA)
    • OKEのプロビジョニング後に⼿動でCluster
    Autoscaling⽤のPodをデプロイ
    • ノードプール毎にスケールルールを設定することで
    利⽤可能
    11 Copyright © 2023, Oracle and/or its affiliates |
    [opc@oke-client ~]$ kubectl apply -f
    https://github.com/kubernetes-sigs/metrics-
    server/releases/download/vx.x.x/components.yaml

    View Slide

  12. Oracle Container Engine for Kubernetes(OKE)へのアクセス
    OCI IAMを利⽤したアクセス制御
    • KubernetesのRBAC Authorizer機能とOCI IAMを
    連携させることでOCIユーザおよびグループを利⽤して
    OKEへのアクセス制御を実施可能
    • manifestおよびkubectlコマンド上でユーザOCID
    またはグループOCIDで指定
    • Ex)新しいユーザ/グループにPodの読み取り権限
    を追加する場合
    • ユーザの作成
    • グループへユーザを追加
    • OKEクラスタ⾃体の操作権限を付与(ポリシー)
    • Roleの作成
    • RoleBindingの作成
    • OCI Auditを利⽤したAPI Serverに対するログ監査や
    トラブルシューティング
    12 Copyright © 2023, Oracle and/or its affiliates |
    対象を⼀意に識別するID
    (ユーザOCID/グループOCID)
    この例ではユーザOCIDを指定

    View Slide

  13. Oracle Cloud Infrastructure Registry (OCIR)
    ■ ユースケース
    DockerやKubernetesで使⽤するコンテナ・イメージをセキュアに
    保管、安全性/信頼性の⾼いコンテナイメージの配信
    ■ 特徴
    • 単⼀のコンテナイメージ(タグ)でOSやCPUアーキテクチャに
    依存しない保管を実現(マルチアーキテクチャ対応)
    • 保管しているコンテナイメージの定期的な脆弱性スキャンや
    署名/検証によるセキュアなイメージの維持を実現
    • イメージ保持ポリシーの適⽤による意図しないレジストリサイ
    ズの増⼤防⽌や最新のコンテナイメージの維持を実現
    ■ 価格
    無料
    (※Object Storage/Network利⽤分のみ課⾦)
    13 Copyright © 2023, Oracle and/or its affiliates |
    コンテナ・イメージを管理するプライベート・レジストリ
    Virtual
    Machine
    Container Engine
    For Kubernetes
    Container
    Registry
    Container
    Registry
    古いイメージの削除
    脆弱性スキャン
    イメージ署名/検証

    View Slide

  14. Oracle Cloud Infrastructure Registry(OCIR)の操作⽅法
    Oracle Cloud Infrastructure Registry(OCIR)の
    操作
    • Docker Registry HTTP API v2準拠
    • 通常のdockerコマンドで操作可能
    • docker login
    • docker pull
    • docker push
    • マルチアーキテクチャイメージをサポート
    • 単⼀のコンテナイメージで複数のOS/CPUアーキ
    テクチャに対応可能
    • 認証はAPIトークンベース
    • docker login時は各リージョンコードを指定
    • Ex) 東京リージョンの場合
    • docker login nrt.ocir.io
    • コンパートメントによるアクセス制御が可能
    14 Copyright © 2023, Oracle and/or its affiliates |

    View Slide

  15. Oracle Cloud Infrastructure Registry(OCIR)のイメージ保持ポリシー
    OCIRのイメージ保持ポリシー
    • グローバルのポリシーとそれを上書きするオーバライドポ
    リシーの2種類
    • グローバルポリシー
    • レジストリに存在する全イメージに適⽤
    • 指定した⽇数の間にpullされなかったイメージの削

    • 指定した⽇数の間にタグ付けされなかったイメージの
    削除
    • 除外タグにより例外設定も可能
    • オーバライドポリシー
    • グルーバルポリシーに対して優先実⾏
    • ルール設定はグローバルポリシーと同様
    • 1時間毎にポリシーに沿ってレジストリにチェックが実施
    され、イメージを保持
    15 Copyright © 2023, Oracle and/or its affiliates |
    上書き

    View Slide

  16. Oracle Cloud Infrastructure Registry(OCIR)の署名/検証/脆弱性スキャン
    OCIRイメージ署名/検証
    • OCI Vault機能を利⽤して、OCIRにプッシュしたイメー
    ジに対する署名と検証が可能
    • 第三者による意図しないイメージの変更を防⽌
    (悪意を持ったイメージ変更も含む)
    • OKE側では、イメージの検証を⾏い、検証が成功した
    イメージのみを利⽤することを強制することが可能
    OCIRの脆弱性スキャン
    • Common Vulnerabilities and Exposures(CVE)
    データベースで公開されているセキュリティの脆弱性に
    基づいて、イメージをスキャン
    • リスクレベルとその詳細を表⽰
    • CVEデータベースへのリンクも確認可能
    16 Copyright © 2023, Oracle and/or its affiliates |

    View Slide

  17. OCIコンテナ関連サービスのまとめ
    Oracle Container Engine for Kubernetes(OKE)
    • クイック作成とカスタム作成の2種類の作成⽅法
    • クイック作成は少しのパラメータを⼊⼒するだけで、関連
    リソースを⾃動⽣成
    • カスタム作成は、cloud-initスクリプトやNodeの配置先
    ドメイン設定など、より細やかな設定が可能
    • OCI LBとNative Pod Networking/flannelを利⽤したネッ
    トワーク管理
    • Serviceを利⽤したOCI Load Balancerのプロビジョニング(オ
    プションも豊富)
    • Ingress Controllerによるより⾼度な管理
    • OCI FSSとBlock VolumeをPV(永続化領域)として利⽤
    • OCI IAMによるアクセス制御とOCI Auditでのログ監査
    • OCI Service Operatorによるサービス管理
    • HPA/VPA/Cluster Autoscalingを利⽤した柔軟なオート
    スケール実装
    Oracle Cloud Infrastructure Registry(OCIR)
    • Docker Registry HTTP API v2準拠、マルチアーキ
    テクチャイメージに対応したプライベート・コンテナレジス
    トリ
    • イメージ保持ポリシーを利⽤した柔軟なコンテナイメー
    ジの管理
    • コンテナイメージの署名/検証や脆弱性スキャンを利
    ⽤したセキュアなイメージの維持
    17 Copyright © 2023, Oracle and/or its affiliates |

    View Slide

  18. ユースケース例に基づくManifest設定例
    18 Copyright © 2023, Oracle and/or its affiliates |

    View Slide

  19. Copyright © 2023, Oracle and/or its affiliates |
    19
    本番環境
    Frontend
    App1
    Backend
    App1(API)
    Backend App1
    (Data Source)
    Management System
    Autonomous
    Database
    Database
    System
    Streaming
    Object Storage
    File Storage
    API GW
    Functions
    ユーザ
    ユーザ
    Load
    Balancer
    Fast
    Connect
    お客様
    環境
    凡例
    パブリック通信(REST/HTTP(S)など)
    プライベート通信(Service GW/ Fast Connectなど)
    ステージング環境
    開発環境
    Private Node Pool
    Private Node Pool
    NamespaceA
    NamespaceC
    Load
    Balancer
    NamespaceB
    ingress-nginx
    nginx-
    ingress-
    controller
    Load
    Balancer
    Load
    Balancer
    Frontend
    App2
    Backend
    App2(API)
    Backend App2
    (Data Source)
    Frontend
    App3
    Backend
    App3(API)
    Backend App3
    (Data Source)
    Frontend
    App4
    Backend
    App4(API)
    Backend App4
    (Data Source)
    frontend-
    ingress-B
    backend-
    ingress-A
    backend-
    ingress-B
    frontend-
    ingress-A
    /frontendapp1
    /frontendapp2
    /frontendapp3
    /frontendapp4
    /backendapp1
    /backendapp2
    /backendapp3
    /backendapp4
    /okefss1
    /okefss2
    /okefss3
    /okefss4

    View Slide

  20. Copyright © 2023, Oracle and/or its affiliates |
    20
    2つのノードプールから構成
    • ⼀つは顧客向けシステム、もう⼀つは管理システム
    • 今回は顧客向けシステムにフォーカス
    顧客向けシステム2つのコンポーネントから成る
    • 全コンポーネントの共通条件
    • OCIRのクレデンシャルはSecretとしてOKEで管理
    • 各Namespace毎にユーザの操作スコープを制限
    • フロントエンドアプリ
    • フロントエンドアプリはLoad Balancer経由で外部からGUIアクセス可能
    • Load Balancerは1つをプロビジョニングし、Ingress経由で各フロントエンドにルーティング
    • バックエンドAPI
    • フロントエンドもしくはAPI Gateway経由でAPIアクセス可能
    • API Gateway=>Private Load Balancer=>APIの流れ
    • Load Balancerは1つをプロビジョニングし、Ingress経由で各バックエンドAPIにルーティング
    • バックエンドAPIは、それぞれファイルストレージを共有ストレージとして利⽤
    • ログファイルやWebコンテンツを配置
    • 各Podから読み書き可能
    • 必要に応じてObject Storage(Service GW経由)やOracle Functionsを利⽤
    • データ管理アプリ
    • バックエンドAPIからアクセス可能
    • ADB/DBCS/Streamingに対してデータの登録や取得を実施
    • ADBはWallet(接続情報)、認証情報(ユーザ名、パスワード)をSecretとしてOKEで管理
    • StreamingはAPI tokenをSecretとしてOKEで管理
    想定ユースケース(全体像)

    View Slide

  21. Copyright © 2023, Oracle and/or its affiliates |
    21
    運⽤要件
    • ストレージはPV(SC)をストレージ管理者が管理し、PVCをアプリケーション開発者が管理。
    • Roleはシステム管理者、ストレージ管理者、アプリケーション開発者(顧客システム(システムA))、アプリケーション開発者(顧客システム(シス
    テムB))、アプリケーション開発者(管理システム)を想定。それぞれの権限は以下とする
    • システム管理者
    • 顧客システム、管理システムともに全てのリソースを管理できる権限を付与
    • ストレージ管理者
    • 顧客システム、管理システムで利⽤するストレージについて、SCとPVを管理する権限を付与
    • アプリケーション開発者が無闇にストレージを作成したり、不適切なストレージにアクセスすることを防ぐ
    • アプリケーション開発者(顧客システム(システムA))
    • 該当するNamespaceにおいて、OKE(Kubernetes)における各リソースを操作できる権限を付与。具体的に以下のリソースを想定。
    • Pod/ReplicaSet/Deployment/Service/Ingress/PVC/ConfigMap/Secret
    • アプリケーション開発者(顧客システム(システムB))
    • 該当するNamespaceにおいて、OKE(Kubernetes)における各リソースを操作できる権限を付与。具体的に以下のリソースは想定。
    • Pod/ReplicaSet/Deployment/Service/Ingress/PVC/ConfigMap/Secret
    • アプリケーション開発者(管理システム)
    • 該当するNamespaceにおいて、OKE(Kubernetes)における各リソースを操作できる権限を付与。今回は対象外。
    想定ユースケース(概要)

    View Slide

  22. コンテナアプリケーション以外のリソースのManifest記載例
    ここから記載する対象のリソース/Manifest
    • Namespace
    • Role
    • RoleBinding
    • Secret
    • Configmap
    • Storage(StorageClass/PersistentVolumeClaim)
    • Ingress
    22 Copyright © 2023, Oracle and/or its affiliates |
    永続化領域の設定
    L7ロードバランサー/パスルーティング
    ユーザのアクセス制御
    データソースのクレデンシャルや設定値
    論理的なリソース区画

    View Slide

  23. Namespace(Kubernetesクラスタでの論理的なリソース区画)
    23 Copyright © 2023, Oracle and/or its affiliates |
    作成するNamespace名

    View Slide

  24. Role(ユーザごとにアクセス/操作可能なリソースを制御)
    24 Copyright © 2023, Oracle and/or its affiliates |
    対象のリソース名
    対象リソースに対して実⾏可能な操作
    ストレージ管理者の場合

    View Slide

  25. RoleBinding(ユーザごとにアクセス/操作可能なリソースを制御)
    25 Copyright © 2023, Oracle and/or its affiliates |
    ストレージ管理者の場合
    OCI IAMのユーザOCID/グループOCID
    この例ではユーザOCIDを指定
    紐付け対象とするRole

    View Slide

  26. Secret(アプリケーション等が利⽤する機密情報リソース)
    26 Copyright © 2023, Oracle and/or its affiliates |
    Autonomous Databaseのユーザ名/パスワード OCI Streamingのtoken
    OCIRのユーザ名とパスワード
    data配下はbase64エンコード済みの
    値を指定

    View Slide

  27. Secret (Autonomous DatabaseのWallet)
    • OCI CLIでのWallet取得(OCIコンソールからのダウンロードでも可)
    • 取得したWallet(zipファイル)を解凍し、kubectlでSecret(adb-wallet)の作成
    27 Copyright © 2023, Oracle and/or its affiliates |
    [opc@oke-client ~]$ oci db autonomous-database generate-wallet --autonomous-database-id [ATPの
    OCID] --password [Walletのパスワード] --file [Walletファイル名]
    [opc@oke-client ~]$ unzip Wallet_tfOKEATPDB.zip -d Wallet_tfOKEATPDB
    [opc@oke-client ~]$ kubectl create secret generic adb-wallet --from-file=Wallet_tfOKEATPDB

    View Slide

  28. Configmap (アプリケーション等が利⽤する設定値)
    28 Copyright © 2023, Oracle and/or its affiliates |
    ファイル形式で設定値を記載
    Key-Valueで設定値を記載

    View Slide

  29. Storage (アプリケーション等が利⽤する永続化領域) – File Storage –
    29 Copyright © 2023, Oracle and/or its affiliates |
    StorageClassとPersistentVolumeClaimの作成
    PersistentVolumeは⾃動⽣成

    View Slide

  30. Ingress(L7 Load Balancer)
    • Ingress Controllerのインストールが必要
    30 Copyright © 2023, Oracle and/or its affiliates |
    Ingressの作成
    [opc@oke-client ~]$ kubectl apply -f https://raw.githubusercontent.com/kubernetes/ingress-
    nginx/controller-v0.44.0/deploy/static/provider/cloud/deploy.yaml
    バックエンドのpathと紐づくServiceリソース
    名、ポート番号を指定
    ※backendについては、バーチャルホストで
    も指定可能

    View Slide

  31. コンテナアプリケーションのリソース
    ここから記載する対象のリソース/Manifest
    • Deployment
    • Service
    31 Copyright © 2023, Oracle and/or its affiliates |
    アプリケーションの実体とその設定
    アプリケーションへのEndpointやルーティング設定

    View Slide

  32. バックエンドアプリケーション(データソースAPI)のDeployment
    32 Copyright © 2023, Oracle and/or its affiliates |
    Secretリソースから
    Autonomous
    Databaseのユーザ名と
    パスワード、OCI
    Streamingのトークンを
    変数として取得
    Autonomous
    DatabaseのWalletファイ
    ルをマウント(参照先は
    Secret)
    OCIRのクレデンシャル
    をSecretとして指定
    データソースAPI(namespaceA)の場合

    View Slide

  33. バックエンドアプリケーション(データソースAPI)のService
    33 Copyright © 2023, Oracle and/or its affiliates |
    Deploymentで設定したcontainerPortを
    targetPortに設定
    Deploymentで設定したラベルをselectorとして設定
    データソースAPI(namespaceA)の場合

    View Slide

  34. バックエンドアプリケーション(バックエンドAPI)のDeployment
    34 Copyright © 2023, Oracle and/or its affiliates |
    バックエンドAPI(namespaceA)の場合
    volumesにFSSに紐づけたPVCを設定し、
    コンテナ上でFSSのマウントを設定

    View Slide

  35. フロントエンドアプリケーション
    35 Copyright © 2023, Oracle and/or its affiliates |
    Ingressで設定するポート番号を定義
    フロントエンド(namespaceA)の場合

    View Slide

  36. OKE/コンテナアプリケーションの監視
    36 Copyright © 2023, Oracle and/or its affiliates |

    View Slide

  37. Monitoring (モニタリング)
    ■ ユースケース
    OCI上のサービスやリソースの状態監視、アプリケーション
    の性能監視、リアルタイムでの異常検出
    ■ 特徴
    • OCI上の各サービスやリソースのメトリックを⾃動的に取

    • 事前定義済のビジュアライゼーション・ダッシュボードの
    提供
    • あらかじめ指定した条件にメトリックが合致した場合に
    アラームを発⽕することも可能(カスタム・メトリックの定
    義も可能)
    37 Copyright © 2023, Oracle and/or its affiliates |
    OCI上の様々なリソースのメトリックを監視、ダッシュボードで閲覧、および通知
    Oracle Cloud
    Infrastructure
    METRICS ALARMS
    Notifications
    CPU: 80
    CPU: 90
    CPU: 40
    CPU: 50
    Customer Applications,
    Services, Resources
    Oracle Cloud
    Infrastructure
    Console
    Customer
    Monitoring Tool
    Monitoring

    View Slide

  38. Master Nodeのメトリクス監視(OCI Console/OCI Monitoring)(1)
    利⽤可能なメトリクス(Master Nodeのステータス)
    • API Serverに対するリクエスト回数
    • 原則としてユーザが操作をしていなくても⼀定回数のカウントはある
    • API Serverのレスポンス
    • 2XX/4XX/5XX
    • スケジュールできないPod数
    38 Copyright © 2023, Oracle and/or its affiliates |

    View Slide

  39. Master Nodeのメトリクス監視(OCI Console/OCI Monitoring)(2)
    利⽤可能なメトリクス(Worker Nodeのステータス)
    • Nodeのステータス
    • 1:Active
    • 0:Non-Avtive
    • Node条件(“kubectl get nodes”の結果)
    • 1:Ready
    • 0:Not Ready
    39 Copyright © 2023, Oracle and/or its affiliates |

    View Slide

  40. Worker Nodeのメトリクス監視(OCI Console/OCI Monitoring)(3)
    利⽤可能なメトリクス(Computeのステータス)
    • CPU使⽤率
    • メモリ使⽤率
    • ディスクI/O(Read)
    • ディスクI/O(Write)
    • ディスクスループット(Read)
    • ディスクスループット(Write)
    • ネットワークスループット(receive)
    • ネットワークスループット(send)
    • ロードアベレージ
    • メモリのストール回数
    40 Copyright © 2023, Oracle and/or its affiliates |

    View Slide

  41. OCI Logginig
    ログの種類
    • 監査ログ
    • Oracle Cloud Infrastructureの監査ログがデフォルトで収集
    • サービス・ログ
    • Oracle Cloud Infrastructureのネイティブなサービスから⽣成
    されるログ
    • API Gateway、イベント、ファンクション、ロードバランサー、オブジェクト・
    ストレージ、VCN Flow Logsなど
    • 各リソースに対して有効化、無効化を設定
    • カスタム・ログ
    • カスタムのアプリケーションや他のクラウド、オンプレミス環境などか
    ら⽣成されるログ
    • APIを通じて発⾏、または、監視エージェントを構成することでロ
    グを収集
    41 Copyright © 2023, Oracle and/or its affiliates |
    ログを⼀元的に収集するスケーラブルで完全マネージド型なロギング・サービス
    ロギング
    監査
    VCN
    Flow Logs
    アプリケーション
    ロード
    バランサー
    Object
    Storage
    OCIネイティブサービス

    View Slide

  42. Master Node API ServerのAudit Log
    42 Copyright © 2023, Oracle and/or its affiliates |
    クラスタが実⾏した操作
    API Serverが実⾏した操作

    View Slide

  43. Service Connector Hub(サービス・コネクタ・ハブ)
    OCI Logging(※1)からOCIの各サービス(※2)へ連携するためのハブ
    • ログをOCI Logging Analyticsに転送し、⾼機能の分析GUIを使⽤することが可能
    43 Copyright © 2023, Oracle and/or its affiliates |
    Service Connector Hub
    OCI Logging
    Object
    Storage
    収集
    連携
    監査ログ
    サービスログ
    カスタムログ
    OCI Logging Analytics
    (※1)︓2021/4現在、Service Connector Hubのソースとなるサービス。今後他サービスも追加予定。
    (※2)︓2021/4現在、Service Connector Hubのターゲットとなるサービスは以下。今後も追加予定。
    Object Storage/OCI Streaming/Oracle Functions/OCI Monitoring/ OCI Logging Analytics/Notification
    Service Connector Hub

    View Slide

  44. OKEでOCI Loggingを利⽤する場合
    ロギング
    • 現時点ではWorker Node(ホストOS)の”/var/log/containers”配下に出⼒されるコンテナのログを収集し、OCI
    Loggingでログ検索
    • https://docs.oracle.com/ja-
    jp/iaas/Content/ContEng/Tasks/contengviewingworkernodelogs.htm
    • Service Connector Hub(サービス・コネクタ・ハブ)による各サービスへの連携も可能
    ロギングの可視化
    • Logging Analyticsによる可視化
    • 円グラフ/縦棒グラフ/横棒グラフ/線グラフ/ワードクラウド…..
    • ダッシュボードの作成も可能
    • https://docs.oracle.com/ja-jp/iaas/logging-analytics/index.html
    44 Copyright © 2023, Oracle and/or its affiliates |

    View Slide

  45. • アプリケーションのパフォーマンスを可視化し、問題の根本的原因を
    サーバーおよびユーザー・サイドから分析し解決をサポート
    • トレースデータに基づいてアプリケーションのどの箇所が、または、
    サービス間連携でどのサービスがボトルネックなのかを可視化
    • OpenTracing, OpenTelemetry互換
    • Javaアプリケーション実⾏環境の監視
    • Weblogic, Helidon, Tomcat, TomEE, Springboot
    • ブラウザ・エージェントにより、実際のユーザーのブラウザ操作を記録し
    ページ・ロードやパフォーマンスを監視
    • アプリケーションやAPIのエンドポイントに対して定常的にリクエストを
    実⾏し、死活監視及びパフォーマンス監視を実⾏
    • 定義済みダッシュボードよる効率的なモニタリング
    Application Performance Monitoring
    Copyright © 2023, Oracle and/or its affiliates |
    45
    Application
    Performance
    Monitoring
    エンドユーザー
    性能監視
    アプリケーション
    監視

    View Slide

  46. 分散システムでリクエストの軌跡をEnd to Endで可視化
    • 全てのトランザクション(トレース)の全ての処理(スパン)
    を確認することが可能
    • 低速のトランザクション
    • エラーのあるトランザクション
    • サーバー・データセンター・バージョンなどの特定のリソース
    を使⽤するトランザクション
    • スパンに関する以下の情報を参照することが可能
    • ページの読み込み
    • Ajax呼出し
    • サービスリクエスト
    • JDBC
    • HTTPアウトバウンド呼出し
    • 応答時間 etc
    Application Performance Monitoringによる分散トレーシング
    Copyright © 2023, Oracle and/or its affiliates |
    46
    ※スパン︓ひとつのサービス内の処理
    ※トレース︓リクエストの開始から終了までの全てのスパン

    View Slide

  47. Copyright © 2023, Oracle and/or its affiliates |
    47
    アプリケーション・サーバーのヒープおよびCPUメトリックに
    関する情報を収集
    • メトリックはAPMダッシュボードおよびMonitoringサービ
    スから表⽰することが可能
    • リクエストサービス毎にグループ化された平均レスポン
    ス時間
    • ロケーションごとのページグループ単位のリクエスト
    レート etc…
    • 以下のアプリケーション・サーバーをサポート
    • WebLogic 10.3.6, 12.x, 14.x
    • Tomcat 6,7,8,9
    • TomEE 1.7,7,8
    • Springboot 1.x, 2.x
    • Helidon 2.x
    Application Performance Monitoringによるサーバ監視

    View Slide

  48. OCI/3rd Partyを利⽤したコンテナアプリケーションの監視まとめ
    48 Copyright © 2023, Oracle and/or its affiliates |
    死活監視 リソース監視
    (CPU/メモリ)
    ロギング パフォーマンス
    モニタリング
    Worker
    Node
    (Compute)
    OCI Monitoring OCI Monitoring - (原則として不要) -
    Pod Prometheus +
    Grafana(※1)(※2)
    Prometheus +
    Grafana(※1)(※2)
    OCI Logging + OCI
    Logging
    Analytics(※3)
    OCI APM
    (※1)︓今後OCI MonitoringにてPodレベルの死活/リソース監視が実施可能になる予定。
    (※3)︓今後、OCI LoggingでPodレベルのロギングが利⽤可能になる予定。
    (※2)︓⼀部のアプリケーション・サーバは、APM AgentによりAPMでサーバ監視が可能

    View Slide

  49. OKE/OCIR/その他OCI周辺サービスを利⽤したハンズオン
    • OKE初期構築
    • https://oracle-japan.github.io/ocitutorials/cloud-native/oke-for-commons/
    • OKEでKubernetesを動かしてみよう(サンプルアプリを使ったKubernetesそのもののチュートリアル)
    • https://oracle-japan.github.io/ocitutorials/cloud-native/oke-for-beginners/
    • OKEでサンプルアプリケーションのデプロイとCI/CDを体験してみよう
    • https://oracle-japan.github.io/ocitutorials/cloud-native/oke-for-intermediates/
    • OKEでサンプルマイクロサービスアプリケーションをデプロイしてOCIのオブザーバビリティサービスを利⽤してみよう
    • https://oracle-japan.github.io/ocitutorials/cloud-native/oke-observability-for-advances/
    49 Copyright © 2023, Oracle and/or its affiliates |

    View Slide

  50. Thank you
    50 Copyright © 2023, Oracle and/or its affiliates |

    View Slide

  51. View Slide