Slide 1

Slide 1 text

OpenShift.Run 2024 Podmanで推す OpenShift/Kubernetes入門 Shion Tanaka @tnk4on 2024/3/28

Slide 2

Slide 2 text

● 田中 司恩(タナカ シオン) / @tnk4on ○ https://tnk4on.github.io/ ● Red Hatのソリューションアーキテクト。Red Hatへの転職と同時に福岡に移 住。 ● 大阪芸術大学音楽工学コース卒。在学中よりメディア・アート、サウンド・アー ト作品の制作を行う。 ● コンテナに興味を持ち、OpenShiftやPodmanに関する情報をブログ、雑誌/ 書籍に多数投稿。「Podmanイン・アクション」の著者の1人。 ● 2020年頃よりPodmanコミュニティに参加、PR/Issue/翻訳などを行い、 Podmanの日本語情報発信を積極的に展開中。 ● 最近はPodmanを推す人 ● 音とテクノロジーが重なる領域が好物のデジタルクリエイター。 自己紹介

Slide 3

Slide 3 text

私が作りました 第一弾:メインテーマ 第二弾:AI編 第三弾:クラウドネイティブ編 OpenShift.Run 2024 ティザー動画

Slide 4

Slide 4 text

No content

Slide 5

Slide 5 text

最近のPodman関連イベント Podmanスペシャルイベント(2023/11/16) ▸ イベントページ https://openshift.connpass.com/event/298708/ ▸ アーカイブ https://www.youtube.com/watch?v=08MRsmz7g_0 Podmanハンズオン(2023/10/16) ▸ Podmanイン・アクションのコマンドを入力して学べる ハンズオンを実施 ▸ 12/8、12/14にはオンラインでハンズオンを実施

Slide 6

Slide 6 text

https://www.manning.com/books/podman-in-action https://www.shuwasystem.co.jp/book/9784798070209.html 「書籍」Podmanイン・アクション ▸ Podmanの生みの親であるDan Walshの原著「Podman in Action」 をレッドハットの有志で翻訳。 ▸ Podmanの基本からルートレスやコンテナセキュリティなど、 高度な内容までカバー。 ▸ 日本語で読めるPodman書籍の決定版

Slide 7

Slide 7 text

インフラエンジニアBooks Podmanイン・アクション Part 4 Podman Advanced Pod-01:DockerからPodmanへの移行 Podmanイン・アクションの次の一冊にオススメ 「DockerからPodmanへの移行を」テーマに、移行に必要な考え方やツールの紹 介、Podman machine、Podman Desktopのアーキテクチャーについて解説 ● 第1章:DockerからPodmanへ移行する時に必要な考え方、移行を助けるツール、 移行方法 ● 第2章:Docker Composeの移行に使用するツールやコマンドの紹介、Podへの移 行方法 ● 第3章:Podman Desktopの初期設定方法、各機能の紹介、WindowsとmacOSに おけるPodman machineの仕組み ● 第4章:PodmanとDockerを同時に使えるテスト環境としてFedora CoreOSの紹 介、セットアップ方法 技術書典オンラインマーケット(推奨/PDF入手可) https://techbookfest.org/product/sCq1qpfKnLLNRzaKCEJTi9 Amazon Kindleストア https://www.amazon.co.jp/dp/B0CP8Y54CB 入手先👉

Slide 8

Slide 8 text

▸ Podman v5 ▸ PodmanからOpenShift/Kubernetesへ ・ YAMLファイルからローカルにPodman Podをデプロイする ・ Podman PodからOpenShiftにPodをデプロイする アジェンダ

Slide 9

Slide 9 text

Podman v5

Slide 10

Slide 10 text

Podmanとは https://www.redhat.com/ja/topics/containers/what-is-podman Podmanとは ▸ コンテナを構築、管理、実行する次世代のコンテナエンジン ▸ Open Container Initiative(OCI)を標準フォーマットとして採用 ▸ Dockerとの互換性(コマンドライン、Dockerイメージ、Compose、 Docker互換API、など) ▸ Red Hatの開発チームを中心にOSSで開発 ▸ RHEL 8以降に標準搭載(RHEL 8以降はDocker非サポート) podman desktop

Slide 11

Slide 11 text

開発から実稼働環境まで柔軟なインターフェイスを提供 RESTful API systemd Quadlet * podmanはKube APIの多くをサポートしています https://docs.podman.io/en/latest/markdown/podman-kube-play.1.html RHEL system role (Ansible) Kubernetes* podman desktop Command Line Interface (CLI) Dev Prod Web Console (cockpit-podman) Podmanとは

Slide 12

Slide 12 text

https://blog.podman.io/2024/03/podman-5-0-has-been-released/

Slide 13

Slide 13 text

https://github.com/containers/podman/pull/21670

Slide 14

Slide 14 text

Podmanから OpenShift/Kubernetesへ

Slide 15

Slide 15 text

PodmanおよびPodman Desktopがカバーする領域 OpenShift Local / Minikube / K3s / Kind Kubernetes Cluster Node Node Node Pod Pod Pod Managed Services Self-Managed (OCP) OpenShift Remote and Managed Services Container Docker-Compose Pod Podman Engine Ingress/Router (ROSA,ARO,OSD) Podmanの実行環境とPodman Desktop 共有の開発環境、 本番実⾏環境 開発者のローカル実⾏環境

