Oracle Infrastructure(OCI)のサービスの技術資料です。
OCIコンテナサービス関連の技術詳細⽇本オラクル株式会社Jun, 2023
View Slide
Agenda1. OKE/OCIR技術詳細2. ユースケース例に基づくManifest設定例3. OKE/コンテナアプリケーションの監視2 Copyright © 2023, Oracle and/or its affiliates |
OKE/OCIR技術詳細3 Copyright © 2023, Oracle and/or its affiliates |
この資料でお話することOracle Container Engine for Kubernetes(OKE)• クラスタの構築⽅法• OKEのネットワーク関連(アプリケーションの公開、CNI)• OKEの永続化(ファイルストレージ、ブロックボリューム)• OKEでの他サービス管理(Service Operator)• OKEのスケーリング(HPA/VPA/ClusterAutoscaling)• OKE(API Server)へのアクセス制御Oracle Cloud Infrastructure Registry(OCIR)• OCIRの操作⽅法• OCIRにおけるイメージ保持ポリシー• Oracle Cloud Infrastructure Registry(OCIR)の署名/検証/脆弱性スキャン4 Copyright © 2023, Oracle and/or its affiliates |
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プラットフォームServiceOperatorAutonomousDatabaseObject StorageContainer EngineFor KubernetesContainer EngineFor KubernetesVirtualMachineContainerRegistryFunctionsMySQL DatabaseServiceOCI-DevOpsStreamingLoad Balancerワークロード運⽤監視Logging MonitoringApplicationPerformanceMonitoringNotificationsOCI Service Mesh
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 |関連リソース(ネットワーク等)は⾃動⽣成!!
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 |
Oracle Container Engine for Kubernetes(OKE)におけるネットワーク関連OKEでのアプリケーションの外部公開• Serviceリソースのtype: Load BalancerとしてOCILoad Balancer(Network Load Balancer含)を利⽤可能(TCP/HTTP)• 指定可能なオプションは以下。(⼀部を抜粋)• HTTPSリスナーの利⽤• Load Balancerの帯域幅の選択(10Mbps/100Mbps/400Mbps/8000Mbps)• LBの種類(LB/NLB)やプロトコル(HTTP/TCP)…• Ingress ControllerとしてNGINX IngressController for Kubernetesを利⽤することも可能OKEでのCNI(Container Network Interface)• CNIプラグインとしてはNative Pod Networking(OCICNI)かFlannelを選択• Network Policyを利⽤する場合はCalicoを利⽤8 Copyright © 2023, Oracle and/or its affiliates |利⽤可能なオプションは「metadata.annotation」配下に指定
Oracle Container Engine for Kubernetes(OKE)における永続化Block VolumeをPersistent Volumeとして利⽤• OKEにbuild-inされているCSI(Container StorageInterface)である”oci-bv”を利⽤してプロビジョニング可能• プロビジョニングはPersistent Volume Claim(PVC)を作成するだけ• 50GBからプロビジョニング可能FSSをPersistent Volumeとして利⽤• OKEにbuild-inされているCSI(Container StorageInterface)である”oci-bv”を利⽤してプロビジョニング可能• 予めStorageClassを作成しておく• 利⽤時はPersistent Volume Claim(PVC)を作成9 Copyright © 2023, Oracle and/or its affiliates |
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プロビジョニング時のパラメータ(⼀部)
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のプロビジョニング後に⼿動でClusterAutoscaling⽤のPodをデプロイ• ノードプール毎にスケールルールを設定することで利⽤可能11 Copyright © 2023, Oracle and/or its affiliates |[opc@oke-client ~]$ kubectl apply -fhttps://github.com/kubernetes-sigs/metrics-server/releases/download/vx.x.x/components.yaml
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を指定
Oracle Cloud Infrastructure Registry (OCIR)■ ユースケースDockerやKubernetesで使⽤するコンテナ・イメージをセキュアに保管、安全性/信頼性の⾼いコンテナイメージの配信■ 特徴• 単⼀のコンテナイメージ(タグ)でOSやCPUアーキテクチャに依存しない保管を実現(マルチアーキテクチャ対応)• 保管しているコンテナイメージの定期的な脆弱性スキャンや署名/検証によるセキュアなイメージの維持を実現• イメージ保持ポリシーの適⽤による意図しないレジストリサイズの増⼤防⽌や最新のコンテナイメージの維持を実現■ 価格無料(※Object Storage/Network利⽤分のみ課⾦)13 Copyright © 2023, Oracle and/or its affiliates |コンテナ・イメージを管理するプライベート・レジストリVirtualMachineContainer EngineFor KubernetesContainerRegistryContainerRegistry古いイメージの削除脆弱性スキャンイメージ署名/検証
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 |
Oracle Cloud Infrastructure Registry(OCIR)のイメージ保持ポリシーOCIRのイメージ保持ポリシー• グローバルのポリシーとそれを上書きするオーバライドポリシーの2種類• グローバルポリシー• レジストリに存在する全イメージに適⽤• 指定した⽇数の間にpullされなかったイメージの削除• 指定した⽇数の間にタグ付けされなかったイメージの削除• 除外タグにより例外設定も可能• オーバライドポリシー• グルーバルポリシーに対して優先実⾏• ルール設定はグローバルポリシーと同様• 1時間毎にポリシーに沿ってレジストリにチェックが実施され、イメージを保持15 Copyright © 2023, Oracle and/or its affiliates |上書き
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 |
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 |
ユースケース例に基づくManifest設定例18 Copyright © 2023, Oracle and/or its affiliates |
Copyright © 2023, Oracle and/or its affiliates |19本番環境FrontendApp1BackendApp1(API)Backend App1(Data Source)Management SystemAutonomousDatabaseDatabaseSystemStreamingObject StorageFile StorageAPI GWFunctionsユーザユーザLoadBalancerFastConnectお客様環境凡例パブリック通信(REST/HTTP(S)など)プライベート通信(Service GW/ Fast Connectなど)ステージング環境開発環境Private Node PoolPrivate Node PoolNamespaceANamespaceCLoadBalancerNamespaceBingress-nginxnginx-ingress-controllerLoadBalancerLoadBalancerFrontendApp2BackendApp2(API)Backend App2(Data Source)FrontendApp3BackendApp3(API)Backend App3(Data Source)FrontendApp4BackendApp4(API)Backend App4(Data Source)frontend-ingress-Bbackend-ingress-Abackend-ingress-Bfrontend-ingress-A/frontendapp1/frontendapp2/frontendapp3/frontendapp4/backendapp1/backendapp2/backendapp3/backendapp4/okefss1/okefss2/okefss3/okefss4
Copyright © 2023, Oracle and/or its affiliates |202つのノードプールから構成• ⼀つは顧客向けシステム、もう⼀つは管理システム• 今回は顧客向けシステムにフォーカス顧客向けシステム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で管理想定ユースケース(全体像)
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)における各リソースを操作できる権限を付与。今回は対象外。想定ユースケース(概要)
コンテナアプリケーション以外のリソースのManifest記載例ここから記載する対象のリソース/Manifest• Namespace• Role• RoleBinding• Secret• Configmap• Storage(StorageClass/PersistentVolumeClaim)• Ingress22 Copyright © 2023, Oracle and/or its affiliates |永続化領域の設定L7ロードバランサー/パスルーティングユーザのアクセス制御データソースのクレデンシャルや設定値論理的なリソース区画
Namespace(Kubernetesクラスタでの論理的なリソース区画)23 Copyright © 2023, Oracle and/or its affiliates |作成するNamespace名
Role(ユーザごとにアクセス/操作可能なリソースを制御)24 Copyright © 2023, Oracle and/or its affiliates |対象のリソース名対象リソースに対して実⾏可能な操作ストレージ管理者の場合
RoleBinding(ユーザごとにアクセス/操作可能なリソースを制御)25 Copyright © 2023, Oracle and/or its affiliates |ストレージ管理者の場合OCI IAMのユーザOCID/グループOCIDこの例ではユーザOCIDを指定紐付け対象とするRole
Secret(アプリケーション等が利⽤する機密情報リソース)26 Copyright © 2023, Oracle and/or its affiliates |Autonomous Databaseのユーザ名/パスワード OCI StreamingのtokenOCIRのユーザ名とパスワードdata配下はbase64エンコード済みの値を指定
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
Configmap (アプリケーション等が利⽤する設定値)28 Copyright © 2023, Oracle and/or its affiliates |ファイル形式で設定値を記載Key-Valueで設定値を記載
Storage (アプリケーション等が利⽤する永続化領域) – File Storage –29 Copyright © 2023, Oracle and/or its affiliates |StorageClassとPersistentVolumeClaimの作成PersistentVolumeは⾃動⽣成
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については、バーチャルホストでも指定可能
コンテナアプリケーションのリソースここから記載する対象のリソース/Manifest• Deployment• Service31 Copyright © 2023, Oracle and/or its affiliates |アプリケーションの実体とその設定アプリケーションへのEndpointやルーティング設定
バックエンドアプリケーション(データソースAPI)のDeployment32 Copyright © 2023, Oracle and/or its affiliates |SecretリソースからAutonomousDatabaseのユーザ名とパスワード、OCIStreamingのトークンを変数として取得AutonomousDatabaseのWalletファイルをマウント(参照先はSecret)OCIRのクレデンシャルをSecretとして指定データソースAPI(namespaceA)の場合
バックエンドアプリケーション(データソースAPI)のService33 Copyright © 2023, Oracle and/or its affiliates |Deploymentで設定したcontainerPortをtargetPortに設定Deploymentで設定したラベルをselectorとして設定データソースAPI(namespaceA)の場合
バックエンドアプリケーション(バックエンドAPI)のDeployment34 Copyright © 2023, Oracle and/or its affiliates |バックエンドAPI(namespaceA)の場合volumesにFSSに紐づけたPVCを設定し、コンテナ上でFSSのマウントを設定
フロントエンドアプリケーション35 Copyright © 2023, Oracle and/or its affiliates |Ingressで設定するポート番号を定義フロントエンド(namespaceA)の場合
OKE/コンテナアプリケーションの監視36 Copyright © 2023, Oracle and/or its affiliates |
Monitoring (モニタリング)■ ユースケースOCI上のサービスやリソースの状態監視、アプリケーションの性能監視、リアルタイムでの異常検出■ 特徴• OCI上の各サービスやリソースのメトリックを⾃動的に取得• 事前定義済のビジュアライゼーション・ダッシュボードの提供• あらかじめ指定した条件にメトリックが合致した場合にアラームを発⽕することも可能(カスタム・メトリックの定義も可能)37 Copyright © 2023, Oracle and/or its affiliates |OCI上の様々なリソースのメトリックを監視、ダッシュボードで閲覧、および通知Oracle CloudInfrastructureMETRICS ALARMSNotificationsCPU: 80CPU: 90CPU: 40CPU: 50Customer Applications,Services, ResourcesOracle CloudInfrastructureConsoleCustomerMonitoring ToolMonitoring
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 |
Master Nodeのメトリクス監視(OCI Console/OCI Monitoring)(2)利⽤可能なメトリクス(Worker Nodeのステータス)• Nodeのステータス• 1:Active• 0:Non-Avtive• Node条件(“kubectl get nodes”の結果)• 1:Ready• 0:Not Ready39 Copyright © 2023, Oracle and/or its affiliates |
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 |
OCI Logginigログの種類• 監査ログ• Oracle Cloud Infrastructureの監査ログがデフォルトで収集• サービス・ログ• Oracle Cloud Infrastructureのネイティブなサービスから⽣成されるログ• API Gateway、イベント、ファンクション、ロードバランサー、オブジェクト・ストレージ、VCN Flow Logsなど• 各リソースに対して有効化、無効化を設定• カスタム・ログ• カスタムのアプリケーションや他のクラウド、オンプレミス環境などから⽣成されるログ• APIを通じて発⾏、または、監視エージェントを構成することでログを収集41 Copyright © 2023, Oracle and/or its affiliates |ログを⼀元的に収集するスケーラブルで完全マネージド型なロギング・サービスロギング監査VCNFlow LogsアプリケーションロードバランサーObjectStorageOCIネイティブサービス
Master Node API ServerのAudit Log42 Copyright © 2023, Oracle and/or its affiliates |クラスタが実⾏した操作API Serverが実⾏した操作
Service Connector Hub(サービス・コネクタ・ハブ)OCI Logging(※1)からOCIの各サービス(※2)へ連携するためのハブ• ログをOCI Logging Analyticsに転送し、⾼機能の分析GUIを使⽤することが可能43 Copyright © 2023, Oracle and/or its affiliates |Service Connector HubOCI LoggingObjectStorage収集連携監査ログサービスログカスタムログ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/NotificationService Connector Hub
OKEでOCI Loggingを利⽤する場合ロギング• 現時点ではWorker Node(ホストOS)の”/var/log/containers”配下に出⼒されるコンテナのログを収集し、OCILoggingでログ検索• 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.html44 Copyright © 2023, Oracle and/or its affiliates |
• アプリケーションのパフォーマンスを可視化し、問題の根本的原因をサーバーおよびユーザー・サイドから分析し解決をサポート• トレースデータに基づいてアプリケーションのどの箇所が、または、サービス間連携でどのサービスがボトルネックなのかを可視化• OpenTracing, OpenTelemetry互換• Javaアプリケーション実⾏環境の監視• Weblogic, Helidon, Tomcat, TomEE, Springboot• ブラウザ・エージェントにより、実際のユーザーのブラウザ操作を記録しページ・ロードやパフォーマンスを監視• アプリケーションやAPIのエンドポイントに対して定常的にリクエストを実⾏し、死活監視及びパフォーマンス監視を実⾏• 定義済みダッシュボードよる効率的なモニタリングApplication Performance MonitoringCopyright © 2023, Oracle and/or its affiliates |45ApplicationPerformanceMonitoringエンドユーザー性能監視アプリケーション監視
分散システムでリクエストの軌跡をEnd to Endで可視化• 全てのトランザクション(トレース)の全ての処理(スパン)を確認することが可能• 低速のトランザクション• エラーのあるトランザクション• サーバー・データセンター・バージョンなどの特定のリソースを使⽤するトランザクション• スパンに関する以下の情報を参照することが可能• ページの読み込み• Ajax呼出し• サービスリクエスト• JDBC• HTTPアウトバウンド呼出し• 応答時間 etcApplication Performance Monitoringによる分散トレーシングCopyright © 2023, Oracle and/or its affiliates |46※スパン︓ひとつのサービス内の処理※トレース︓リクエストの開始から終了までの全てのスパン
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.xApplication Performance Monitoringによるサーバ監視
OCI/3rd Partyを利⽤したコンテナアプリケーションの監視まとめ48 Copyright © 2023, Oracle and/or its affiliates |死活監視 リソース監視(CPU/メモリ)ロギング パフォーマンスモニタリングWorkerNode(Compute)OCI Monitoring OCI Monitoring - (原則として不要) -Pod Prometheus +Grafana(※1)(※2)Prometheus +Grafana(※1)(※2)OCI Logging + OCILoggingAnalytics(※3)OCI APM(※1)︓今後OCI MonitoringにてPodレベルの死活/リソース監視が実施可能になる予定。(※3)︓今後、OCI LoggingでPodレベルのロギングが利⽤可能になる予定。(※2)︓⼀部のアプリケーション・サーバは、APM AgentによりAPMでサーバ監視が可能
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 |
Thank you50 Copyright © 2023, Oracle and/or its affiliates |