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
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
230
新卒社員が初めてやってみた!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
550
Tech Dojo Introduction Of Monitoring
norimuraz
0
550
Other Decks in Technology
See All in Technology
OpenTelemetryにおけるGoのゼロコード・コンパイル時計装について #fukuokago
quiver
0
210
AIコード生成×サプライチェーン攻撃 — PHPが直面する“二重の信頼問題
shinyasaita
0
460
StepFunctionsとGraphRAGを活用した暗黙知活用のためのRAG基盤
yakumo
0
140
アップデートで何が変わった?デモで学んで使いこなすIBM Bob2.0
muehara
0
230
生成AI×AWS CDK×AWS FISで"振り返れる"ミニGameDayをつくろう
yoshimi0227
2
530
伝票作成AIエージェントを支える、LLMOpsとインフラの選択肢 / AICon2026_takeda
rakus_dev
0
260
『モデル + ハーネス』で読み解く AIエージェント入門
oracle4engineer
PRO
2
170
探索・可視化・自動化を一本化 Amazon Quickでデータ活用スピードを上げる方法
koheiyoshikawa
0
170
AI時代におけるテストの基礎の再定義 / Rethinking the Fundamentals of Testing in the AI Era
mineo_matsuya
14
4.7k
“それは自分の仕事じゃない"を越えて行け
yuukiyo
1
520
10年目を迎えた「ABEMA」がどのように AI 活用を推進して、AI 駆動開発にシフトしているのか / How ABEMA, entering its 10th year, is promoting the use of AI and shifting toward AI-driven development
miyukki
0
370
キャリアLT会#3
beli68
2
240
Featured
See All Featured
svc-hook: hooking system calls on ARM64 by binary rewriting
retrage
2
370
The Psychology of Web Performance [Beyond Tellerrand 2023]
tammyeverts
49
3.5k
Tell your own story through comics
letsgokoyo
1
1k
Building Flexible Design Systems
yeseniaperezcruz
330
40k
Between Models and Reality
mayunak
4
380
SEOcharity - Dark patterns in SEO and UX: How to avoid them and build a more ethical web
sarafernandez
0
220
Redefining SEO in the New Era of Traffic Generation
szymonslowik
1
370
How to Build an AI Search Optimization Roadmap - Criteria and Steps to Take #SEOIRL
aleyda
1
2.1k
SEO for Brand Visibility & Recognition
aleyda
0
4.6k
Google's AI Overviews - The New Search
badams
0
1.1k
Product Roadmaps are Hard
iamctodd
55
12k
Easily Structure & Communicate Ideas using Wireframe
afnizarnur
194
17k
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 一回のみ表示