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

1. OpenShiftとStorage

F6df8bd336f1ff47494a43c68a562bfa?s=47 satokota
June 30, 2022
160

1. OpenShiftとStorage

F6df8bd336f1ff47494a43c68a562bfa?s=128

satokota

June 30, 2022
Tweet

Transcript

  1. OPENSHIFT と STORAGE RED HAT APAC OFFICE OF TECHNOLOGY 花田

    祐樹
  2. Cloud Native とは? クラウドネイティブ技術は、パブリッククラウド、プライベートクラウド、ハイ ブリッドクラウドなどの近代的でダイナミックな環境において、 スケーラ ブルなアプリケーションを構築および実行するための能 力を組織にもたらします。 このアプローチの代表例に、コンテナ、サービスメッ シュ、マイクロサービス、イミューダブルインフラストラクチャ、および宣言型

    APIがあります。 https://github.com/cncf/toc/blob/main/DEFINITION.md 最初のコミットは 2018年
  3. Kubernetes の基本機能 Host Host コンテナ コンテナ Host Host コンテナ コンテナ

    サービス ロードバランス機能 仮想ネットワーク機能 Host コンテナ リソースの使用制限 ・1CPUまで ・特定の Node以 外には置かない Host Host コンテナ コンテナ 冗長性の確保 隣のHost 等で再起動 自動スケールアウト Host Host コンテナ コンテナ コンテナ Host 負荷が増えたので 追加 前ページで説明していた所 コンテナ同士が通信するための専用ネットワーク Kubernetes クラスタ内のロードバランスの機能 とクラスタの外の機能があり、この話は少し複雑 。 最低限必要な CPU / Memory リソース を確保できる所で起動、上限を設定 仕組みとしては左の冗長製の確保と同じ OpenShift の場合は環境によっては、Host もスケールアウト/インできる。 HTTPサーバーやAppサー バーは、昔からそれでいい けど、データは? ストレージは?
  4. 典型的なWeb三層構造とコンテナ Web 層 アプリケーション層 データ層 (主にRDB) ロードバランサー 数を単純に増やす事で処理能力がスケールする層 ・大量のCPU /

    Memory が必要 ・高可用性、スケールアウトに物理的な前提がある ・etc コンテナが向いている部分 コンテナ化のメリットで 議論が発生する部分 スケール・アウト スケール・アウト コンテナ化されているOSS のRDBはたくさんあ りますが・・・ 実際のエンタープライズ・プロジェクトで、 RDBが使われている場合は良く議論になる コンテナ コンテナ コンテナ コンテナ コンテナ コンテナ コンテナ コンテナ 高速な開発
  5. master Infra Node AZ2 master Infra Node AZ1 master Infra

    Node AZ3 Case1 : Kubernetes のPVの仕組みを使わない Worker Node Worker Node Worker Node Worker Node Worker Node Worker Node master Infra Node Server2 master Infra Node Server1 master Infra Node Server 3 Worker Node Worker Node Worker Node Worker Node Worker Node Worker Node Case 2 : Node のローカルストレージ を使用して分散ストレージを形成する Worker Node Worker Node Worker Node Database サービス Red Hat ODF (OpenShift Data Foundation) 分散ストレージ例 ※ OpenShift の オプション TCP/IP CSI driver Pod CSI driver Pod CSI driver Pod 分散ストレージによる冗長化 CSI driver Pod CSI driver Pod CSI driver Pod CSI driver Pod CSI driver Pod CSI driver Pod CSI driver Pod CSI driver Pod CSI driver Pod ODF Pod ODF Pod ODF Pod コンテナ内から直接、ネット ワーク経由でアクセスする (例:NFS、ObjectStorage 、JDBC Client) 分散ストレージはスケールしやすい。
  6. master Infra Node master Infra Node master Infra Node Worker

    Node Worker Node Worker Node Worker Node Worker Node Worker Node CSI driver Pod CSI driver Pod CSI driver Pod CSI driver Pod CSI driver Pod CSI driver Pod CSI driver Pod CSI driver Pod CSI driver Pod Data Center Storage Management Software or 6 CSI対応のベンダー・ストレージ 物理接続要件は Storage 依存 (SAN / Ethernet) Podとしてデプロイされ るパターンや、 Kubernetes外のサーバ ーのケースも ストレージ管理ソ フトウェア Case 3: Kubernetes の PVの仕組みを使用する (クラスター外 Storage)
  7. https://12factor.net/ja/backing-services Twelve-Factor App Software as a Service を作るための方法論 https://12factor.net/j a/

    アプリケーション全体だけで なく、Web や App Server がメインの局所的な方法論で ある。
  8. In-tree から CSI (Container Stroage Interface) へ AWS EBS VMware

    (VMDK) ハードウェア・ベンダー 提供のストレージ EBS CSI driver in-tree EBS Volume plugin (driver) VMware CSI Driver HW ベンダー が提供する CSI Driver in-tree VMware plugin (driver) もともと Kuberentes 本体の中に、メジャーなストレージを扱うためのドライバーが埋め込まれていました。 (in-tree) OpenShift では、これらのドライバーを使わなくて良いように、CSI経由のインターフェイスに移行中です。 Kuberentes (OpenShift) CSI Interface CSI Interface “AWS EBS CSI Driver Operator” を提供 latest tested in-tree and CSI driver by OpenShift (x86) [1] OpenShift Container Platform 4.x Tested Integrations (for x86_x64) - Red Hat Customer Portal “VMware vSphere CSI Driver Operator”を提供 (4.10でGA) OpenShift のコンソ ールからも HWベン ダー提供の CSIドラ イバー Operator が 選択できるものもあ る。 8 資料作成時点で OpenSfhit 4.10が最新
  9. Remediating nodes with the Poison Pill Operator - Working with

    nodes | Nodes | OpenShift Container Platform 4.8 medik8s/node-healthcheck-operator: K8s Node Health Check Operator (github.com) Poison Pill Operator how it works MachineHealthCheck Controller (GA) / Node Health Check Operator (TP@4.10) • Node の健康状態を監視 • Node が Fail した場合に指定された Remediation (=CR(Custom Resource) を作成) を行う。 • 指定した数以上の Node が健康な時にだけ Remediation を行う。 Poison Pill Operator ・Node を Monitoring しているシステムから CR (Custom Resource)を通じて通知を受ける ・unhealty な Node を Rebootする。 MachineHelthCheck Controller (既存のOpenShift Machine API) Monitoring CR (Custom Resource) を通じて通知 Remediation (reboot) Tech Preview or Coummuity Worker Nodes Stateful Set を使用していて Node 障害が起きた時に、Pod は別の Node に 再スケジュールできても、障害 Node が PVを離さない時がある。その場合も Reboot する事で、PVを他の Node に移す事ができる。 既存の Controller 9 資料作成時点で OpenSfhit 4.10が最新
  10. 10 https://blog.purestorage.com/ja/purely-technical-ja/portworx- boosts-container-data-availability-in-public-cloud/ • PVの 別Node への付け替えがなかなか完了しない。 • Portworks では、仮想の

    PVを Kubernetes に提供。 • 物理のボリュームを Pod から分離 • レプリカした同期ボリュームを別Nodeに準備。 • レプリカが配置されている Node に Pod を優先配置 PureStorage ブログ 外部メディアの内容
  11. OCP Cluster etcd • Kubernetes の基本的な Persistent なデータは、etcd に保 管されます。

    • アプリケーションの設定ファイル(ConfigMap / Secret / Routeなど)や CR、ユーザーが追加した定義ファイル( CRD: Custome Resource Definitionなど)も etcdに含ま れます。 • ユーザーアプリケーションのPV(Persistent Volume)デ ータは、etcdには含まれません。 • Kubernetes / OCPでサポートされている標準的なバックア ップコマンドがあります(etcdctl)。 • backupコマンドは、同一クラスタ上のデータのバックアッ プとリストアを目的としています。 • ネームスペース単位でのバックアップができない。ネームス ペースはドメインの一種であり、お客様が管理しやすいよう に異なるアプリケーションを分離するために使用するもので ある。 • 一貫したバックアップを取得するためには、バックアップ時 に起動しているすべてのアプリケーションを停止する必要が あります。(静止点を取る) Application Data ConfigMap Secret PVC Deployment namespace resource アプリケーションがた め込むユーザーデータ (例:RDB) PV Git Repository アプリケーションの設定に関わる ものは、通常、namespace に所 属している バックアップ Software (velero / NetApp etc) backup restore another PV Object Store (eg S3) rsync アプリケーションの初期構 成の情報が、Git に保管さ れている場合は、 etcd が 重要ではなくなるケースが ある。 etcd のバックアップはクラスター全体 のバックアップになる。 (考え方としては Windows Registry み たいなもの) 11 アプリのバックアップ範囲 ◼ etcd (database ) とバックアップ
  12. VM スナップショットと、Storage ボリュームのスナップショット ボリュームのスナップショット VM全体のスナップショット Application File A File B

    Memory application is using Another application in the same VM Application Volume A Volume B Memory Application is using Another application in the same VM data not written in storage data not written in storage 整合性が取れている 一つのボリュームだけのスナップショッ トを取り、そこからバックアップを作っ ても復元できない可能性がある。 関連 関連 関連
  13. ◼ DR 構成で考えるべき要素 非同期レプリケーション(※1) Primary Site Backup Site OCP Cluster

    OCP Cluster image repo Git repo Private Container Repository Private Container Repository GTM (Global Traffic Manager) private DNS Server DNS Record private DNS Server DNS Record アプリケーション データ on PV アプリケーション データ on PV インターネット プライベート・ネットワーク Application manifest / ConfigMap Application manifest ※1) DR構成は一般的に、サイト間の遅延があるため、両方のサイトを Active-Active にする同期構成は通常構成する事ができない。 BCPサイトにコピーすべき情報 public DNS Server image manifests 基本的に静止点を取って整合性が 取れた状態のものをコピーする。 DNS Record External User 実際はデータの世代管理と リストアの作業が加わる 実際はバックアップと、デ ータの世代管理の作業が加 わる
  14. Data Data 常にアクセス (無停止) 常にコピー (完全同期 [1]) データのコピー これが成立するための条件 1)

    両サイトのボリュームが完全同期である事 = ストレージ間の遅延が少ない近距離である事 サイトA サイトB サイトAが壊れた時にサイトB側 のデータで無停止で業務を継続 DRでは成立しない サイトBにも書けたら Write 完了 [1] 非同期でデータをコピーする方式だと、コピーが途中で止まった場合、コピー先のデータが整合性のあるデータか保証できない。
  15. Data Data ①アクセス停止 サイトA サイトB Data ②コピーの作成 (スナップショット 機能を使って見た目 的には一瞬で完了)

    ③アクセスの再開 ④コピー (差分/フル) 基本、時間がかかる Data 火曜日のコピー 月曜日のコピー 遠隔地へのデータコピー(DR) アプリケーションのデータが整合性を 持つようにデータの「静止点」を取る 容量が大きい場合はテ ープをトラック輸送 もしコピー中にサイトAが 壊れたらこのデータは使え ないので、世代管理をする 必要がある。
  16. • Cloud Native や 12 App factor は、アプリケーション全体がスコープではないので 注意しましょう。 •

    データはイミュータブルには、なり得ないので別途考慮する必要があります。 • データは、ビジネスで最も重要な要素です。 • バックアップは適切に取得しましょう。
  17. THANK YOU Yuhki Hanada yhanada@redhat.com 17