Slide 1

Slide 1 text

OCI で始める!! Red Hat OpenShift Oracle Cloud Hangout Café Premium Oracle Corporation Japan Sep. 13th 2024 Yutaka Ichikawa, Takuya Niita, Shuhei Kawamura, Yuki Sogawa

Slide 2

Slide 2 text

Copyright © 2024, Oracle and/or its affiliates 2 Agenda 1. OpenShift on OCI の位置付け 2. 環境構築とサンプルアプリケーションのデプロイ 3. CI/CD 4. Observability

Slide 3

Slide 3 text

自己紹介 3 Copyright © 2024, Oracle and/or its affiliates 仁井田 拓也 (Takuya Niita) CoE本部/ ソリューションアーキテクト部 日本オラクル株式会社 所属 • Oracle Cloud Hangout Café • Oracle Groundbreakers Adovocate ひとこと • 今日は話す担当が少ないのでジブリネタは(本当に)メインでやります…!! @takuya_0301

Slide 4

Slide 4 text

OpenShift on OCI の位置付け Oracle Cloud Hangout Café Premium 4 Copyright © 2024, Oracle and/or its affiliates

Slide 5

Slide 5 text

2024/5 ついにOCIでもOpenShiftが利用可能に…!! 5 Copyright © 2024, Oracle and/or its affiliates

Slide 6

Slide 6 text

Red Hat OpenShift Container Platform on OCIの位置付け Self-Managed • オンプレミス、クラウド問わず、VM/BMなど の基盤上にユーザが直接インストール、運 用を行う方式 • マーケットプレイスから提供するクラウドベン ダーもあり Ex) Red Hat OpenShift Container Platform on OCI,オンプレミス上のRed Hat OpenShift Container Platform Managed • 提供クラウドベンダーとRed Hat社が 共同で運用 • 提供クラウドベンダーのポータルから 利用可能 Ex) Microsoft Azure Red Hat OpenShift(ARO), Red Hat OpenShift on AWS (ROSA) Dedicated • Red Hat社が管理運用 • AWSとGoogle Cloudのみで利用可 能 Copyright © 2024, Oracle and/or its affiliates 6

Slide 7

Slide 7 text

Red Hat OpenShift Container Platform on OCIの位置付け Self-Managed • オンプレミス、クラウド問わず、VM/BMなど の基盤上にユーザが直接インストール、運 用を行う方式 • マーケットプレイスから提供するクラウドベン ダーもあり Ex) Red Hat OpenShift Container Platform on OCI,オンプレミス上のRed Hat OpenShift Container Platform Managed • 提供クラウドベンダーとRed Hat社が 共同で運用 • 提供クラウドベンダーのポータルから 利用可能 Ex) Microsoft Azure Red Hat OpenShift(ARO), Red Hat OpenShift on AWS (ROSA) Dedicated • Red Hat社が管理運用 • AWSとGoogle Cloudのみで利用可 能 Copyright © 2024, Oracle and/or its affiliates 7 Red Hat OpenShift Container Platform on OCI

Slide 8

Slide 8 text

Red Hat OpenShift Container Platform on OCIの考慮ポイント サポートするComputeシェイプ • Red Hat Ecosystem Catalog(OCI)でリストされているシェイプをサポート • https://catalog.redhat.com/cloud/detail/216977 • AMD:VM.Standard.E5.Flex(AMD)など • ARM:VM.Standard.A1.Flex(ARM)など • Intel:VM.Optimzed3.Flex(Intel)など • GPU:BM.GPU.H100/A100など • ローカルNVMe SSD内蔵:BM.DenseIO.E4.128など • OCI Computeシェイプにかかる課金が発生 サポート • OCIでのRed Hat Enterprise Linux(含CoreOS)の動作に関するサポートはMy Oracle Supportから • Red Hat OpenShift Container Platformそのものに関するサポートは直接Red Hat社に • OCIにはBYOS(Bring Your Own Subscription)での持ち込み 8 Copyright © 2024, Oracle and/or its affiliates

