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

運用者にやさしいOpenShift / OpenShift is operator-friendly

運用者にやさしいOpenShift / OpenShift is operator-friendly

コンテナ共創センター勉強会 #14のセッション資料です。

Takuya Utsunomiya

June 30, 2022
Tweet

More Decks by Takuya Utsunomiya

Other Decks in Technology

Transcript

  1. kind: HumanBeings metadata: name: 宇都宮 卓也 spec: group: レッドハット株式会社 title:

    ソリューションアーキテクト born: 大阪 age: 40歳 favorites: technology: ストレージ hobby: [“プロレス観戦”,“将棋観戦”] drink: [“ビール”, “ワイン”] annoyance: [“目が霞む”, “よく眠れない”] うつぼ @japan_rook Japan Rook https://rook.connpass.com/ Cloud Native Data Community https://cndata.connpass.com/ https://www.redhat.com/ja/resource s/openshift-4-first-step-guide-step-t o-enterprise-kubernetes-ebook https://www.shoeisha.co.jp/ book/detail/9784798175027 $ whoami 運用者にやさしいOpenShift 2
  2. 6

  3. 仮想マシン 監視対象の増加 OS ミドルウェア アプリケーション Hypervisor 仮想マシン 仮想マシン 仮想マシン Kubernetes

    コンテナ ミドル アプリ コンテナ ミドル アプリ コンテナ ミドル アプリ コンテナ ミドル アプリ コンテナ ミドル アプリ Hypervisor 仮想マシン 仮想マシン OS ミドルウェア アプリケーション OS ミドルウェア アプリケーション コンテナ ミドル アプリ コンテナ ミドル アプリ コンテナ ミドル アプリ コンテナ ミドル アプリ コンテナ ミドル アプリ : 監視対象 仮想マシン環境 コンテナ環境 OS OS OS モニタリング ぜーんぶ監視するんですよ。どうする? 運用者にやさしいOpenShift 9
  4. 仮想マシン コンテナ環境におけるモニタリングアプローチ OS ミドルウェア アプリケーション Hypervisor 仮想マシン 仮想マシン 仮想マシン Kubernetes

    コンテナ ミドル アプリ コンテナ ミドル アプリ コンテナ ミドル アプリ コンテナ ミドル アプリ コンテナ ミドル アプリ Hypervisor 仮想マシン 仮想マシン OS ミドルウェア アプリケーション OS ミドルウェア アプリケーション コンテナ ミドル アプリ コンテナ ミドル アプリ コンテナ ミドル アプリ コンテナ ミドル アプリ コンテナ ミドル アプリ : 監視対象 仮想マシン環境 コンテナ環境 OS OS OS 意味ある単位で タグ付け 動的な監視 コンテナ環境におけるモニタリングアプローチ モニタリング 効率よく監視しないとね。 監視プロセスの 共通化 新しく生まれたリソースを 自動的に対象にして監視 をスタートする。 監視対象をうまくグルーピ ングする。 なるべくどの対象も共通の 方法で監視する。 運用者にやさしいOpenShift 10
  5. https://peter.bourgon.org/blog/2017/02/21/metrics-tracing-and-logging.html https://licensecounter.jp/devops-hub/blog/splunk1/ オブザーバビリティ(可観測性) 一定の期間にわたって測定された 数値のこと。 何が起きているのかを把握するた めに活用する。(CPU/メモリ使用 率、スループットなど) Metrics Tracing

    シングルリクエストの範囲内にて情 報処理を行うこと。 どこで問題が起きているのかを把握 するために活用する。 Logging 「いつどのように動いたか記録した テキスト」を蓄積する。 なぜ問題が発生したのかを把握す るために活用する。 アプリケーションログ、監査ログ、ス ケーリングログなど メトリクス・トレージング・ロギングの観点からシステムの状態を取得し、物事を正確に把握すること。 モニタリング クラウドネイティブ界隈でよく聴くこのワード。 運用者にやさしいOpenShift 11
  6. ミドルウェア運用の自動化 OpenShiftでは、ミドルウェアの運用自動化をKubernetes Operator(Operator)で実装しています。 ミドルウェア or アプリケーション - 運用手順スクリプト - 環境設定

    Operator Operatorとは、Kubernetes上でミドルウェアやアプリケーションを動的にデプロイ、管理するための手段です。 Kubernetesのリソースとコントローラーをベースとしており、運用者に代わってミドルウェアの複雑なインストールや設定、運 用、管理作業を代替します。 Kubernetes Operator – コンテナがコンテナを管理する時代に - ミドルウェアの管理 運用者にやさしいOpenShift 人がやると時間がかかるしミスも多いから。 16
  7. Kubernetes 運用管理者 RHCOS ネットワーク ログ管理 監視 CI / CD ストレージ

    GUI コンテナ レジストリ メトリクス サーバレス コンテナ ランタイム セキュリティ RHCOS Service Broker 証明書管理 スケーラー RHCOS Infrastructure RHCOS ・・・ 運用者にやさしいOpenShift 具体的な作業はOperatorにやらせます。 運用者はOperatorに命令するだけ 管理用Operator 17
  8. OperatorHub OperatorHubによって各種ミドルウェアが提供されます。 Operatorを利用することによって、各ミドルウェアのインストール、設定、監視、アップグレードなどの運用操作を自動 化できます。 - CI Pipelines (Tekton) - GitOps

    (Argo) - Cluster Monitoring (Prometheus) - Logging (EFK) - Service Mesh (Istio) - Serverless (Knative) - Tracing (Jaeger / Kiali) - API Security (Gatekeeper) - Compliance (OpenSCAP) etc ミドルウェアの管理 運用者にやさしいOpenShift スマホアプリみたいにOperatorをインストールできます。 19
  9. OpenShiftのサポートライフサイクル 6ヶ月 or 次期GAから90日後 1年間 1年半 (18ヶ月) v4.9 2021/10/18 2023/04/18

    v4.10 2022/03/10 v4.11 アップグレード https://access.redhat.com/ja/support/policy/updates/openshift 21 Kubernetesよりも長いライフサイクルです。 運用者にやさしいOpenShift
  10. OpenShiftのアップグレード ワンクリックでOpenShiftクラスタをアップデートする「Over-the-Air (OTA) Update」機能を提供しており、コンポー ネントごとの管理が不要です。 Master Node Kubernetes API ホストOS(CoreOS)

    クラスタ管理サービス (クラスタOperator) Worker Node ホストOS(CoreOS) Kubernetesコンポーネント (etcd/api) Master Nodeのアップデート Kubernetes API: etcd/apiなどのコアコンポーネント クラスタ管理サービス: PrometheusやCNIなどのCluster Operator ホストOS: CoreOSのライブアップグレード Worker Nodeのアップデート Kubernetesコンポーネント: CNI, kubeletなどの管理対象コ ンポーネント One-click Upgrade 運用者 アップグレード OTAアップデート対象外のコンポーネント ・ユーザーでインストールしたOperator ・ユーザーがデプロイしたKubernetes Manifest 22 OpenShiftと言ったらOTAですよ。 運用者にやさしいOpenShift
  11. アップグレード時のサービス停止への対策① アップグレード インプレースアップデートに耐えうる余剰を準備することでサービス停止を回避することができます。 アプリケーションのステートフルな情報はクラスター外部に切り出し、全てのノードからアクセスできる構成を取っておくこ とが推奨されます。 NodeA OCP 4.9→4.10 NodeB OCP4.9

    NodeA OCP 4.9 NodeB OCP 4.9→4.10 Stateful Data Stateful Data 1ノード分のPodが起動 できる余剰が必要 ノードに依存しないデータ の保持方法を採用 1ノードが完了したらまた Pod を移動させてアップデート実 施 どちらのノードからもア クセス可能な構成を取 る インプレースアップグレード 26 シングルクラスタならこうしましょう。 運用者にやさしいOpenShift
  12. アップグレード時のサービス停止への対策② アップグレード Load Balancer Cluster A Cluster B OpenShift 4.9

    OpenShift 4.9 Service Out Load Balancer Cluster A Cluster B OpenShift 4.9 OpenShift 4.10 Version Up Load Balancer Cluster A Cluster B OpenShift 4.9 OpenShift 4.10 ①サービスアウト ②バージョンアップ ③サービスイン マルチクラスター構成を取りBlue/Greenアップグレードを実施することで、ノード停止を意識せずに安全にアップグレー ドを実現できます。 Blue/Greenアップグレード Service Out ユーザー ユーザー ユーザー Stateful Data Stateful Data Stateful Data どちらのクラスターから もアクセス可能な構成を 取る サービスアウトした後で アップグレードを実施 27 マルチクラスタだともっと柔軟です。 運用者にやさしいOpenShift
  13. 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