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

OpenShift_BootCamp_1章_概要

taketomsho
March 07, 2022
39

 OpenShift_BootCamp_1章_概要

taketomsho

March 07, 2022
Tweet

Transcript

  1. 物理サーバー 1.コンテナとは 3 • 仮想化技術のひとつ • ホストOS内の空間を分けることで、CPUやメモリなどのリソースを隔離し、 仮想的な空間内でアプリケーションを独立に動作させることが可能 ハードウェア ハイパーバイザー

    ハードウェア OS コンテナエンジン コンテナ仮想化 ハードウェア OS ハイパーバイザー仮想化 仮想化なし アプリ アプリ アプリ アプリ 仮想マシン(VM) ゲストOS アプリ アプリ コンテナ bin/lib アプリ コンテナ bin/lib アプリ コンテナ bin/lib アプリ コンテナ bin/lib アプリ 仮想マシン(VM) ゲストOS アプリ アプリ bin/lib bin/lib bin/lib ホストOS © 2021 IBM Corporation
  2. コンテナ管理の限界 © 2021 IBM Corporation 6 大規模システムの構築・運用にかかる負荷 • 継続的なコンテナの死活監視、再起動 •

    揮発性データの保持 • IPアドレス、アクセス経路の管理 • ビジネス変化に応じた適切なリソース調整 • 動的に生成/破棄されるコンテナのネットワークアクセスの維持 ... など → オーケストレーターを利用して、効率的/継続的にアプリケーションを運用
  3. Kubernetesのオーケストレーション機能 7 © 2021 IBM Corporation リソース管理 (スケジューリング) リソース要求と可用性を保ち、また、制約に基づき、自動的にコンテナの配置を決定。 リソースの有効利用を実現。

    自己修復 (セルフ・ ヒーリング) 障害コンテナの再起動、ノード障害時には、コンテナの再配置の実施。 また、ユーザー定義のヘルス・チェックに応答しないコンテナの削除も実施可能。 水平スケーリング コマンドやUIから簡単にアプリケーションのスケール・アップ / ダウンが可能。 また、CPU使用率などに基づく、自動スケーリングも可能。 負荷分散 (サービス・ ディスカバリー) 複雑なサービス・ディスカバリー・メカニズムのアプリケーションへの組み込みは不要。 Kubernetesは、コンテナの集合に単一のDNSネームを付与し、負荷分散を実現。 ロールアウトと ロールバック アプリケーションの変更を順番に適用。(ローリングアップデートなど) 何か不具合が発生した場合には、ロールバックも可能。 構成管理 コンテナを実行・管理するために必要なメタデータが含まれる。 パスワードやOAuthトークン、SSHキーのような機密情報も管理が可能。
  4. 用語 解説 Kubernetes クラスタ "Master"と"Node"から構成される。 ・Master (クラスタを管理) - Nodeリソース監視 -

    起動Nodeの選択、障害時の再配置 など ・Node (アプリケーションを起動) - Application Containerを稼働させる場所 etcd Kubernetes のプライマリーデータストア。 分散Key-Valueストア形式で保管する。 - クラスターに期待される状態 - 現在の状態 - RBAC (Role Based Access Control) - アプリケーション環境情報 Kubernetesの主要な概念 (1) 8 © 2021 IBM Corporation
  5. 用語 解説 Pod 最少の管理単位。(作成/開始/停止/削除の単位) - Podの中には 1つ以上 の コンテナが含まれる -

    Pod単位でスケールイン・スケールアウトする - PodごとにIPアドレスを持つ(Pod生成の度に新し いアドレスを付与) Node Podが稼働するワーカーマシン。 - 仮想/物理サーバのどちらでも良い - Node内には複数のPodを持つことができる Kubernetesの主要な概念 (2) Node Pod 10.1.20.1 10.1.20.5 コンテナ ボリューム Pod Pod 9 © 2021 IBM Corporation
  6. 用語 解説 ReplicaSet Pod が常に正しい数だけ動くようにする。 ノード障害やネットワーク分断などの障害時、 自動的に他のノードに再割当てされる。 - Podの必要稼働数を定義 -

    アサイン先ノードはSchedulerが管理 Deployment PodやReplicaSetを管理する為のオブジェクト。 バージョンの配置方法を定義する。 アップデート時には自動的に新しいReplicaSet が作成され、ストラテジー(例:ローリングアッ プデートなど)に従ってPodが置き換えられる。 通常、Deploymentリソースを定義し、間接的 にReplicaSetやPodを作成する。 イメージ名 レプリカ数 ラベル CPU メモリー ストレージ ReplicaSet Pod1 Pod2 イメージ名 レプリカ数 ラベル バージョン ストラテジー Deployment v1 v2 Pod1 Pod2 Pod1 Pod2 10 © 2021 IBM Corporation Kubernetesの主要な概念 (3)
  7. 用語 解説 Service Pod障害やPodの複製に対応するための抽象概念。 Podの集合で実行されているアプリケーションを ネットワークサービスとして公開する。 -永続的な内部IPアドレスとホスト名を提供 -複数のタイプから選択 ClusterIP /

    NodePort / LoadBalancer / ExternalName Ingress クラスター内のServiceに対する外部からのアク セスを管理するAPIオブジェクト。 負荷分散、SSL終端、名前ベースの仮想ホスティ ングの機能を提供する。 10.1.1.1 10.1.1.2 10.1.1.3 Service ロール: Back-End ロール: Back-End ロール: Back-End http://203.0.1.1 Ingress 10.10.10.4 ロール: Front-End 11 © 2021 IBM Corporation Kubernetesの主要な概念 (4)
  8. © 2021 IBM Corporation 14 OpenShiftとは(Red Hat OpenShift Container Platform(OCP))

    Cluster services monitoring, showback, registry, logging Application services middleware, functions, ISV Service mesh Developer services dev tools, automated builds, CI/CD, IDE Automated operations Enterprise Linux CoreOS Physical Virtual Private Public CaaS↔PaaS | Faas Best IT ops experience Best developer experience certified 必要なものがすぐに使える 1. 統合された自動化アーキテクチャ 2. Kubernetesベースでワークロードをシームレスに実行 3. クラウドインフラからOS,アプリケーションサービス まで自動インストール 4. アプリケーションの更新が容易 5. 必要なリソースをオートスケーリング 6. エンタープライズ向けクラウドネイティブの実装 Red Hat OpenShift Container Platform Any Infrastructure Kubernetesをエンタープライズ向けに提供するプラットフォーム
  9. Worker Worker Worker OpenShiftで使用する主要な概念 © 2021 IBM Corporation 16 用語

    解説 プロジェクト OpenShift でユーザーやリソースを分類・分離するための作業場所。 プロジェクトを分けることで、クラスター内のリソースを仮想的に独立させ、マルチテナントを実現 できる。 作業の単位や、ユーザーのグループごとプロジェクトを作成することで、それぞれの作業場所を確保 することができる。 Kubernetesのnamespace(名前空間)を拡張したもの。 異なる名前空間にはアクセスできないため、互いの存在を意識する必要はない。 Master Master Master OpenShift Cluster プロジェクト1 リソース定義 プロジェクト2 リソース定義 Pod
  10. OpenShiftで使用する主要な概念 © 2021 IBM Corporation 17 用語 解説 トポロジー プロジェクト内のすべてのアプリケーション、それらのビルドステータスおよびアプリケーションに

    関連するコンポーネントとサービスを視覚的に表示する。 アプリケーションを作成し、イメージがデプロイされると、ステータスは Pending になる。 アプリケーションをビルドすると、Runningと表示される。 永続ストレージ コンテナの再起動時に揮発性のデータが失われないよう、ストレージをポッドに自動的に接続するた めのしくみ。 KubernetesのPersistent Volume(PV)、Persistent Volume Claim(PVC)というフレームワークを用い、 Podとストレージの関連付けを抽象化することができる。 • PV:外部のボリュームを抽象化するリソース。個別に実際のストレージを確保する。 • PVC:Podからコンテナが利用するボリュームを指定するための抽象リソース。
  11. 参考資料 © 2021 IBM Corporation 18 Kubernetesとは https://www.redhat.com/ja/topics/containers/what-is-kubernetes OpenShift 4.7

    製品ドキュメント https://access.redhat.com/documentation/ja-jp/openshift_container_platform/4.7 OpenShift Countainer Platform 4.7 アーキテクチャー https://access.redhat.com/documentation/ja-jp/openshift_container_platform/4.7/html/architecture/index Red Hat OpenShift on IBM Cloud概説 https://cloud.ibm.com/docs/openshift?topic=openshift-getting-started OpenShiftとKubernetesの違いと価値 https://www.ibm.com/blogs/think/jp-ja/differences-values-openshift-and-kubernetes/ Kubernetes and OpenShift: What's the Difference? https://youtu.be/cTPFwXsM2po