Slide 9

Slide 9 text

本日お話しするポイント 赤太字についてお話しします 9 Copyright © 2024, Oracle and/or its affiliates Linux Red Hat Enterprise Linux / Red Hat Enterprise Linux CoreOS Kubernetes Cluster Service Install, Updates, Networking, Ingress, Storage, Monitoring, Log forwarding, Registry, Authorization, Containers, VMs, Operators, Helm Manage Workloads • Service Mesh • Serverless • Builds • CI/CD • GitOps • Distrubuted Tracing • Log Management • Cost Management • Sandboxed Containers Build cloud-native apps • API Management • Language and runtime • Integration • Process Automation Developer Productivity • Developer Web Console • Kubernetes-native IDE • Kubernetes on laptop • Plugins and extensions Data-driven Insights • Databases • Cache • Data Ingest and propagation • Data analysis • AI/ML 参考: https://docs.redhat.com/ja/documentation/openshift_container_platform/4.16/html/about/oke-about 多くのエコシステムはOperatorHub経由でインストール

Slide 10

Slide 10 text

【参考】Oracleが提供する類似サービス Oracle Cloud Native Environment(OCNE) • https://docs.oracle.com/en/operating-systems/olcne/index.html • Oracle Linuxで利用可能なCloud Nativeアプリケーション開発および管理のための統合パッケージ • パブリッククラウド/プライベートクラウド含めハイブリッドで利用可能 • 最新v1.9(2024/8現在) • 対応OS • Oracle Linux 8/9 • Red Hat Enterprise Linux 8/9 • コントロールプレーン/ワーカーノード/オペレーターノード の3つのコンポーネントで構築 10 Copyright © 2024, Oracle and/or its affiliates OpenShift(OCI) OCNE Storage OpenShift Data Foundation Rook/Ceph Virtualization OpenShift Virtualization KubeVirt Operator Management Operator Lifecycle Manager Operator Lifecycle Manager OpenShiftとOCNEの共通コンポーネント例

Slide 11

Slide 11 text

環境構築と サンプルアプリケーションのデプロイ Oracle Cloud Hangout Café Premium 11 Copyright © 2024, Oracle and/or its affiliates

Slide 12

Slide 12 text

自己紹介 12 Copyright © 2024, Oracle and/or its affiliates 曽川 宥輝 (Yuki Sogawa) CoE本部 / ソリューションアーキテクト部 日本オラクル株式会社 所属 • Oracle Cloud Hangout Café ひとこと • バイクの免許取得のため教習所に通っています @sogawa-yk

Slide 13

Slide 13 text

本日のデモ環境ノード構成 コントロールプレーンノード VM.Standard.E4.Flex(AMD) 4oCPU/32GB RAM × 3 ワーカーノード VM.Standard.E4.Flex(AMD) 4oCPU/24GB RAM × 3 その他補足 1. 本日のセッションでは評価用サブスクリプションを利用して解説 2. インフラノードはコントロールプレーンノードと同一筐体に存在 13 Copyright © 2024, Oracle and/or its affiliates

Slide 14

Slide 14 text

環境構築に必要なアカウント • Red Hat アカウント • Red Hat® OpenShift® Container Platform の 60 日間セルフサポート型サブスクリプション(評価版) 14 Copyright © 2024, Oracle and/or its affiliates

Slide 15

Slide 15 text

環境構築方法の種類 Assisted Installer • Webインターフェースでのインタラクティブなインストール • インストール前の検証 • インターネット越しの接続が前提 Agent-based Installer • CLIでのインタラクティブな操作 • インストール前の検証 • インターネットに接続不可でもインストール可能 15 Copyright © 2024, Oracle and/or its affiliates

Slide 16

Slide 16 text

