Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Sign up for free
Menu
Search
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Pricing
Search
Sign in
Sign up for free
ccnr-ops-2021-1st-appendix
Search
capsmalt
March 26, 2021
Technology
250
1
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
ccnr-ops-2021-1st-appendix
CCNR Ops 2021 前半部分の補足
capsmalt
March 26, 2021
More Decks by capsmalt
See All by capsmalt
OpenShift.Run2023_Overview
capsmalt
0
200
ccnr-ops-2021-1st
capsmalt
0
230
5min_operator101
capsmalt
1
600
EDB2020_Red Hat
capsmalt
0
400
OpenShift.Run Intro
capsmalt
0
180
kubernetes2020
capsmalt
1
790
Operator 101
capsmalt
5
3.4k
Operator Basic in CNDK2019
capsmalt
6
1.5k
GitOps_Kubernetes
capsmalt
1
860
Other Decks in Technology
See All in Technology
新機種発売前に見直そう!端末移行で再ログインが要るアプリ・要らないアプリは何が違うのか 〜シームレスに再開できる設計と実装〜
zozotech
PRO
0
190
[2026-09-11]SREは誰のもの?運用エンジニアが始める 「SRE領域への越境」とチームの進化の軌跡 〜Road to NEXT CRE
tosite
0
240
AIネイティブプロダクトで顧客価値を最大化するプロダクトエンジニアとFDEの協働
righttouch
PRO
0
310
HHKBエバンジェリストになる方法
941
0
100
10Xに技術的負債をもたらした「2つの境界の歪み」その構造と解消への営み
10xinc
0
1.9k
目の前の楽しいが人生を変える - コミュニティの螺旋の歩き方と楽しむコツ / change your life
soudai
PRO
4
600
AIによるクリエイティブ生成を行う上での試行錯誤
plaidtech
PRO
0
150
登壇の自信を奪う3匹のオバケ / 3 Ghosts That Rob You of Your Confidence in Public Speaking
pauli
8
920
空間オーディオで過去の 自分(ゴースト)と競うランニング 〜HealthKitのルートを足音に変える実装〜
nao_randd
0
220
あるけみー式LTスライド作成術
alchemy1115
1
210
アプリログインとWeb認証基盤をつなぐ ASWebAuthenticationSession 作法
shimastripe
1
320
Deployment の 先にある AI Agent 基盤 - kagent vNext、Agent Substrate、Hermes から読み解く Agent Runtime の現在地 / k8s-matsuri-2-ai-agent-platform-amsy810
masayaaoyama
3
560
Featured
See All Featured
The Success of Rails: Ensuring Growth for the Next 100 Years
eileencodes
47
8.3k
Building a Scalable Design System with Sketch
lauravandoore
464
34k
The Mindset for Success: Future Career Progression
greggifford
PRO
0
490
Bioeconomy Workshop: Dr. Julius Ecuru, Opportunities for a Bioeconomy in West Africa
akademiya2063
PRO
1
360
A Tale of Four Properties
chriscoyier
163
24k
Information Architects: The Missing Link in Design Systems
soysaucechin
1
1.1k
Abbi's Birthday
coloredviolet
4
10k
Exploring the Power of Turbo Streams & Action Cable | RailsConf2023
kevinliebholz
37
6.6k
Connecting the Dots Between Site Speed, User Experience & Your Business [WebExpo 2025]
tammyeverts
11
1k
A designer walks into a library…
pauljervisheath
211
25k
The SEO identity crisis: Don't let AI make you average
varn
0
560
Responsive Adventures: Dirty Tricks From The Dark Corners of Front-End
smashingmag
254
22k
Transcript
CCNR Ops 2021 – Appendix Red Hat K.K. Cloud Solution
Architect 49
OPTIONAL SECTION MARKER OR TITLE 補⾜ ) ビルド & デプロイ
50
51 Build & Deploy Application Build Processは、ソースコードのビルドとベースイメージのビルドから構成される Build Image Deploy
Build Apps Git Repo Application Code Dockerfile BuilderImage Archive Compile Application Image Container Registry Deploy Deploy Process Build Process アプリケーションの展開は、「Build Process」と「Deploy Process」から成り⽴つ
52 よくあるコンテナアプリのデプロイ DockerHub $ docker pull xxx $ docker run
xxx $ git clone <Source Code> $ mvn test/package/deploy $ docker commit $ docker tag SCM ⾃社Registry $ kubectl apply –f deplloyment.yaml service.yaml ...
53 コンテナアプリケーションのデプロイ Developerカタログ, Git Repo, コンテナイメージ, Dockerfileを使⽤してデプロイ可能
54 Developer カタログ 例) Builder Imageとして Python を選択
55 例) ⾃⾝のアプリコードの 場所(リポジトリ)を指定 ソースコードのあるリポジトリ Developer カタログ
56 Deployment Config (≒Deployment)
57 アプリ動作(Pod) さきほどのPod名
58 ここまでの操作を整理・・・ - OpenShiftコンソール上で Python (Builder) を選択 - ソースコードリポジトリを指定
59 何が起こったか︖ - OpenShiftコンソール上で Python (Builder) を選択 - ソースコードリポジトリを指定 build
config image stream deployment config service route を作成
60 何が起こったか︖ - OpenShiftコンソール上で Python (Builder) を選択 - ソースコードリポジトリを指定 -
Python (Builder) と ソースコード を合体してコンテナイメージを作成 - Build Config で S2I でイメージビルドを実施 - OpenShift 上にコンテナデプロイ - Deployment Config に イメージ(+ Replicas : 1など) 指定で適⽤ build config image stream deployment config service route を作成
61 よく使うベースイメージ(やテンプレート)を活⽤ ソース指定のみで,ビルドやデプロイなどを⾏うリソースを⼀括作成
62 再掲) よくあるコンテナアプリのデプロイ DockerHub $ docker pull xxx $ docker
run xxx $ git clone <Source Code> $ mvn test/package/deploy $ docker commit $ docker tag SCM ⾃社Registry $ kubectl apply –f deplloyment.yaml service.yaml ...
63 Source-to-Image (s2i) s2iはBuilderImageのラベルから、s2i Scriptの場所を読み込んで実⾏し、その結果をコンテナイメージとして出⼒するビルド⽅式です。 (*マニュアルでやると、docker runしたベースイメージで、s2iスクリプトをキックしたあとにdocker commit/tagする) s2i Script
BuilderImage (Base Image) Middleware Configs Dockerfile OS Based Image Application Image Application Code Source-to-Image (s2i) 内部では、s2i Scriptに書かれた⼿順に従っ て、アプリケーションのビルドを⾏っている。
64 Source-to-Image (s2i) アプリケーションコードをInputにし、アプリケーションとベースイメージをビルドして、新しいDockerイメージを⽣成 oc new-app Build Config Image Stream
Deployment Config Service Builder Container s2i Build Process Git Repo Application Image ImageStreamTag iptables Replication Controller Deploy Pod Container Application Code Container Registry ImageStreamTag
65 Application Create Objects oc new-appを⾏うことで、以下のオブジェクトが作成される Object 解説 Build Config
BuildConfig は、コマンドラインで指定された各ソースリポジトリーに作成されま す。BuildConfig は使 ⽤するストラテジー、ソースのロケーション、およびビルド の出⼒ロケーションを指定します。 ImageStream BuildConfigでは、通常 2 つの ImageStream が作成されます。 1 つ⽬は、インプットイメージを表します。Source ビルドでは、これはビルダーイメージです。Docker ビルド では、これは FROM イメージです。2 つ⽬は、アウトプットイメージを表します。コンテナーイメージが new- app にインプットとして指定された場合に、このイメージに対してもイメージストリームが作成されます。 Deployment Config DeploymentConfig は、ビルドの出⼒または指定されたイメージのいずれかをデプロイするために作成さ れます。new-app コマンドは、結果として⽣成されるDeploymentConfig に含まれるコンテナーに指定 される全Docker ボリュームにemptyDir ボリューム を作成します。 Service new-app コマンドは、インプットイメージで公開ポートを検出しようと試みます。公開されたポートで数値 が最も低いものを使⽤して、そのポートを公開するサービスを⽣成します。new-app 完了後に別のポー トを公開するには、単に oc expose コマンドを使⽤し、追加のサービスを⽣成するだけです。
66 BuildConfig Build inputs Git: Git リポジトリからアプリケーションをビルド・デプロイする場合 Dockerfile: Dockerfile でビルドを完結させる場合
Binary: ローカルホスト上の Binary (EAR, WAR) をイメージに配置する場合 Application Code BuilderImage (Base Image) Build Strategies S2I: アプリケーションのソースコードをビルドし、コンテナイメージ内に配置 Docker: Dockerfile と docker build と同様な処理 Pipeline: Jenkins pipeline によりビルドやデプロイを制御 Custom: ビルドイメージを独⾃に作成し、ビルドプロセスをカスタマイズする s2i Build Process Application Image Build outputs ImageStreamTag: コンテナレジストリにプッシュされ、指定されたイメー ジストリームに対して、タグ付けする
67 ImageStream OpenShift内部で管理されるコンテナレジストリのイメージのメタデータを参照 - コンテナレジストリのタグにpushされたイメージのバージョン履歴(Stream)を保持する機能 -コンテナレジストリにpushなど、ImageStreamのタグが更新されたら自動的にアクションを起動できる ImageChange更新トリガー - OpenShift内部レジストリとの連携、イメージキャッシュ
OPTIONAL SECTION MARKER OR TITLE 補⾜ ) Prometheus Operator 68
Prometheusとは コンテナ環境に適したプル型のリソース監視ソフトウェア Prometheus Server Exporters Alert Manager Grafana Push Gateway
JMX Exporter JMXターゲットのmBeanを構成可能にスクレイピングして公開することができるコレクタ (javaagent) Prometheus Server 監視サーバー JMX Exporter Exporterが監視対象
のデータを取得 JVM JMX Java Application tcp-9404 tcp-8080 PREPEND_JAVA_OPTS="-javaagent:${JBOSS_HOME}/prometheus/jmx-prometheus.jar=9404:${JBOSS_HOME}/prometheus/config.yaml"
Prometheus Operator Prometheus 監視インスタンスを作成・設定・管理します Service Service Service Service Custom Resource
Definition(CRD) Service Monitor Service Monitor Prometheus Prometheus Pod Deploy Config Management Target Monitoring Watch prometheus prometheus- config-reloader rules-configmap -reloader Operator (Controller)
CRD for Alerting CRD for Monitoring Custom Resource Definition Operator
CRDおよびConfigMapを使⽤してサービスをカスタマイズできます Service Monitor Prometheus Prometheus Rule Alert Manager Prometheus展開を定義し ます。Operatorは常に,リ ソース定義と⼀致するデプ ロイメントが実⾏されてい ることを確認します。 Service Groupを監視する ⽅法を宣⾔的に指定します。 Operatorは,定義に基づい てPrometheusのスクレイプ 設定を⾃動的に⽣成します。 必要なPrometheusルール ファイルを定義します。こ れは,Prometheusアラート および記録ルールを含む Prometheusインスタンスに よってロードできます。 AlertManager展開を定義 します。オペレーターは常 に,リソース定義と⼀致す るデプロイメントが実⾏さ れていることを確認します。 Prometheusリソースは宣⾔的にPrometheusデプロイメントの望ましい状態を記述し,ServiceMonitorはPrometheusに よって監視されるターゲットのセットを記述します。
jmx Project Overview of Hands-On (Lab1-3,-4,-5) Monitoring Java Application by
Prometheus Operator Service (jboss-eap-prometheus) Custom Resource Definition(CRD) Prometheus Pod Deploy Config Management Watch prometheus prometheus- config-reloader rules-configmap -reloader JMX Exporter JVM JMX Java Application tcp-9404 tcp-8080 jmx-monitor Project Router Router Service Monitor Prometheus Operator (Controller)
OpenShift Prometheus Operator OpenShift内部のコンポーネントにもOperatorが利⽤されている OpenShift Monitoring Operatorが Operatorを管理