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

OPENSHIFT_START_LEARN.pdf

kenya888
December 04, 2020

 OPENSHIFT_START_LEARN.pdf

kenya888

December 04, 2020
Tweet

More Decks by kenya888

Other Decks in Technology

Transcript

  1. CONFIDENTIAL designator V0000000 アジェンダ 1. かけ足!! コンテナとKubernetes, OpenShift おさらい(10分) 2.

    今日のハンズオン内容の説明(5分) 3. やってみよう(1) (5分) 4. やってみよう(2) (30分) 5. まとめ (5分)
  2. CONFIDENTIAL designator V0000000 4 OPTIONAL SECTION MARKER OR TITLE 1.

    かけ足!! コンテナとKubernetes, OpenShift とは
  3. CONFIDENTIAL designator V0000000 アプリケーションワークロードの変遷 すべてをコンテナ化することがゴールではなく、ワークロードに応じた使い分けが必要 Workload BareMetal Virtual Machine Container

    Time 2010 2020 コンテナ化が目的ではなく、何を目的にコンテナ化するのかが重要 0% 100% We are HERE 更新頻度の高い ワークロード (ビジネスに柔軟に対応 ) 更新頻度の低い ワークロード 2030 業務効率が企業価値となる時代 ビジネス変化が企業価値となる時代
  4. CONFIDENTIAL designator V0000000 仮想マシンの運用 コンテナの運用 https://kubernetes.io/docs/concepts/overview/what-is-kubernetes/ コンテナと仮想マシンの違いとは Virtual Machine vs

    Containers コンテナ化することで、環境依存や役割を切り離す インフラ運用 責任範囲 (環境固有) アプリ開発 責任範囲 インフラ運用 責任範囲 (環境固有) アプリ開発 責任範囲
  5. CONFIDENTIAL designator V0000000 7 コンテナ化に伴うアプリケーションの取り扱い コンテナ化によって、アプリケーションへの考え方が変わります  コンテナはLinuxカーネルのみを取り扱い、必要なライブラリ はすべてコンテナの「ビルド時」にパッケージ化されます。  また、設定など環境に応じて異なるものや、アプリケーション が利用するデータは、「ランタイム時」に提供されます。

    (環境依存情報) (アプリケーションデータ)  ビルドされた後、異なる環境間でコンテナを変更することは 想定されていません。つまり、環境ごとにコンテナの作成や修 正を行うのではなく、ランタイム時の疎結合化された設定を環 境によって使い分けます。 コンテナ化されたアプリケーションは不変 (Immutable Architecture)
  6. CONFIDENTIAL designator V0000000 8 コンテナによるリソース/責任分離 App Libraries Guest OS App

    Libraries アプリケーション 開発担当 インフラ 運用担当 Hypervisor cloud dependency ・アプリ開発の迅速なライフサイ クル ・頻繁なリリース更新 ・テストの自動化 ・自由な開発環境 開発スピードの向上 ・Guest OSの定期的なバージョ ンアップ (仮想マシンイメージの 更新) ・ハードウェア更改対応 ・アプリ特性依存のインフラ設計 システムの安定性 Container Engine Any Infrastructure アプリケーション 開発担当 インフラ 運用担当 ・アプリ開発の迅速なライフサイ クル ・頻繁なリリース更新 ・テストの自動化 ・自由な開発環境 開発スピードの向上 ・動的な基盤の復旧 ・サービス指標の提供 ・Immutableな運用環境 ・アプリ特性に依存しない基盤 システムの安定性 Dev vs Ops DevOps 仮想マシンの運用 コンテナの運用
  7. CONFIDENTIAL designator V0000000 9 なぜコンテナ化するのか コンテナ化する理由が明確でないと仮想化と変わらない 環境を意識しない可搬性 Run Anywhere アプリケーションの再現性

    Immutable Architecture リソース/責任の分離 Resource Isolation App Libraries Guest OS 仮想マシン App Libraries コンテナ Any Infrastructure Any Infrastructure 一貫した環境の維持 Consistent Environment どこでも実行出来るアプリ Application Portability 開発スピードと安定性の両立 Agility & Reliability Container Engine
  8. CONFIDENTIAL designator V0000000 https://www.youtube.com/watch?v=LymzLHRbQdk コンテナオーケストレーターが求められる背景 従来型の運用体制のままでは、結局コンテナ化したところでリソース把握や管理に追われる 固有のアプリケーションやインフラリソースを手作業で対応する時代は終焉 IT Operation (Manual)

    コンテナ運用に必要な作業 コンテナやクラスタシステムを管理するには、 管理者の負担が大きくなりがち ・異常を継続的にチェック ・属人的な障害復旧オペレーション ・手動によるのコンテナ変更作業 ・アプリケーションごとの設定管理 ・ビジネス変化に応じた適切なリソース調整
  9. CONFIDENTIAL designator V0000000 Kubernetesとは Kubernetesによる総合的なコンテナ管理  Kubernetes(k8s)とは、コンテナの運用操作を自動化 するオープンソースのコンテナオーケストレーションで す。  Kubernetes を使用すると、コンテナ化されたアプリ

    ケーションのデプロイやスケーリングに伴う、手動プロセ スをなくすことができる。  Kubernetes は元々、Google のエンジニアによって開 発および設計されました。  Googleでは毎週20億以上のコンテナをデプロイして おり、これらすべては内部プラットフォームである 「Borg」 から行われています。
  10. CONFIDENTIAL designator V0000000 13 KubernetesのValue Declarative Configuration Self-Healing Auto Scaling

    リソースの抽象化 自己回復性 自動スケーリング  クラウドプロバイダごとに異なる 実装やサービスの詳細を知る必 要がなく、Kubernetesは開発者 を特定のインフラ依存から開放し ます。  クラウド上で高度なポータビリ ティを担保できます。   Kubernetesは、現在のシステ ム状態が望ましい状態に一致す るように動作します。  はじめにシステムを初期化する だけでなく、その後も継続的にシ ステムが不安定になった場合や、 信頼性に影響を及ぼす障害時 に、もとの状態に動的に戻しま す。  迅速で簡単なロールバックで、 信頼性の高い頻繁なコンテナイ メージのビルドとデプロイを提供 します。  Web ベースのサービスは数時 間ごとに機能改善されることが珍 しくなく、新しいコンポーネントや 機能を開発しデプロイできます。
  11. CONFIDENTIAL designator V0000000 Node Node Node Node 14 リソースの抽象化 Declarative

    Configuration Declarative Configuration apiVersion: apps/v1 kind: Deployment metadata: name: test-nginx #コンテナの名前 spec: selector: matchLabels: app: nginx #テンプレートを指定 replicas: 3 #レプリカ数(Podの数) template: #作成されるPodのテンプレート metadata: labels: app: nginx spec: containers: - name: nginx image: nginx:latest ports: - containerPort: 80 #ポート番号 クラウドプロバイダごとに異なる実装やサービスの詳細を知る必要がなく、 宣言的にインフラリソースを管理できます。 Deploy Infra Resources
  12. CONFIDENTIAL designator V0000000 Node Node Node Node 15 自己回復性 Self-Healing

    Self-H ealing Kubernetesは、現在のシステム状態が望ましい状態に一致するように動作します。 Replicas = 3 Replicas = 4 Auto-Healing Node Error 望ましい状態(設定した値) 起動状態(稼働している値)
  13. CONFIDENTIAL designator V0000000 16 自動スケーリング Auto Scaling Auto Scaling Node

    Node Node Auto Scale Load Balancer 動的に負荷状況に応じたスケールアウトや、不要なリソースを縮退します。
  14. CONFIDENTIAL designator V0000000 正常稼働 障害検知 状態確認 復旧作業 正常確認 正常稼働 障害検知

    動的復旧 Container Orchestration 不具合修正 or 再構築 正常確認 自己修復 (Self-Healing) 個別対応 (Customize) 17 クラウドネイティブとは Immutableな管理を行うことが求められる 「壊れない」システムから、 「いつでも回復できる」システムへの価値観の転換
  15. CONFIDENTIAL designator V0000000 https://kubernetes.io/ja/docs/concepts/overview/what-is-kubernetes/ Kubernetesが行わないこと Kubernetesは開発者の基盤を構築するための構成要素を提供しますが、 開発コンポーネントは、ユーザーの選択と柔軟性を維持します。 ・サポートするアプリケーションの種類を限定しません。 アプリケーションをコンテナ内で実行できる場合は、Kubernetes上でもうまく動作するはずです。 ・ソースコードのデプロイやアプリケーションのビルドを行いません。

     継続的インテグレーション、デリバリー、デプロイ(CI/CD)ワークフローは、技術選定がそうであるように、組織の文化や好みによって決まるからです。 ・アプリケーションレベルの機能は組み込みでは提供しません。  ミドルウェア(例: Message Buses)、データ処理フレームワーク(例: Spark)、データベース(例: mysql)、キャッシュ、ストレージシステム(例: Ceph) ・ロギング、モニタリング、アラートソリューションへの指示は行いません。  概念実証(PoC)としていくつかのインテグレーション、およびメトリックを収集およびエクスポートするためのメカニズムを提供します。 ・設定言語/システムを提供も強制もしません。  任意の形式の宣言仕様の対象となる可能性がある宣言APIを提供します。 ・基盤のインフラ構成、保守、管理、またはセルフヒーリングシステムは提供しません。
  16. CONFIDENTIAL designator V0000000 19 Kubernetesの適用範囲 (Platform on Platform) Kubernetesはクラウドの「Linux」 or

    「Kernel」 CI/CD Workload Serverless Workload Machine Learning Workload IoT Workload Workload Abstraction Any Applications Resource Abstraction Any Resources Virtual Private cloud Bare metal Public cloud Edge 開発コンポーネントは、 ユーザーの選択と柔軟 性を維持
  17. CONFIDENTIAL designator V0000000 Enterprise Linux CoreOS 21 Red Hatが目指すアプリケーションデプロイ 新しいアプリケーションデプロイの展開

    Cloud-native apps AI/ML, Functions... Traditional apps サービス提供に対して、環境を意識しない世界 Virtual Private cloud Bare metal Public cloud Edge Workload Abstraction
  18. CONFIDENTIAL designator V0000000 OpenShiftはKubernetesを補完する付加価値機能を提供 運用プロセスを含めたポータビリティの実現 AUTOMATED OPERATIONS CLUSTER SERVICES APPLICATION

    SERVICES DEVELOPER SERVICES Middleware, Service Mesh Functions, ISV Monitoring, Chargeback Registry, Logging Automated Builds, CI/CD, IDE 22 Any Infrastructure どの環境でも、迅速かつ 信頼性の高いOS どの環境でも、同様の手 順でアプリケーションを稼 働 どの環境でも、自動化さ れた運用プロセスを実現 Virtual Private cloud Bare metal Public cloud Edge
  19. CONFIDENTIAL designator V0000000 Automated operations 23 https://cloud.ibm.com/docs/openshift?topic=openshift-security&locale=ja 堅牢化されたコンテナ実行環境 OpenShift Core

    supports Developer Productivity & Cluster Management for Enterprise Kubernetes デファクトスタンダードなコンテナオーケストレーション Installation Configuration Cluster Scalability Cluster Upgrade Security GUI Network Enterprise Linux CoreOS Physical Virtual Private Public Any infrastructure certified Cluster Management 高度なセキュリティと監査、可用性、管理の容易性 Cluster services monitoring, showback, registry, logging Application services middleware, functions, ISV Service mesh Developer services dev tools, automated builds, CI/CD, IDE Declarative Configuration Self-Healing Auto Scaling コンテナスタックのあらゆるレベルとアプリ ケーションライフサイクル全体のセキュリティ に重点を置いている。 Trust with Red Hat.
  20. CONFIDENTIAL designator V0000000 システムの自律運用化 Operatorによる、システム全体の自律運用 正常稼働 障害検知 状態確認 復旧作業 正常確認

    正常稼働 障害検知 動的復旧 不具合修正 or 再構築 正常確認 自己修復 (Self-Healing) 個別対応 (Customize) いままで人が対応してきた障害対応を自律的に回復する 『Operator』 Automated operations Manage with simplicity.
  21. CONFIDENTIAL designator V0000000 https://www.openshift.com/blog/enterprise-kubernetes-with-openshift-part-one OpenShift Core Value(For Developer/Operator) 堅牢化された コンテナ実行環境

    システムの自律運用化 コンテナアプリの 本番適用 運用を自律化し、開発者のイノベーションを加速する基盤 自動インストールとKubernetes 運用の自律化はOpenShiftの 主要な機能であり、管理、アップ グレードを支援し、難易度の高 いコンテナプラットフォームの提 供を容易にします。 ・Operator 開発者がコードの提供とすぐに 使える豊富なサポートを利用す ることで、開発作業に集中でき る環境を提供します。 ・AMT (Application Migration Toolkit) ・ISV ・CI/CD Pipeline ・Service Mesh Service ・Serverless Service 20年以上にわたってビジネスク リティカルなアプリケーション向 けのOSを提供してきた経験を、 Trustedなコンテナ基盤に活用 しています。 ・RHEL CoreOS ・Container Catalog ・UBI Trust with Red Hat. Manage with simplicity. Build fast. Ship first.
  22. CONFIDENTIAL designator V0000000 今日のハンズオンでやること katacodaを活用した、OpenShiftの自習トレーニングサイト https://learn.openshift.com を使って、OpenShift でのアプリケーションデプロイを体験します コースは以下の3つ順番にやってみます。 https://learn.openshift.com/introduction/cluster-access/

    OpenShiftクラスタにログインしてみます (10min) https://learn.openshift.com/introduction/deploying-images/ OpenShiftで、コンテナイメージ化されたアプリケーションをデプロイしてみ ます(10min) https://learn.openshift.com/introduction/deploying-images/ OpenShiftで、コンテナを意識せず、アプリのソースコードからアプリケー ションをOpenShiftにデプロイします(10min)
  23. CONFIDENTIAL designator V0000000 いったん、いっしょにやってみよう!! ターミナルと、OpenShift GUIコンソールの 切り替えタブ 手順のテキスト 簡単な英語 Google翻訳とか使ってもいいですよ

    黒いコマンド部分をクリックすると 自動コピペされて楽チンですが 自分でタイプしてみるのが やった感じがあっていいと思います 最後までいったら"CONTINUE"ボタンを押そう
  24. CONFIDENTIAL designator V0000000 Linuxコンテナが... もし、素朴なコンテナ、みたいな自習を したい人がいたら、Red Hat Enterprise Linux 8

    の自習サイトもおススメです!! https://bit.ly/rhel8lab-jp これがおすすめ https://bit.ly/2VzIEx5
  25. CONFIDENTIAL designator V0000000 まとめ おめでとうございます!! これであなたも「ん?OpenShift? 知ってるよ?k8s活用したアプリケーションライフ サイクル基盤でしょ?俺アプリデプロイしたことあるけど?手元でコンテナ作らなくていいし、アプリ開発目 線で使えるしカンタンだよね」になりました 今回うまくできなかったり、時間が足りなくても、今日紹介した自習サイトは、いつでもあとで試すことができ

    ますので、他のコースも含めて、ガンガンいじってみてください!! OpenShift はアプリ開発者が安心してアプリ開発に集中するためのアプリケーションライフサイクル基盤で す。コンテナ、Kubernetes, Operator といった技術を使いながら、Red Hat の安心のサポートが得られま す!! あなたのアプリケーション開発ライフのお供にぜひ!!
  26. CONFIDENTIAL designator V0000000 [イベント告知]
 OpenShift Commons Gathering
 Japan 2020 のお知らせ


    お申し込みサイト https://red.ht/34VBpVG 2020/12/10(木) OpenShift活用の最新技術か ら様々な事例まで満載のオン ラインイベントです!! 40
  27. CONFIDENTIAL designator V0000000 linkedin.com/company/red-hat youtube.com/user/RedHatVideos facebook.com/redhatinc twitter.com/RedHat Red Hat is

    the world’s leading provider of enterprise open source software solutions. Award-winning support, training, and consulting services make Red Hat a trusted adviser to the Fortune 500. Thank you 41