環境構築方法の種類 Assisted Installer • Webインターフェースでのインタラクティブなインストール • インストール前の検証 • インターネット越しの接続が前提 Agent-based Installer • CLIでのインタラクティブな操作 • インストール前の検証 • インターネットに接続不可でもインストール可能 16 Copyright © 2024, Oracle and/or its affiliates 本日はこちらで…!!

Slide 17

Slide 17 text

環境構築手順全体(Assisted Installer) 17 Copyright © 2024, Oracle and/or its affiliates クラスターを作成し、 discovery ISO imageを作成・ ダウンロード 作成したdiscovery ISO imageをOCIのオブジェクトスト レージにアップロード Resource Managerを使って Terraform構成ファイルからイ ンフラストラクチャを作成 修正したカスタムマニフェスト ファイルをアップロード OpenShiftをインストール Red Hat Hybrid Cloud Console Oracle Cloud Infrastructure Console カスタムマニフェストファイルと Terraform構成ファイルを GitHubからダウンロード

Slide 18

Slide 18 text

クラスターを作成し、discovery ISO imageを作成・ダウンロード Red Hat Hybrid Cloud Consoleから、OpenShiftクラスターの初期設定を行い、discovery ISO imageを作成・ダウンロード 18 Copyright © 2024, Oracle and/or its affiliates

Slide 19

Slide 19 text

作成したdiscovery ISO imageをOCIのオブジェクトストレージにアップロード ダウンロードしたISO imageをOCIのオブジェクトストレージにアップロード 19 Copyright © 2024, Oracle and/or its affiliates

Slide 20

Slide 20 text

カスタムマニフェストファイルとTerraform構成ファイルをGitHubからダウンロード oracle-quickstartにあるoci-openshiftリポジトリから.tfファイルとカスタムマニフェストファイルをダウンロード 20 Copyright © 2024, Oracle and/or its affiliates https://github.com/oracle-quickstart/oci-openshift

Slide 21

Slide 21 text

ダウンロードしたTerraform構成ファイルから、Resource Managerのスタックを作成し、「適用」する Resource Managerを使ってTerraform構成ファイルからインフラストラクチャを作成 21 Copyright © 2024, Oracle and/or its affiliates

Slide 22

Slide 22 text

修正したカスタムマニフェストファイルをアップロード Applyの実行結果から得られる出力をカスタムマニフェストに書き込み、 Red Hat Hybrid Cloud Consoleからアップロードする 22 Copyright © 2024, Oracle and/or its affiliates Resource Managerで、出力を確認 編集したマニフェストをアップロード

Slide 23

Slide 23 text

OpenShiftをインストール インストール開始ボタンを押し、クラスターにOpenShiftのインストールを開始する 23 Copyright © 2024, Oracle and/or its affiliates

Slide 24

Slide 24 text

完成後の環境 24 Copyright © 2024, Oracle and/or its affiliates OCI Region Availability Domain 1 VCN Public Subnet 10.0.0.0/20 Private Subnet 10,0,16,0/20 Public Load Balancer Private Load Balancer Control Plane1 Control Plane2 Control Plane3 Worker Node1 Worker Node2 Worker Node3 DNS

Slide 25

Slide 25 text

環境構築後の+α… OpenShift Image Registryの構築 • OpenShiftにはデフォルトでデプロイされる内部レジストリ”OpenShift Image Registry”がある • 各クラウドベンダーのObject StorageやOpenShift Data FoundationのCeph RGW ストレージを利用してレジ ストリを構築 • OCIの場合はネイティブにObject Storageが対応していないが、S3互換APIでの利用が可能 ocコマンドのインストール • OpenShiftにはCLIとしてocコマンドが存在 • 認証認可はkubeconfigを利用 • OpenShiftコンソールのログインユーザとコンソールから取得できるtokenを利用してkubeconfigを取得 • 利用イメージはほぼkubectlと一緒 • インストールはバイナリをダウンロードし、PATHを通すだけ 25 Copyright © 2024, Oracle and/or its affiliates

