Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
Tech Dojo OpenShift-S2I handson
Search
Sponsored
·
Ship Features Fearlessly
Turn features on and off without deploys. Used by thousands of Ruby developers.
→
NoriMuraZ
November 29, 2022
Technology
320
0
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
Tech Dojo OpenShift-S2I handson
NoriMuraZ
November 29, 2022
More Decks by NoriMuraZ
See All by NoriMuraZ
新卒社員が初めてやってみた!GitHub編(Trying GitHub for the First Time as a New Graduate!)
norimuraz
0
220
新卒社員が初めてやってみた!GitHub編QA(Trying GitHub for the First Time as a New Graduate!)
norimuraz
0
150
いまからでも遅くない!SSL/TLS証明書超入門(It's not too late to start! SSL/TLS Certificates: The Absolute Beginner's Guide)
norimuraz
0
530
Tech Dojo Introduction Of Monitoring
norimuraz
0
550
Other Decks in Technology
See All in Technology
気づかぬうちにセキュリティ負債を生むAPIキー運用
sgwrmctk
0
180
AIはどのように 組織のアジリティを変えるのか?
junki
4
1k
[チョークトーク資料]AWS DevOps Agent を使いこなす / AWS Dev Ops Agent Chalk Talk AWS Summit Japan 2026
kinunori
2
500
フィジカル版Github Onshapeの紹介
shiba_8ro
0
290
就職⽀援サービスにおけるキャリアアドバイザーのシフトスケジューリング
recruitengineers
PRO
1
150
IaC コードを資産へ:AWS CDK 社内ライブラリと横断展開 / aws-summit-japan-2026
gotok365
2
640
いまさら聞けない「仕様駆動開発入門」 〜AI活用時代の開発プロセスを考える〜
findy_eventslides
2
160
AIのReact習熟度を測る
uhyo
2
640
20260619 私の日常業務での生成 AI 活用
masaruogura
1
230
Lightning近況報告
kozy4324
0
160
Claude Codeをどのように キャッチアップしているか
oikon48
13
8.5k
生成 AI 実践ガイド (概略版) AIガバナンス編
asei
0
100
Featured
See All Featured
Balancing Empowerment & Direction
lara
6
1.2k
Lessons Learnt from Crawling 1000+ Websites
charlesmeaden
PRO
1
1.3k
個人開発の失敗を避けるイケてる考え方 / tips for indie hackers
panda_program
123
22k
Avoiding the “Bad Training, Faster” Trap in the Age of AI
tmiket
0
180
Put a Button on it: Removing Barriers to Going Fast.
kastner
60
4.3k
Heart Work Chapter 1 - Part 1
lfama
PRO
7
36k
The Mindset for Success: Future Career Progression
greggifford
PRO
0
360
Facilitating Awesome Meetings
lara
57
7k
Un-Boring Meetings
codingconduct
0
320
SEO in 2025: How to Prepare for the Future of Search
ipullrank
3
3.5k
Java REST API Framework Comparison - PWX 2021
mraible
34
9.4k
More Than Pixels: Becoming A User Experience Designer
marktimemedia
3
440
Transcript
Tech Dojo OpenShift 基本講座 ワークショップ for Developers Presented by: IBM
Customer Success #IBMDojo
目的 OpenShift概要について理解する ゴール OpenShift上にアプリをデプロイできるようになる このコースを学ぶ方の想定スキル コンテナ実行環境を初めて利用する方 本セッションについて
目次 1. コンテナ 2. Kubernetes 3. OpenShift 4. ハンズオンワークショップ
なぜ「今」 コンテナ/Docker/Kubernetesなどの テクノロジーが注目されているのか? 1. コンテナ
コンテナは仮想マシン(VM)に比べてリソース効率がよい スケールアウトが簡単 VM(仮想マシン)とコンテナ VM(仮想マシン型) コンテナ型 システム基盤 ホストOS 仮想化層 ゲストOS ゲストOS
ゲストOS Bin/Libs Bin/Libs Bin/Libs App1 App2 App3 システム基盤 ホストOS コンテナランタイム Bin/Libs Bin/Libs Bin/Libs App1 App2 App3
コンテナを使った開発の流れ Dockerfileなど Docker イメージなど コンテナ レジストリ マニフェストで コンテナ自体の 詳細を記述 開発者
コンテナ イメージ作成 イメージの 登録 開発者 アプリ実行 アプリ開発 3段階のプロセス
dockerを使った例 利用 Build Docker Runtime ソースや 構成情報 内部リポジトリー コンテナ・イメージ Pull
run/exec dockerHub コンテナ dockerHub オンライン上にイメージを保管しておくコンテナレジストリの1種です。 様々なイメージの取得、自作イメージの保管ができます。 Dockerの操作は、提供されているDocker コマンド(CLI)を活用します。ユーザーは、元になる Docker imageをコンテナ化することで、アプリケーションとして利用することができます。
コンテナレジストリ Container Registryはコンテナ・イメージを保管しておくための領域であり、Docker Hubはそのうち の一つです。Container Registryは様々な種類があり、環境・用途によって使い分けが可能です。 種類 概要 例 Docker
Hub 様々なイメージが保管・公開されている。 公開されているイメージを取得したり、作成したイメー ジを保管したりすることができる。 料金を支払うことで、privateなレジストリとしても利用 可能。 - クラウド・サービス 様々なクラウド・ベンダーなどが提供しているサービス。 各ユーザーのPrivateな領域として利用可能。 料金によって、サイズやアクセス回数の制限がある。 IBM Cloud Container Registry Red Hat Quay Amazon ECR GCP Container Registry Azure Container Registry OSS ユーザー固有の環境に独自で作成するRegistry。 環境・導入作業などは必要だが、基本的に自由に利用可 能。 NEXUS OCR (OpenShift Container Registry) Open Source Docker Registry また、各イメージはContainer Registryに作成された領域であるリポジトリ内に保存され、形式は下記の通りです。 <リポジトリ名>/<イメージ名>(:<tag>) (例: ibmcom/websphere-liberty → ibmcomリポジトリ内のwebsphere-libertyイメージ)
コンテナのポータビリティ 👉🏻アプリケーション稼働に必要な依存ファイルを パッケージングできる 👉🏻物理サーバーに固定されない → 同じアーキテクチャの環境であれば ポータビリティが存在する 「僕の環境では動いた」 問題が発生しない システム基盤
(クラウド) ホストOS システム基盤 (オンプレミス) ホストOS コン テナ エン ジン App1 Bin/Libs App2 Bin/Libs App3 Bin/Libs コン テナ エン ジン App3 Bin/Libs
・仮想マシン(VM)に比べてリソース効率がよい ・ポータビリティーが高い ・スケールアウトが容易 ・3段階のプロセスを使用することで、 よりアジャイルなDevOpsと継続的インテグレーション およびデリバリーが可能になる コンテナのまとめ
コンテナとコンテナオーケストレーションって? dockerだけじゃダメなの? 2. Kubernetes
コンテナーの運用実行と管理を行うオーケストレーションツール • コンテナーが大量になってくると管理しきれない部分をカバー • 複数のDockerホストの管理 • 死活監視 • スケジューリング •
スケーリング • 障害時のリカバリー • アプリ実行に必要なインフラリソースを管理 • 永続的なストレージ • ネットワーク • クレデンシャル情報 etc… • 宣言的設定モデル • 「あるべき状態」を記述すると、それを実現し続けようとしてくれる • 障害時も自動で復旧作業を実施 Kubernetesの特徴
Kubernetesの代表的な機能 スケールアウト 負荷分散 バージョン管理 (ロールアウト) ネットワーク管理 永続ストレージ管理 死活監視 自己復旧 CPU
/ Memory リソース管理
Kubernetesアーキテクチャー DB (etcd) API Server Client/User kubectl CLI ・Watcher ・Controller
Networks Volumes Secrets ... Request Monitor WatcherとControllerがデータベース内の変更を反映する。 API Serverは http/RESTによるデータベースのフロントエンド。 Base OS/Kernel Container Runtime Images Ubuntu Liberty Kubelet Kube- Proxy Pod/Service C C C Node
Kubernetesで覚えておきたい概念 Pod Kubernetes における最小の管理単位 - Podの中には 1つ以上 の コンテナが含まれる -
Pod単位でスケールイン・スケールアウトする - PodごとにIPアドレスがアサインされる Pod IP 10.1.206.34 10.1.206.128
Kubernetesで覚えておきたい概念 ReplicaSet Podを管理するための定義 - Podの必要稼働数を定義 - K8sの Scheduler がどのノードにアサイン するかは考慮してくれる
Pod IP 10.1.206.34 10.1.206.110 ノード ノード ReplicaSet - 必要数2 - 現行 2
Kubernetesで覚えておきたい概念 Deployment ワークロード定義体 - Pod - ReplicaSet - ClusterIPs -
NodePort - (Ingress) Pod IP 10.1.206.34 10.1.206.110 Cluster IP 10.0.0.142 169.56.42.73 Ingress IP Deployment
18 Deployment replicas: 3 Ver1.0 replicas: 3 Pod Pod Pod
Ver1.5 replicas: 3 Pod Pod Pod Kubernetesで覚えておきたい概念 Deployment
Kubernetesで覚えておきたい概念 Service Kubernetes外から TCP/IPでアクセ スするための定義 - K8sクラスタ内で一意となるポートがアサイン される - K8sクラスタのどのノードからアクセスしても
当該サービスにルーティングされる - L4ロードバランサー Pod IP 10.1.206.34 10.1.206.110 ノード ノード 30010 30010
・コンテナーのオーケストレーション・ツール ・理想状態を宣言すると、その状態を維持しようとする ・4つの主要コンポーネント 👉🏻 Pod 👉🏻 Deployment 👉🏻 Service 👉🏻
ReplicaSet Kubernetesのまとめ PodはDeploymentによって作成され、管理されます。 Deploymentによって作成されたPodへのアクセスは、 Serviceを使用することで容易になります。
なぜKubernetesではなくOpenShiftを使うのか? そもそも2つの違いは? 3. OpenShift
OpenShiftのしくみ OpenShift 4 Platform ⚓️統合と自動化 ⚓️シームレスなKubernetesデプロイ ⚓️インストールの自動化 ⚓️1クリックでのプラットフォーム更新 ⚓️クラウドリソースのオートスケーリング
OpenShiftは、Kubernetesとの互換性を維持しながら、CICD機能を強化、開発者に代わって、ビルド、 リポジトリ登録、デプロイを自動実行します。 KubernetesとOpenShiftの違い OpenShift 機能拡張 Ubuntu / CentOS… Linux コンテナ
ランタイム Kubernetesの標準機能 で構築したアプリケーション どちらでも 動作可能 RHEL / RHCOS コンテナ ランタイム Kubernetes アプリケーション (コンテナ) Kubernetes アプリケーション (コンテナ) OpenShift CICD利用 アプリケーション (コンテナ)
OpenShiftとKubernetesとの違い ・長期サポートがある https://www.ibm.com/blogs/think/jp-ja/differences-values-openshift-and-kubernetes/ ・脆弱性対応など企業向けセキュリティが強化 ・CI/CDツール環境が整っている
Deploy: ソースコードからコンテナ作成とデプロイまでの自動化 Manage: Webコンソールとコマンドラインの両方から操作可能 運用: 実行状態のメトリックス監視とログ分析も提供 Security: Project単位で簡単に管理可能 OpenShiftのまとめ
IBMが提供するOpenShiftの二つのスタイル
マネージドサービスのOpenShift ROKSは、業界をリードする商用コンテナ管理基 盤であるRed Hat OpenShiftのマネージド・サー ビスです。ROKSを使うことで、お客様は OpenShiftを用いたインフラの構築や維持、運用、 および技術習得の負担を減らし、ビジネス競争力 の源泉となるアプリケーションの開発と管理に専 念できるようになります。
Red Hat OpenShift on IBM Cloud (ROKS)
OpenShiftが動く環境ならどこでも使える オンプレミスからIBM Cloud、さらには他社のパブリッククラウドまで、OpenShiftが動く環境ならどこで も使えるアプリケーション開発/実行基盤です。 IBM Cloud Paks
https://ibm.biz/oss2iws 4. ハンズオンワークショップ
参考情報 ・コンテナとは? https://www.redhat.com/ja/topics/containers ・Kubernetesとは? https://www.redhat.com/ja/topics/containers/what-is-kubernetes 参考動画 ・OpenShiftとは? https://youtu.be/KTN_QBuDplo ・KubernetesとOpenShiftの違い https://youtu.be/cTPFwXsM2po
付録:参考情報
付録:dockerコマンド集(主なもの) 概要 コマンド オプション イメージ取得 image pull {image}:{tag} イメージビルド image
build {image}:{tag} イメージ一覧 image list タグの付与 image tag {image}:{tag} {image}:{新tag} イメージ削除 image rm {image id} コンテナ起動 container run {image}:{tag} -p {host port}:{container port} ポート公開 -d バックグラウンド起動 --rm 停止時にコンテナ削除 コンテナ一覧 ps -a 停止状態含む全てのコンテナを取得 コンテナ停止 container stop {container id} コンテナ削除 container rm {container id} コンテナ内でコマンド実行 container exec {container id} {command} -it インタラクティブに操作 ステータス確認 stats --no-stream 一回のみ表示