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
Tech Dojo OpenShift-S2I handson
Search
NoriMuraZ
November 29, 2022
Technology
330
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
240
新卒社員が初めてやってみた!GitHub編QA(Trying GitHub for the First Time as a New Graduate!)
norimuraz
0
160
いまからでも遅くない!SSL/TLS証明書超入門(It's not too late to start! SSL/TLS Certificates: The Absolute Beginner's Guide)
norimuraz
0
570
Tech Dojo Introduction Of Monitoring
norimuraz
0
560
Other Decks in Technology
See All in Technology
負債のメタファと2026年 / Debt Metaphor in Agentic Engineering Age 202609 Edition
twada
PRO
6
2.7k
株式会社シーエーシー エンジニア向け会社紹介資料
cac
0
57k
AI に書かせたその API、 “信頼” できますか?
nagix
0
110
beyond jj: config & tools ecosystem
indirect
0
440
Slack上でインフラをトラブルシュートする! Agentic Platform Engineeringの第一歩
teru0x1
4
1.7k
Railsのように考える: See through the Master
snoozer05
PRO
3
870
アプリをもっと"iOSアプリっぽく"する小さな工夫 / Small Touches That Make Your App Feel More Like an iOS App
matsuji
1
900
生成AIエージェントを用いた、 手動テスト手順書から自動テストへの 変換手法の検討
magicpod
0
160
おい、エージェントを使って終わらせろ
nwiizo
0
260
人間はどの意思決定を手放せるのか
kawasima
14
6.9k
AIエージェントの自己改善をどう設計するか / How to Design Self-Improvement for AI Agents
22mi
23
15k
「守り」で活用するオンデバイスLLM 〜写ってはいけないを総力戦で防ぐ〜 / iOSDC Japan 2026
nakamuuu
0
160
Featured
See All Featured
Digital Ethics as a Driver of Design Innovation
axbom
PRO
1
420
Design of three-dimensional binary manipulators for pick-and-place task avoiding obstacles (IECON2024)
konakalab
0
590
Money Talks: Using Revenue to Get Sh*t Done
nikkihalliwell
0
500
Fireside Chat
paigeccino
43
4k
Design and Strategy: How to Deal with People Who Don’t "Get" Design
morganepeng
133
19k
The SEO Collaboration Effect
kristinabergwall1
1
560
Redefining SEO in the New Era of Traffic Generation
szymonslowik
1
420
Groundhog Day: Seeking Process in Gaming for Health
codingconduct
0
350
The SEO identity crisis: Don't let AI make you average
varn
0
560
How to Ace a Technical Interview
jacobian
281
24k
A designer walks into a library…
pauljervisheath
211
25k
Raft: Consensus for Rubyists
vanstee
142
7.7k
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 一回のみ表示