Slide 26

Slide 26 text

OpenShift QuickStarts QuickStarts • OpenShiftにはQuickStartsというサンプルアプリ(テンプレート)群が存在 • “oc new-app –L”で一覧を表示すると・・・ 26 Copyright © 2024, Oracle and/or its affiliates

Slide 27

Slide 27 text

OpenShift QuickStarts デモ • “oc new-app –L”で表示されるテンプレートのうち、 “httpd-example”を利用してサンプルアプリをデプロイ 27 Copyright © 2024, Oracle and/or its affiliates アクセスするとこんな UIが表示されます

Slide 28

Slide 28 text

CI/CD Oracle Cloud Hangout Café Premium 28 Copyright © 2024, Oracle and/or its affiliates

Slide 29

Slide 29 text

自己紹介 29 Copyright © 2024, Oracle and/or its affiliates 市川 豊 (Yutaka Ichikawa) CoE本部 / ソリューションアーキテクト部 日本オラクル株式会社 所属 • Oracle Cloud Hangout Café • Oracle Groundbreakers Adovocate ひとこと • 道なき未知を進め、コンパスは My Soul @cyberblack28

Slide 30

Slide 30 text

CI/CD CI/CD おさらい 30 Copyright © 2024, Oracle and/or its affiliates CI/CD おさらい CI = Continuous Integration = 継続的インテグレーション アプリケーション開発に必要となるビルド、テスト、成果物(アーティファクト)の保存までの工程を自動化して、 継続的に行われる状態にすること CI/CD はアプリケーション開発に自動化を取り入れ、 高い頻度でエンドユーザーにアプリケーションを提供することを可能にする CI 環境を整備することで、早期バグの発見による品質向上、検証時間の短縮によるリリーススピード向上、開発者が 開発に集中できる環境でより良い開発サイクルを実現 CD = Continuous Delivery = 継続的デリバリー CI(継続的インテグレーション)によって生み出された成果物(アーティファクト)を、実際の環境(ステージングやプロ ダクション)へ自動的に配置すること CD 環境を整備することで、エンドユーザーに影響を与えることなく、高頻度に安全なアプリケーションリリースを実現

Slide 31

Slide 31 text

CI/CD CI/CD おさらい 31 Copyright © 2024, Oracle and/or its affiliates CI/CD おさらい ソースコードが更新されるたびに CI パイプラインが稼働して、アプリケーションビルド、コンテナイメージビルド、コンテナイメー ジプッシュ、 CD パイプラインによるデプロイ。 コードをソースコードリポジトリに コミット/プッシュ/マージ CI パイプラインによる ビルド、イメージプッシュ Developer Code Repository CI/CD Pipeline Operator Infrastructure Engineer コンテナプラットフォーム へのデプロイ Code Dockerfile manifest Build Run イメージ レジストリ Ship イメージ 共有 CI CD

Slide 32

Slide 32 text

CI/CD CI/CD on OpenShift 32 Copyright © 2024, Oracle and/or its affiliates Red Hat OpenShift Pipelines TEKTON に基づく Kubernetes ネイティブの CI/CD ソリューション

Slide 33

Slide 33 text

CI/CD CI/CD on OpenShift 33 Copyright © 2024, Oracle and/or its affiliates Kubernetes ネイティブな CI ツール TEKTON Kubernetes の CustomResource としてパイプラインを定義できるため、マニフェストの作成、適用の流れで CI 環境を構 築

Slide 34

Slide 34 text

CI/CD CI/CD on OpenShift 34 Copyright © 2024, Oracle and/or its affiliates Kubernetes ネイティブな CI ツール TEKTON TEKTON のコンポーネント CI のワークフロー 基盤を提供 CI のワークフローに イベントトリガー機能を提供 TEKTON 専用の CLI ツール(tkn コマンド) TEKTON 専用の Web UI Red Hat OpenShift Pipelines では、ワンクリックで TEKTON コンポーネントが展開され、Web UI が OpenShift のダッシュ ボードと統合される

