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. 運用者にやさしいOpenShift
    Red Hat K.K.
    Solution Architect
    宇都宮卓也
    コンテナ共創センター勉強会 #14

    View Slide

  2. 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

    View Slide

  3. みんな Kubernetes の運用に困っている
    あなただけではないから心配しないでね。
    運用者にやさしいOpenShift
    3

    View Slide

  4. コンテナ環境で検討する運用項目
    非コンテナ環境とそんなに変わらないですよね。
    運用者にやさしいOpenShift
    モニタリング
    トラブルシューティング
    ミドルウェア管理
    セキュリティ
    アップグレード
    キャパシティ管理
    バックアップ
    4

    View Slide

  5. (私が考える)OpenShiftの運用する人へのやさしさ
    ※個人の感想です。効果には個人差があります。
    運用者にやさしいOpenShift
    使うツールが決まっている ツールは無償で使える
    セットアップが簡単 アップデートが簡単
    5

    View Slide

  6. 6

    View Slide

  7. コンテナ環境で検討する運用項目
    モニタリング
    トラブルシューティング
    ミドルウェア管理
    セキュリティ
    アップグレード
    キャパシティ管理
    バックアップ
    非コンテナ環境とそんなに変わらないですよね。
    運用者にやさしいOpenShift
    7

    View Slide

  8. モニタリング
    Monitoring

    View Slide

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

    View Slide

  10. 仮想マシン
    コンテナ環境におけるモニタリングアプローチ
    OS
    ミドルウェア
    アプリケーション
    Hypervisor
    仮想マシン
    仮想マシン
    仮想マシン
    Kubernetes
    コンテナ
    ミドル
    アプリ
    コンテナ
    ミドル
    アプリ
    コンテナ
    ミドル
    アプリ
    コンテナ
    ミドル
    アプリ
    コンテナ
    ミドル
    アプリ
    Hypervisor
    仮想マシン
    仮想マシン
    OS
    ミドルウェア
    アプリケーション
    OS
    ミドルウェア
    アプリケーション
    コンテナ
    ミドル
    アプリ
    コンテナ
    ミドル
    アプリ
    コンテナ
    ミドル
    アプリ
    コンテナ
    ミドル
    アプリ
    コンテナ
    ミドル
    アプリ
    : 監視対象 仮想マシン環境 コンテナ環境
    OS OS OS
    意味ある単位で
    タグ付け
    動的な監視
    コンテナ環境におけるモニタリングアプローチ
    モニタリング
    効率よく監視しないとね。
    監視プロセスの
    共通化
    新しく生まれたリソースを
    自動的に対象にして監視
    をスタートする。
    監視対象をうまくグルーピ
    ングする。
    なるべくどの対象も共通の
    方法で監視する。
    運用者にやさしいOpenShift
    10

    View Slide

  11. 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

    View Slide

  12. Cluster Monitoring
    OpenShiftをインストールした時点で、クラスタに関する監視はCluster Monitoring(Prometheus)によって設定済みで
    す。
    サービスディスカバリやタグ(Pod/Namespace/Deployment)での管理機能も具備しています。
    そのため、OpenShiftを導入することで運用者はすぐにコンテナ環境に適したモニタリング環境を構築できます。
    クラスタ全体の
    リソース使用率
    ノードごとの
    リソース使用率
    モニタリング
    最初から使えます。
    運用者にやさしいOpenShift
    12

    View Slide

  13. OpenShift Jaeger
    モニタリング
    インストールしたら使えます。
    OpenTracing に準拠した分散トレーシングツールです。
    複数のサービスにまたがったリクエスト処理内容(順序、処理時間など)を可視化し、問題箇所を特定します。
    運用者にやさしいOpenShift
    13

    View Slide

  14. OpenShift Logging
    モニタリング
    OpenShift Logging(EFK)を有効化することによって、各Pod、Clusterから出力されるログをElasticsearch上に
    保管します。
    必要に応じてKibanaから閲覧可能です。
    インストールしたら使えます。
    運用者にやさしいOpenShift
    14

    View Slide

  15. ミドルウェアの管理
    Middleware Management

    View Slide

  16. ミドルウェア運用の自動化
    OpenShiftでは、ミドルウェアの運用自動化をKubernetes Operator(Operator)で実装しています。
    ミドルウェア or アプリケーション
    - 運用手順スクリプト
    - 環境設定
    Operator
    Operatorとは、Kubernetes上でミドルウェアやアプリケーションを動的にデプロイ、管理するための手段です。
    Kubernetesのリソースとコントローラーをベースとしており、運用者に代わってミドルウェアの複雑なインストールや設定、運
    用、管理作業を代替します。
    Kubernetes Operator – コンテナがコンテナを管理する時代に -
    ミドルウェアの管理
    運用者にやさしいOpenShift
    人がやると時間がかかるしミスも多いから。
    16

    View Slide

  17. Kubernetes
    運用管理者
    RHCOS
    ネットワーク
    ログ管理 監視 CI / CD
    ストレージ
    GUI
    コンテナ
    レジストリ
    メトリクス サーバレス
    コンテナ
    ランタイム
    セキュリティ
    RHCOS
    Service Broker
    証明書管理
    スケーラー
    RHCOS
    Infrastructure
    RHCOS ・・・
    運用者にやさしいOpenShift
    具体的な作業はOperatorにやらせます。
    運用者はOperatorに命令するだけ
    管理用Operator
    17

    View Slide

  18. OpenShiftクラスター構築時点で
    “32個の Cluster Operator”
    OpenShiftはOperatorのかたまりなんです。
    クラスター初期状態のOperator
    運用者にやさしいOpenShift
    18

    View Slide

  19. 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

    View Slide

  20. アップグレード
    Upgrade

    View Slide

  21. 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

    View Slide

  22. 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

    View Slide

  23. Webコンソールのイメージ
    アップグレード
    23
    絶対に誰でもできるアップグレード。
    運用者にやさしいOpenShift

    View Slide

  24. アップグレードバージョンパス
    現在のバージョンからアップデート可能なバージョンを確認することができます。またアップデート先のバージョンを指
    定することで、現在のバージョンからのアップデートパスを確認することができます。
    アップグレード
    https://access.redhat.com/labs/ocpupgradegraph/update_channel
    ←stable-4.9からのアップグレード先
    ↓stable-4.5からstable4.9へのアップグレードパス
    24
    最短のアップグレードパスを提示します。
    運用者にやさしいOpenShift

    View Slide

  25. アップグレードで検討すべき事項
    アップグレード
    アップグレード中は対象のノードが通信断になるため、サービス停止につながる恐れがある
    アップグレード時のサービス停止
    Kubernetes APIの廃止によってアプリが正常に動作しない可能性がある
    バージョンアップに伴う動作変更
    25
    みんな気にするところ。
    運用者にやさしいOpenShift

    View Slide

  26. アップグレード時のサービス停止への対策①
    アップグレード
    インプレースアップデートに耐えうる余剰を準備することでサービス停止を回避することができます。
    アプリケーションのステートフルな情報はクラスター外部に切り出し、全てのノードからアクセスできる構成を取っておくこ
    とが推奨されます。
    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

    View Slide

  27. アップグレード時のサービス停止への対策②
    アップグレード
    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

    View Slide

  28. まとめ
    Warp up

    View Slide

  29. Red Hatが目指すコンテナ環境の運用
    コンテナが持つ特性に応じて、OpenShiftの各機能を最大限活用し、従来の運用プロセスを刷新する
    ことで、運用の効率化、およびDevOpsの更なる推進をサポートします。
    コンテナの特性を活用した運用の実現
    コンテナの特性
    揮発性 可搬性 不変性
    運用するかたにやさしいコンテナ基盤を。
    運用者にやさしいOpenShift
    29

    View Slide

  30. 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

    View Slide