Upgrade to Pro — share decks privately, control downloads, hide ads and more …

1時間でわかるIBMハンズオンセミナー OpenShiftとコンテナ基礎 2020/05/29

osonoi
May 26, 2020
270

1時間でわかるIBMハンズオンセミナー OpenShiftとコンテナ基礎 2020/05/29

osonoi

May 26, 2020
Tweet

Transcript

  1. ⽬次 1. コンテナとは 2. OpenShift(Kubernetes)とは 3. ハンズオン環境 4. コンテナーハンズオン 5.

    OpenShiftハンズオン 6. OpenShift上にAIアプリをデプロイ(オプション)
  2. コンテナを使った開発の流れ Dockerfileなど Docker イメージなど コンテナー レジストリ マニフェストで コンテナ⾃体の 詳細を記述 開発者

    コンテナー イメージ作成 イメージの 登録 開発者 アプリ実⾏ アプリ開発 3段階のプロセス
  3. Kubernetesとは 13 コンテナーの運⽤実⾏と管理を⾏うオーケストレーションツール • コンテナーが⼤量になってくると管理しきれない部分をカバー • 複数のDockerホストの管理 • 死活監視 •

    スケジューリング • スケーリング • 障害時のリカバリー • アプリ実⾏に必要なインフラリソースを管理 • 永続的なストレージ • ネットワーク • クレデンシャル情報 etc… • 宣⾔的設定モデル • 「あるべき状態」を記述すると、それを実現し続けようとしてくれる • 障害時も⾃動で復旧作業を実施
  4. © 2019 IBM Corporation OpenShiftは、Kubernetesとの互換性を維持しながら、CICD機能を強化、開発者 に代わって、ビルド、リポジトリ登録、デプロイを⾃動実⾏します。 OPENSHIFT 機能拡張 OpenShift CICD利⽤

    アプリケーション (コンテナ) Kubernetes アプリケーション (コンテナ) Ubuntu / CentOS… Linux Kubernetes アプリケーション (コンテナ) コンテナ ランタイム Linux OS コンテナ オーケストレーション Kubernetesの標準機能 で構築したアプリケーション どちらでも 動作可能 RHEL / RHCOS コンテナ ランタイム OpenShiftとは
  5. Projects vs. Products Production-Grade Open Source Project quarterly minor releases,

    no Long Term Support community support platform certification: (AKS, EKS, GKE, IKS) core framework / limited security platform or user responsible to integrate beyond core Production-Grade Open Source based Product quarterly releases, support for major release 3+ years enterprise support ecosystem certification: platform and app containers k8s core plus abstractions / dashboard / security opinions and integration of common features
  6. 3.ハンズオン環境 Dockerハンズオン PC, Mac上のDocker Desktopを 使⽤。 (Docker Desktopのインス トールが必要になります) 3-1を参照

    オンラインサービス”Play with Docker”を利⽤する。 (ソフ トウェアのインストールの必 要がありません。ただし最⻑ 連続使⽤が4時間です) 3-2を参照 OpenShiftハンズオン IBM Cloudのオンライン画⾯で⾏います。ソフトウェアのインス トールは必要ありません。IBM IDが必要になります。(今回⽤意 したOpenShiftのサービスとIBM IDの紐付けを⾏います。費⽤は かかりません。)
  7. 3-1. Dockerコンテナー(PC, Mac) 3-1 Dockerデスクトップのインストールの確認 *Windows編 スタートからWindows PowerShell-> Windows PowerShellを選択してください。

    次に”docker –version” と入力してください。 以下のようにバージョン名が出てくれば大丈夫です。
  8. イメージ Docker Hub 各クラウドサービスのレジストリーサービス ユーザー作成レジストリー イメージ Docker pull Docker push

    コンテナー 実行中 コンテナ 停止 イメージリスト表示 Docker images 実行中リスト表示 Docker ps Docker run Docker commit Docker stop Docker start 削除 Docker rm 削除 Docker rmi 補⾜︓コンテナーのライフサイクル docker hub リスト表示 Docker ps -a
  9. Container Registry Container Registryはコンテナ・イメージを保管しておくための領域であり、Docker Hubはそのう ちの一つです。Container Registryは様々な種類があり、環境・用途によって使い分けが可能で す。 種類 概要

    例 Docker Hub 様々なイメージが保管・公開されている。 公開されているイメージを取得したり、作成したイメージを保管し たりすることができる。 料⾦を⽀払うことで、privateなレジストリとしても利⽤可能。 - クラウド・サービス 様々なクラウド・ベンダーなどが提供しているサービス。 各ユーザーのPrivateな領域として利⽤可能。 料⾦によって、サイズやアクセス回数の制限がある。 IBM Cloud Container Registry Amazon ECR GCP Container Registry Azure Container Registry OSS ユーザー固有の環境に独⾃で作成するRegistry。 環境・導⼊作業などは必要だが、基本的に⾃由に利⽤可能。 NEXUS OCR (OpenShift Container Registry) また、各イメージはContainer Registryに作成された領域であるリポジトリ内に保存され、形式は下記の通りです。 <リポジトリ名>/<イメージ名>(:<tag>) (例: ibmcom/websphere-liberty → ibmcomリポジトリ内のwebsphere-libertyイメージ)
  10. イメージの取得 docker hubに公開されているイメージを取得し、内部リポジトリに保管します。 l イメージをdocker hubからpullします。 > docker pull nginx

    docker hub上のgihyodockerリポジトリ内のechoイメージの中で、 latestタグがつけられているものを取得する。 l 取得したイメージを確認します。 >docker images | grep nginx l (option) コンテナー⼀覧を確認します。 >docker ps この時点では、docker containerは作成されていません。 内部リポジトリー (PC, Macなど) docker hub pull イメージ イメージ Webサーバーnginxを立ち上げてみましょう。 *イメージのダウンロードにはインターネット回線の状況によりかなり時間がかかる場合があります。また容量もあるの でテザリングでのダウンロードをする場合はお気をつけください。
  11. コンテナの起動 先ほど取得したイメージをコンテナ化し、実⾏してみましょう。 l イメージをコンテナ化して実⾏させます > docker run -d -p 80:80

    nginx -d:バックグラウンドで実⾏ -p:ポートフォワーディング l コンテナ⼀覧を確認します。 >docker ps $ docker container run -d -t -p 9000:8080 gihyodocker/echo:latest bab5bec32ab46be1d8387b59166ad94ee0bedebbc0b2a0641dda7666eddcfad1 Docker Runtime(Docker desktop) イメージ run コンテナ ポートフォワーディング(-p 80:80の場合) Docker Engine コンテナAの80ポートを 80番で公開 コンテナA 公開port 80 80 80 ポートフォワーディング アクセス ユーザー ユーザー PC, Mac ブラウザ
  12. コンテナー、イメージの削除 それでは、使ったコンテナーの停⽌・削除と、イメージの削除をします。 l コンテナを停⽌します。 >docker stop <コンテナID> l コンテナのSTATUSを確認してみましょう。 >docker

    ps >docker ps -a 「docker ps」は、“稼働しているコンテナ”のみを表⽰します。 停⽌中のコンテナを⾒るために「-a」オプションを付与します。 l コンテナを削除します。 >docker rm <コンテナID> 削除前後で、コンテナが存在するか確認しましょう l イメージを削除します。 >docker rmi nginx 削除前後で、イメージが存在するか確認してみましょう >docker images | grep nginx
  13. K8s Deploy Dockerhub等 Build docker レジストリ Dockerfile ソースコード (Java, js,

    Py..etc) Catalog template (JSON/YAML) s2i Build lOpenShiftへの⼊⼒は様々なパターンがあります OpenShiftへの様々な⼊⼒のパターン Github等 file clipboard (folder) 【Dockerfile,ソース,Templateの置き場所】 公開されているイメージをそのまま取り込む ⾃作イメージを取り込む (OpenShift上でBuild) 既存イメージにソースを注⼊ 直接実⾏ カタログに登録 DevOps Pipeline アプリやミドルウエアといった直接的なソースではなく、 アプリやミドルウエアをOpenShift上どう動かすか、と いう構成/定義類を雛型として記述したものです
  14. K8s Deploy Dockerhub等 Build docker レジストリ Dockerfile ソースコード (Node.js) Catalog

    template (JSON/YAML) S2I Build (OpenShift上でBuild) DevOps Pipeline アプリやミドルウエアといった直接的なソー スではなく、アプリやミドルウエアを OpenShift上どう動かすか、という構成/定義 類を雛型として記述したものです 今回のハンズオン CatalogからnginxをDeploy Github等
  15. 5. OpenShift ワークショップ 準備 1. ワークショップ⽤のIBM Cloud環境にご⾃⾝の IBM Cloud IDを関連付ける

    2. OpenShift上にnginxをデプロイ 注意事項 ・ブラウザはFirefox, Chromeをご利⽤ください ・本ワークショップ⽤のIBM Cloud環境はセミナー開催⽇を 含めて約2⽇間限定でお使いいただけます