Slide 35

Slide 35 text

CI/CD CI/CD on OpenShift 35 Copyright © 2024, Oracle and/or its affiliates Kubernetes ネイティブな CI ツール TEKTON TEKTON のコンセプト ~ Step / Task / Pipeline ~ Step Task TEKTON では実行する処理をStepという単位で設定。 複数の Step をまとめたものが Task。 Kubernetes クラスタ上で各 Task は Pod 内、Step がコンテナとして 実行される。 Pipeline 複数の Task をまとめたものが Pipeline。 Pipeline Task B Step 1 Step 2 Task A Step 1 Step 2 Step 3 Task D Step 1 Task C Step 1 Step 2

Slide 36

Slide 36 text

CI/CD CI/CD on OpenShift 36 Copyright © 2024, Oracle and/or its affiliates TEKTON の Custom Resource Custom Resource 名 概要 Task 各 Step の処理内容、パラメータを指定して、Task を定義 TaskRun 定義した Task を実行するために利用 Pipeline Task をまとめた Pipeline を定義 PipelineRun 定義した Pipeline を実行するために利用 PipelineResource Task、Pipeline で利用するリソース(Git リポジトリやコンテナレジストリなど)を定義 マニフェストファイルの 「kind」 に、以下 Custom Resource 名を指定して、各処理内容を定義して適用する。 OpenShift では、マニフェストを作成して、OC コマンドでの適用と Web UI でマニフェストを作成して適用できる。

Slide 37

Slide 37 text

CI/CD CI/CD on OpenShift 37 Copyright © 2024, Oracle and/or its affiliates OCIR (OCI Registry) Pipeline Task 1 GitHub clone-repo Task 2 source-to-image Task 3 deploy-to-cluster GitHub からソースコードをクローン 1. Buildah でコンテナイメージをビルド 2. OCIRにコンテナイメージをプッシュ OpenShift クラスタにデプロイ project (namespace) : pipeline-tutorial Workspace PVC PV $ git psuh webhook Event-Listener Pipelinerun image psuh image pull Go-app $ oc apply Web access Secret Secret Webhook Token OCIR Certification

Slide 38

Slide 38 text

CI/CD CI/CD on OpenShift 38 Copyright © 2024, Oracle and/or its affiliates タスクとパイプラインのマニフェスト マニフェストファイル 概要 task1.yaml GitHub からソースコードをクローン task2.yaml Buildah でコンテナイメージビルド、OCIR にコンテナイメージプッシュ task3.yaml OpenShift クラスタにサンプルアプリケーションをデプロイ pipeline.yaml task1-3 をまとめたパイプライン ocir-secret OCIR の認証情報 ※ OpenShift の pipeline というサービスアカウントと紐づけ マニフェストファイル 概要 token.yaml Secret リソースとして GitHub の webhook トークン情報 trigger-sa.yaml トリガー機能を実行するサービスアカウント trigger-binding.yaml イベントのペイロードから必要な情報を抽出して、パラメータとして定義 trigger-template.yaml TriggerBindingで取得されたパラメータを使って、Kubernetesリソース(例:PipelineRun)を生成するテンプレート event-listener.yaml GitHub からの webhook イベントを受信して、TriggerBinding と TriggerTemplate 処理を実行 トリガー関連のマニフェスト

Slide 39

Slide 39 text

CI/CD CI/CD on OpenShift 39 Copyright © 2024, Oracle and/or its affiliates Pipeline Task

Slide 40

Slide 40 text

CI/CD CI/CD on OpenShift 40 Copyright © 2024, Oracle and/or its affiliates Event Listener Trigger Template Trigger Binding

Slide 41

Slide 41 text