Slide 16

Slide 16 text

https://tracks.redhat.com/l/2023-12-6-rhel-101-p 過去のウェビナー:RHEL 101(Podman編)

Slide 17

Slide 17 text

PodmanおよびPodman Desktopがカバーする領域 OpenShift Local / Minikube / K3s / Kind Kubernetes Cluster Node Node Node Pod Pod Pod Managed Services Self-Managed (OCP) OpenShift Remote and Managed Services Container Docker-Compose Pod Podman Engine Ingress/Router (ROSA,ARO,OSD) Podmanの実行環境とPodman Desktop 共有の開発環境、 本番実⾏環境 開発者のローカル実⾏環境

Slide 18

Slide 18 text

ネクストステップ ▸ ローカルで開発したコンテナをOpenShift上に展開する ▸ ローカル環境からシームレスにOpenShift上でコンテナ開発を行う → Podman Desktopを使いシンプルで高度な開発環境を構築 OpenShift Local / Minikube / K3s / Kind Kubernetes Cluster Node Node Node Pod Pod Pod Managed Services Self-Managed (OCP) OpenShift Remote and Managed Services Container Docker-Compose Pod Podman Engine Ingress/Router (ROSA,ARO,OSD) 本資料の範囲

Slide 19

Slide 19 text

OpenShiftにデプロイするまでの作業フロー ▸ アプリのソースコードを書く ▸ Podmanでコンテナイメージをビルド ▸ コンテナをPodman Podとして実行する ▸ Podman PodをOpenShiftにデプロイする → YAMLを書かずにGUIのみでできる(Podman Desktopの機能) 事前に作業済み 本資料の内容 本資料ではOpenShift環境はDeveloper Sandboxを使用。 (Podman Desktopでは通常のOpenShiftも使用可能)。

Slide 20

Slide 20 text

OSHIボタン:アーキテクチャー

Slide 21

Slide 21 text

OSHIボタン:Webアプリ

Slide 22

Slide 22 text

ボタンを押す回数(全ユーザーの合計数)が、n回(本番では50回)ごとに、 Gather上の同一会場にいるユーザー全員のリアクション(Emote)が「推」に なる。リアクションは3秒間表示される。

Slide 23

Slide 23 text

YAMLファイルから ローカルにPodman Podを デプロイする

Slide 24

Slide 24 text

No content

Slide 25

Slide 25 text

No content

Slide 26

Slide 26 text

No content

Slide 27

Slide 27 text

No content

Slide 28

Slide 28 text

No content

Slide 29

Slide 29 text

No content

Slide 30

Slide 30 text

Podman Podから OpenShiftにPodを デプロイする

Slide 31

Slide 31 text

https://developers.redhat.com/developer-sandbox Developer Sandbox 30日間無料で使えるOpenShift環境 ● Admin権限は無し ● 使えるリソース ○ 14 GB RAM ○ 40 GB storage ● Red Hatアカウントの取得のみで 作成可能

Slide 32

Slide 32 text

No content

Slide 33

Slide 33 text

No content

Slide 34

Slide 34 text

No content

Slide 35

Slide 35 text

No content

Slide 36

Slide 36 text

No content

Slide 37

Slide 37 text

No content

Slide 38

Slide 38 text

No content

Slide 39

Slide 39 text

No content

Slide 40

Slide 40 text

No content

Slide 41

Slide 41 text

No content

Slide 42

Slide 42 text

No content

Slide 43

Slide 43 text

No content

Slide 44

Slide 44 text

No content

Slide 45

Slide 45 text

No content

Slide 46

Slide 46 text

No content

Slide 47

Slide 47 text

No content

Slide 48

Slide 48 text

No content

Slide 49

Slide 49 text

● Kubernetes Services: ○ Replace .hostPort exposure on containers by Services. It is the recommended way to expose ports, as a cluster policy may prevent to use hostPort. ● Restricted Security Context: ○ Update Kubernetes manifest to respect the Pod security restricted profile. ● Expose Service Locally Using Kubernetes Ingress: ○ Create an Ingress to get access to the local ports exposed, at the default Ingress Controller location. Example: On default kind cluster created with Podman Desktop, it will be accessible at 'localhost:9090'. Requirements: Your cluster must have an Ingress Controller. ● Kubernetes Context: Deploy to Kubernetes画面に記載の内容

Slide 50

Slide 50 text

※OpenShift側とはデプロイ完了後の情報が同期さ れないので、表示上はこのまま更新されない

Slide 51

Slide 51 text

No content

Slide 52

Slide 52 text

Developer Sandbox上にデプロイされたPod

Slide 53

Slide 53 text

まとめ

Slide 54

Slide 54 text

まとめ 推しは、 押しであり、 OpenShiftである! まとめ

Slide 55

Slide 55 text

linkedin.com/company/red-hat youtube.com/user/RedHatVideos facebook.com/redhatinc twitter.com/RedHat Thank you