CI/CD CI/CD on OpenShift 41 Copyright © 2024, Oracle and/or its affiliates GitHub webhook Payload URL に公開している Event Listener の URL を入力 application/json を選択 任意の Token を入力 • OpenShift のルート(Route)機能を利用して、外部から OpenShift クラスタ内のサービスにアクセス • 自動で URL を生成されるのでそれを指定

Slide 42

Slide 42 text

CI/CD CI/CD on OpenShift 42 Copyright © 2024, Oracle and/or its affiliates Demo

Slide 43

Slide 43 text

CI/CD CI/CD on OpenShift 43 Copyright © 2024, Oracle and/or its affiliates • PersistentVolumeClaim と StorageClass ポリシー設定 Allow dynamic-group < your-dynamic-group-name > to manage volumes in Allow dynamic-group < your-dynamic-group-name > to manage volume-attachments in マニフェスト workspaces: - name: git-source volumeClaimTemplate: spec: storageClassName: "oci-bv" accessModes: - ReadWriteOnce resources: requests: storage: 50Gi TriggerTemplate で Pipelinerun を実行する箇所に定義 StorageClass によって、PVC を利用する Pod が起動したタイミングで、 PersistentVolume が自動的にプロビジョニングされる仕組み

Slide 44

Slide 44 text

CI/CD 参考図書 44 Copyright © 2024, Oracle and/or its affiliates

Slide 45

Slide 45 text

Observability Oracle Cloud Hangout Café Premium 45 Copyright © 2024, Oracle and/or its affiliates

Slide 46

Slide 46 text

自己紹介 46 Copyright © 2024, Oracle and/or its affiliates 川村 修平 (Shuhei Kawamura) オラクル・デジタル / ISVソリューション本部 日本オラクル株式会社 @shukawam X/GitHub/Qiita コミュニティ • Oracle Cloud Hangout Cafe(OCHaCafe) • CloudNative Days – Observabilityチーム ひとこと • SAUNA XXという最高のサウナに週2~3で通っています • 技術書典17で「LLM x Observability」について執筆予定です • w/ @ystkfujii, @k6s4i53rx, @taisuke_bigbaby

Slide 47

Slide 47 text

オブザーバビリティ 47 Copyright © 2024, Oracle and/or its affiliates あるシステムの内部状態が、その外部出力の知識からどれだけうまく推測できるかを示す尺度 by Observability Whitepaper / CNCF Metrics Logs Traces aggregatable request scoped distributed events non-distributed events Lower volume Higher volume Observability – Primary Signals Metrics • データを数値化したもの Traces • 分散トランザクション中に何が起きたのか?その結果として 通過したサービスなどに何が影響したかを理解する技術 Logs • 起きたことを記録する1つまたは複数のテキスト・エントリ Profiles • CPUやヒープ、I/Oなどのリソースがシステム内でどのように割 り当てられているかの分布 Dumps • クラッシュ時のプロセスのメモリイメージ

Slide 48

Slide 48 text

Kubernetesとオブザーバビリティ Kubernetes環境でオブザーバビリティを確保する • ノード、Kubernetesクラスタ、コンテナなどさまざまなレイヤーのテレメトリー・データの収集とその活用が必要 • 増減するリソースを動的にテレメトリー・データの収集対象に加える/除外する 48 Copyright © 2024, Oracle and/or its affiliates ・・・ ・・・ ノードのメトリクス(CPU、メモリ、ディスク等の使用率) アプリケーション固有のメトリクス(リクエスト数、スレッド数、等) コンテナのメトリクス(CPU、メモリ等の使用率) アプリケーションのログ(アクセス、実行ログ、等) トレース情報 Kubernetesのメトリクス Kubernetesのログ(イベント、監査) (まじめにやるなら)全部テレメトリー・データの収集対象です

Slide 49

Slide 49 text

OSS(Grafana Stack + α)を活用したKubernetes上のオブザーバビリティ基盤例 49 Copyright © 2024, Oracle and/or its affiliates Prometheus Grafana Loki Grafana Tempo Promtail OpenTelemetry Collector Grafana アプリケーション固有メトリクス Kubernetesメトリクス ノードのメトリクス(Node Exporter) … アプリケーション固有ログ コンテナのイベントログ 監査ログ Kubernetesログ アプリケーションのトレース情報 Metrics Logs Traces

Slide 50

Slide 50 text

OSS(Grafana Stack + α)を活用したKubernetes上のオブザーバビリティ基盤例 50 Copyright © 2024, Oracle and/or its affiliates Prometheus Loki Tempo Promtail OpenTelemetry Collector Grafana アプリケーション固有メトリクス Kubernetesメトリクス ノードのメトリクス(Node Exporter) … アプリケーション固有ログ コンテナのイベントログ 監査ログ Kubernetesログ アプリケーションのトレース情報 Metrics Logs Traces Grafana Stack以外にも多くのOSSが存在し、組織やチームに適した選定が大変 オブザーバビリティ基盤の構築・運用がそもそも大変 適切なテレメトリー・データ収集の設定やそれを活用するためのダッシュボード構築も大変

Slide 51

Slide 51 text

OpenShift Container Platform Observability アプリケーションとインフラストラクチャの信頼性、パフォーマンス、セキュリティ確保の目的で以下のコンポーネントを提供 51 Copyright © 2024, Oracle and/or its affiliates Monitoring Red Hat build of OpenTelemetry Logging Network Observability Distributed Tracing Power Monitoring Prometheus Alertmanager Thanos Grafana Loki Grafana Tempo Jaeger OpenTelemetry Operator OpenTelemetry Collector NetObserv Operator Kepler Elasticsearch Vector 参考: https://docs.openshift.com/container-platform/4.16/observability/index.html Fluentd

Slide 52

Slide 52 text

参考: https://docs.openshift.com/container-platform/4.16/observability/index.html OpenShift Container Platform Observability アプリケーションとインフラストラクチャの信頼性、パフォーマンス、セキュリティ確保の目的で以下のコンポーネントを提供 52 Copyright © 2024, Oracle and/or its affiliates Network Observability Power Monitoring NetObserv Operator Kepler Monitoring Logging Distributed Tracing Grafana Tempo Jaeger Red Hat build of OpenTelemetry OpenTelemetry Operator OpenTelemetry Collector Prometheus Alertmanager Thanos Elasticsearch Vector Fluentd Grafana Loki

Slide 53

Slide 53 text

Monitoring デフォルトのプラットフォーム監視コンポーネント • OpenShift Container Platformをインストールした時点で 使用可能 • Kubernetesサービスを含むコアクラスタコンポーネントのモニ タリングを提供 ユーザー定義プロジェクトを監視するコンポーネント • オプションを有効にすると追加コンポーネントがopenshift- user-workload-monitoringプロジェクトにインストールされ る • ユーザー定義プロジェクト内のService, Podを監視するため に使用 53 Copyright © 2024, Oracle and/or its affiliates 参考: https://docs.openshift.com/container-platform/4.16/observability/monitoring/monitoring-overview.html

Slide 54

Slide 54 text

Logging ノードの監査ログ、コンテナアプリケーションのログ、インフラストラクチャのログを収集、集約、可視化することが可能 • Collector, Log store, Visualizationの3つのコンポーネントから構成される • Collector – Vector or Fluentd*を用いて、各ノードからログを収集・整形し、Log storeへフォワードする • Log store – LokiStack or Elasticsearch* or 外部のログストアを用いて分析のためにログを保管しておく • Visualization – OpenShift Container Platform web console UI or Kibana*を用いて、ログデータの検索や参照を行う 54 Copyright © 2024, Oracle and/or its affiliates *: 資料作成時点(2024/08)でOpenShift Container PlatformとしてはDeprecated、もしくは別手段が推奨されているもの 参考: https://docs.openshift.com/container-platform/4.16/observability/logging/cluster-logging.html Logs Logs ・・・ Log store Collector Visualization

Slide 55

Slide 55 text

Distributed Tracing マイクロサービスのスタック全体にわたる個々のリクエストの実行を記録し、トレースとして表示することが可能 • Grafana Tempo or Jaeger*から選択可能 • Grafana Tempoを選択した場合は、以下のコンポーネントで構成される • Gateway • Distributor • Ingester • Query Frontend • Querier • Compactor 55 Copyright © 2024, Oracle and/or its affiliates *: 資料作成時点(2024/08)でOpenShift Container PlatformとしてはDeprecated、もしくは別手段が推奨されているもの 参考: - https://docs.openshift.com/container-platform/4.16/observability/distr_tracing/distr_tracing_arch/distr-tracing- architecture.html - https://grafana.com/docs/tempo/latest/operations/architecture/ Storage Metrics backend Metrics generator Ingester Querier Query Frontend Distributor Cache (Redis, Memcached) Object Storage (S3, GCS, Azure) Compactor Gateway

Slide 56

Slide 56 text

Red Hat build of OpenTelemetry Red HatがビルドしたOpenTelemetry Operatorを通して以下のカスタム・リソースを管理する • OpenTelemetryCollector: ベンダーニュートラルなテレメトリー・データの受信、処理、エクスポート方法を提供 • Instrumentation: 自動計装用のライブラリを注入する設定 • 2024/08現在 – Apache HTTPD, .NET, Go, Java, Nginx, Node.js, Pythonをサポート 56 Copyright © 2024, Oracle and/or its affiliates 参考: https://docs.openshift.com/container-platform/4.16/observability/otel/otel-installing.html - install-otel OpenTelemetry Collector Metrics Logs Traces Instrumentation 自動計装用のライブラリ (initContainerで仕込む)

Slide 57

Slide 57 text

デモ Helidon製の適当なデモアプリをOCPにデプロイし、Grafana k6(Load Generator)を使って負荷をかける 負荷をかけている際のPrimary Signals(Metrics, Logs, Traces)をOCP上で確認してみる 57 Copyright © 2024, Oracle and/or its affiliates observability-demo cowsay-caller cowsay-executor load-generator openshift-monitoring openshift-user- workload-monitoring openshift-logging openshift-tracing

Slide 58

Slide 58 text

まとめ + “個人の”感想 まとめ Kubernetes環境でのオブザーバビリティを確保するために複数のコンポーネントが提供されている • Primary Signals(Metrics, Logs, Traces) + Network Observability, Power Monitoring • Monitoring – Prometheus, Logging - Vector + Grafana Loki, Tracing - Grafana Tempo + OpenTelemetry “個人の”感想 OSSでセルフマネージドする上での辛いポイントを解消するようよくできていると感じた • デファクトスタンダードな構成で提供されており、OSSの選定などに気を使わずに済みそう • よくできたデフォルト設定 + その他設定が必要な際もGUIだけで解決することが多かった • OLM(Operator Lifecycle Management)が組み込まれており、Operatorの自動更新がされる点もGood 一方ある程度、Kubernetesや関連オブザーバビリティOSSについて経験がないと初見では難しそう… また、テレメトリー同士の相関(Trace to Logs, etc.)は未確認なので今後検証したい 58 Copyright © 2024, Oracle and/or its affiliates

Slide 59

Slide 59 text

本日のデモコード https://github.com/oracle-japan/ochacafe-openshift 59 Copyright © 2024, Oracle and/or its affiliates • cicdディレクトリ CI/CDで利用したコンテンツ • observabilityディレクトリ Observabilityで利用したコンテンツ • os-on-oci 環境構築で利用したコンテンツ

Slide 60

Slide 60 text

No content