タグ: Kubernetes

  • etcdの復元、データを戻してもKubernetesの監視がずれる理由

    etcdの復元、データを戻してもKubernetesの監視がずれる理由

    バックアップから保存データを戻せても、そのデータを見て動く仕組みまで、同じ時点へ戻るとは限りません。Kubernetesの復旧では、etcdに残る状態と、変更通知を受けてきたコントローラーの見ている状態が食い違うことがあります。

    etcdは、キーと値の形で状態を保存する分散ストアです。変更の順序にはrevisionという番号を使います。ここではetcd v3.6の公式文書をもとに、スナップショットからの復元でこの番号が巻き戻る問題と、復元時に使う二つのオプションの役割を読み解きます。[1][2]

    簡単にまとめると?

    • 古いスナップショットへ復元すると、保存データだけでなくrevisionも以前の値へ戻り、変更を監視する側のキャッシュが正しく更新されない場合があります。
    • --bump-revisionは番号を先へ進め、--mark-compactedは古い履歴からの監視を続けさせないための処置です。番号を増やしても、失われたデータは戻りません。
    • 復元後は、etcdが起動したことに加えて、監視の張り直しと利用側の状態の取り直しまで確かめる必要があります。

    revisionは、時刻でも保存件数でもない

    etcdのrevisionは、ストア全体に一つある、変更の順序を表す番号です。キーの集合が変更されると増え、どの更新が先だったかを並べる論理的な時計として使われます。複数の操作をまとめるトランザクションでは、その中で複数のキーを変更しても、revisionが増えるのは一度です。保存されているキーの数や、時計の秒数を表すものではありません。[2]

    変更を受け取るwatchは、この番号を起点にできます。利用側が「ここまでは見た」と記憶しておけば、切断後にその続きの変更を受け取る仕組みを作れます。ただし、いつまでもすべての履歴が残るわけではありません。etcdは古いrevisionの履歴を保持しつつ、運用上の方針に従って整理するため、再開できる範囲には限りがあります。[2]

    保存側だけを過去へ戻すと、観測の順序が崩れる

    説明のため、revisionが1,000の時点でスナップショットを保存し、その後、利用側が1,400までの更新を観測したとします。障害後にそのスナップショットへ復元すると、etcd側の保存内容と番号は1,000の時点へ戻ります。一方、利用側には、1,400まで進んだという記憶や、その間に更新したキャッシュが残るかもしれません。これは仕組みを示す仮の数値です。

    Kubernetesのコントローラーやオペレーターは、informerと呼ばれる仕組みで状態を手元に保持し、watchによる変更通知を利用することがあります。etcdの復旧文書は、古いrevisionへの復元によって、こうしたキャッシュが正しく更新されず、コントローラーの動作に不整合が生じ得ると指摘しています。保存側が応答できるようになったことだけでは、この不整合が解消したとは言えません。[1]

    番号を進めることと、古い履歴を無効にすることを分ける

    この問題に対し、公式文書が示すのがrevision bumpです。--bump-revisionには、復元するスナップショットのrevisionへ加える増分を指定します。到達させたい番号をそのまま指定するものではありません。先ほどの例なら、1,000に増分1,000を加えると、復元後の番号は2,000になります。ここでも数値は説明用であり、実環境に勧める設定値ではありません。[1]

    ただし、番号が2,000になっても、保存内容が1,400の時点まで追いつくわけではありません。スナップショットに含まれない更新を作り直す処理ではなく、復元後の番号が利用側の観測済み番号より後になるようにする処置です。データの新しさと、通知の順序を示す番号を分けて見る必要があります。

    もう一つの--mark-compactedは、増分を含むrevisionまでを、履歴の整理が済んだ範囲として扱います。etcdのWatch APIでは、整理済みのrevisionを起点とするwatchはキャンセルされます。同じ開始revisionのまま作り直しても失敗します。古い履歴を連続して読めるという前提を利用側へ残さず、キャッシュの無効化につなげるための処置です。[1][2]

    二つの復元オプションの役割。etcd v3.6公式文書をもとにQuantum Seaが整理。
    処置 変えるもの それだけでは行わないこと
    --bump-revision スナップショットのrevisionに指定増分を加える。 スナップショット以後に失われた更新の復元。
    --mark-compacted 増分を含むrevisionまでを整理済みとし、その古い履歴に基づくwatchを続けさせない。 独自クライアントのキャッシュ処理が正しく実装されていることの保証。

    公式文書は、Kubernetesやwatchを利用するシステム、etcdデータのローカルコピーを持つシステムの復元では、revision bumpの利用を強く勧めています。Kubernetesのコントローラーについては、--mark-compactedも併用することが重要だと説明しています。番号を進めるだけの処置と、古い観測履歴を使えなくする処置は、同じ役割ではありません。[1]

    増分は、スナップショットの古さと更新量に依存する

    どれだけ番号を進めるかは、スナップショットの取得後に、どこまでrevisionが進んだ可能性があるかによります。公式文書には、毎秒1,500回未満の書き込みを仮定し、1週間前のスナップショットに10億を加える例があります。10億という値だけを抜き出すと、元の条件が抜けてしまいます。スナップショットがさらに古い環境や、更新量が多い環境でも十分だと保証する数字ではありません。[1]

    検討時には、使うスナップショットのrevisionと取得時点、障害までの経過時間、更新の進み方を対応させます。また、revisionはキーの総数ではないので、保存件数が少ないことだけを根拠に、小さな増分でよいとは判断できません。同じキーを繰り返し変更する環境でも、番号は進むからです。[2]

    戻すファイルの由来と、復元先の識別も別の確認点

    監視の整合を考える前提として、どの状態を保存したファイルなのかも確かめます。公式文書は、稼働中のetcdからスナップショットを取得する方法と、データディレクトリ内のmember/snap/dbをコピーする方法を区別しています。後者では、先行して記録するWAL(write-ahead log)に含まれていても、まだdbへ書き込まれていないデータを失う可能性があります。[1]

    整合性検査にも違いがあります。etcdctl snapshot saveで取得したスナップショットには、復元時に確認する整合性ハッシュが付きます。dbファイルを直接コピーした場合にはそのハッシュがなく、同じ検査はできません。検査を省けば同じ根拠が得られる、と読み替えないことが大切です。なお、ファイルの整合性が確認できても、必要な時点までの更新を含むことや、利用側のキャッシュまで一致することを一度に証明するものではありません。[1]

    スナップショットからの復元では、member IDとcluster IDなどの識別情報も書き換えられ、新しい論理クラスタを作ります。元のクラスタへ誤って参加しないための扱いであり、単に保存ファイルを置き換えて同じクラスタの続きを動かす、という捉え方では不十分です。複数メンバーを復元するときは、同じスナップショットを使うことも公式文書の条件です。[1]

    復旧確認を、保存側から利用側までつなぐ

    復旧の検証では、戻ったキーと値、復元後のrevision、監視が古い履歴をそのまま使っていないかを、順につなげて確かめます。Kubernetesのコントローラーなら、手元の状態を取り直したあと、期待する対象を見て制御が再開したかまでを見る、という評価になります。これは公式文書の不整合の指摘から導く確認の考え方であり、すべての独自コントローラーの動作を保証するものではありません。

    スナップショットは保存内容を以前の状態へ戻します。一方、その内容を見ていた利用側には、過去へ戻ったことを正しく受け止める経路が必要です。データを戻す処理、revisionを進める処理、古い監視履歴を無効にする処理を分けて理解すると、「etcdが起動した」から「制御が整合した状態で再開した」までの、確かめる範囲が見えてきます。

    参考資料

    2026年10月12日確認。etcd v3.6系列の公式文書に基づきます。

    1. etcd Authors — Disaster recovery。Revision Difference、Restoring with revision bump、Snapshotting the keyspace、Integrity Checks、Restoring from snapshot。
    2. etcd Authors — etcd API。Revisions、Transaction、Watch API/Watch streams。
  • StarlingXの分散クラウド、中央との回線断でも現場に残る制御

    StarlingXの分散クラウド、中央との回線断でも現場に残る制御

    複数の工場や店舗を中央から管理するとき、拠点との回線が切れたら、現場のクラウド基盤まで使えなくなるのでしょうか。答えは、中央へ何を任せ、拠点に何を残しているかで変わります。画面に拠点を一覧できることと、その拠点が自力で制御を続けられることは、別の設計だからです。

    StarlingXのDistributed Cloud(分散クラウド)は、中央管理と拠点側の自律した制御を組み合わせます。OCP Korea Tech DayのOpenInfra講演で紹介されたこの基盤について、StarlingX 12.0の公式文書から、回線断、保守のための同期停止、拠点内の機器故障を分けて見ていきます。[1][2]

    簡単にまとめると?

    • StarlingXのサブクラウドは、拠点内に制御と認証の仕組みを持ち、中央との接続が失われてもローカルサービスを動かす設計です。
    • 中央の同期対象か、オンラインか、設定が同期済みかは別の状態です。保守用のUnmanagedも、回線断そのものを意味しません。
    • 中央回線への依存を減らしても、1台構成の機器故障や、アプリが利用する外部サービスの停止までは防げません。

    中央が束ねるもの、拠点に残すもの

    Distributed Cloudは、中央のCentral Cloudと、一つ以上のサブクラウドをL3ネットワークで結びます。サブクラウドは、単なる遠隔端末ではなく、コンテナ化したアプリケーションを動かすStarlingXのシステムです。中央には、自身の設備を管理するRegionOneと、サブクラウド群を管理するSystem Controllerという役割があります。[3]

    System Controllerは、サブクラウドの追加、対象となる設定の同期、稼働状態やアラームの監視、システムソフトウェアの更新管理を担います。一方、サブクラウドには自律した制御プレーンがあり、公式の概要は、中央へ向かう接続が失われても拠点内のローカルサービスが動作する構成だと説明しています。すべての制御を中央へ毎回問い合わせる構成ではありません。[2][3]

    この違いを具体的に示すのが認証です。公式構成文書では、サブクラウドのサービスは、その拠点内のIdentity Providerだけで認証するとしています。StarlingXのサービスではKeystone、KubernetesではService Accountを使うため、中央との通信が途切れたことだけで、認証先まで失う作りにはしていません。ここで説明しているのは基盤サービスの認証であり、上に載せるアプリ独自のログイン先まで自動的に拠点内へ移るわけではありません。[3]

    回線断でも残る処理を、アプリの依存先までたどる

    説明用の例として、工場Aと工場Bにそれぞれサブクラウドを置き、中央から管理する構成を考えます。工場Aと中央を結ぶ回線だけが切れ、工場Aの電源、機器、拠点内ネットワークは正常に動いているとします。工場Aに制御と認証を残す意味は、この場面で現れます。中央へ到達できないことと、拠点内の基盤サービスがすべて止まることを切り離せるからです。これは構成の理解を助ける仮例で、実機試験の結果ではありません。

    ただし、工場Aの検査アプリが、判定のたびに中央にあるデータベースを読むなら、その処理には回線への依存が残ります。アプリのログインに外部の認証サービスを使う場合も同様です。ローカルのクラウド制御が動くことだけから、アプリの入力、処理、結果の保存まで成立すると判断することはできません。

    そこで構成を選ぶときは、制御プレーンの配置に加え、アプリが使う認証先、データ、保存先を一つずつたどります。中央へ送る結果を一時的に現場へ残す設計なら、その保存容量と後から送る手順も確認対象です。これらは本稿で提案するアプリ側の確認事項であり、StarlingXが任意のデータを自動的に保管・再送するという説明ではありません。

    Managed、Online、In-syncは同じ「正常」ではない

    中央から見える状態も、一つの表示だけでは読み切れません。公式のdcmanager subcloud listの出力例は、management、availability、syncを別々の列にしています。その例には、managedかつonlineでも、out-of-syncのサブクラウドが載っています。接続状態と設定の同期状態は一致するとは限らないのです。[4]

    中央の状態表示を、三つの問いに分ける
    表示 読み分ける内容 その表示だけでは分からないこと
    management 中央からの設定同期を行うManagedか、保守用のUnmanagedか。 物理的に回線が切れているか、アプリが正常か。
    availability 中央の一覧に、Online/Offlineのどちらで報告されているか。 設定の同期完了や、業務処理の完了。
    sync 同期対象の状態がIn-syncか、Out-of-syncか、Unknownか。 アプリ独自のデータや外部サービスまで正常か。

    この表は公式構成説明とCLIの出力例を整理したものです。表示の更新間隔や障害の検知時間を示す表ではありません。詳細を見るdcmanager subcloud showの例では、identity、patching、platformの同期状態も別々に表示されます。再接続後の確認でも、Onlineへ戻ったことだけでなく、どの同期項目がどう表示されているかを調べる手掛かりになります。[3][4]

    特にUnmanagedは、通信障害の名前ではありません。公式文書では、拠点を保守するため、中央からの同期操作を切り離す状態としています。その間に中央側で行った設定変更は中央で待たせ、Managedへ戻したときにサブクラウドへ送ります。通信できる状態なら、Unmanagedでもアラームは中央へ送られます。「同期を止める」と「監視の通信まで止める」を同じ操作として扱わないことが大切です。[3]

    反対に、回線そのものが切れている間は、その回線を使う中央への報告も届きません。拠点の処理が続いていても、中央から現在の様子を確認できない場面があります。Unmanagedの設定保留についての説明を、そのまま「あらゆる通信障害中の変更が必ず再送され、順序どおりに適用される」という保証へ広げることもできません。

    中央との回線断と、拠点内の1台故障を分ける

    もう一つ分けたいのが、拠点を外部から切り離せることと、拠点内の機器を冗長にすることです。StarlingXはサブクラウドにSimplex、Duplex、Standardなどの構成を使えます。12.0の構成比較表では、1ノードのAIO-SX(All-In-One Simplex)は冗長性とコントローラーサービスの高可用性が「なし」、AIO-DX(All-In-One Duplex)とStandardは「あり」とされています。[3][5]

    工場AがAIO-SXなら、中央回線の故障には拠点側の自律性が役立っても、その1台が故障したときに代わりのローカルコントローラーが生まれるわけではありません。複数拠点を中央で束ねるだけでは、各拠点の電源、サーバー、保存装置といった、同じ原因で一緒に止まり得る範囲をなくせないためです。

    AIO-DXなどを検討する場合も、「冗長性あり」は全アプリの無停止を意味しません。アプリを何台へ配置するか、保存先をどう構成するか、障害時にどれだけの処理能力が残るかは別の条件です。小さな拠点を1台で構成する判断と、拠点内の機器故障も受け止める判断を、中央管理の有無と分けて行う必要があります。

    試すなら、切る場所と観測する場所を対応させる

    導入を判断するための確認では、まず「中央との回線だけが失われる場合」と「拠点内の機器が故障する場合」を別の試験にします。前者では、現場からの基盤へのアクセス、アプリが必要な入力と保存先、中央側の状態表示を分けて観測します。接続を戻した後は、設定の同期状態とアプリの実際の動作も照合します。後者では、選んだ拠点構成で代替できる制御と、代替できない処理・保存先を確かめます。

    ここで挙げたのは、公式の構成から導く確認の考え方です。本稿は障害試験を実施したものではなく、復旧時間、データ損失の有無、可用性の数値を示すものでもありません。StarlingXを選ぶ際に見るべきなのは、「分散しているから止まらない」という一語ではなく、中央から切り離しても成立させたい現場の処理と、その処理が依存するものが、同じ拠点のどこまで揃っているかです。

    参考資料

    1. Seongsoo Cho/OpenInfra Korea User Group「Open Infrastructure: Global Trends」、2026 OCP Korea Tech Day、全36頁。StarlingXの紹介はpp.19–22。OCP公式資料一覧。
    2. StarlingX 12.0「Overview of Distributed Cloud」。中央管理、サブクラウドの自律した制御プレーン。
    3. StarlingX 12.0「Distributed Cloud Architecture」。System Controller、拠点内の認証、Managed/Unmanagedとネットワークの役割。
    4. StarlingX 12.0「Manage Subclouds Using the CLI」。一覧と詳細表示、管理状態の切り替え。
    5. StarlingX 12.0「Deployment Model Comparison Matrix」。AIO-SX/AIO-DX/Standardの冗長性とコントローラーサービス。

    資料確認日:2026年10月12日。構成と操作表示はStarlingX 12.0の公式文書に揃えています。講演にある個別企業の導入規模や効果を、この構成の性能保証として用いていません。

  • Kata Containersの隔離、PodごとにVMを使うと何が変わるか

    Kata Containersの隔離、PodごとにVMを使うと何が変わるか

    コンテナに入れた処理と、その処理を動かすサーバーの間には、どのような境界があるのでしょうか。利用者が持ち込むプログラムを実行する場合などは、コンテナを起動できることに加えて、何を共有し、どこから分離するかが重要になります。

    Kata Containersは、コンテナを仮想マシン(VM)の中で動かし、隔離の層を増やす仕組みです。OCP Korea Tech Dayで紹介されたこの技術を、公式設計文書と制約の説明から見ていきます。特にKubernetesで使うときは、VMで分ける単位がPodであることと、従来のコンテナと同じ設定をそのまま使えるとは限らないことが、選定の出発点になります。[1、2]

    簡単にまとめると?

    • Kata Containersは、KubernetesのPodをVMに対応させ、その中でコンテナを動かします。同じPod内の各コンテナが、別々のVMになるわけではありません。
    • VMの境界があるため、ホストのネットワークを直接使う設定や、特権コンテナに与えられる権限の範囲は、通常のLinuxコンテナと異なります。
    • 導入時は必要なホスト連携を照合し、同じ仕事で起動時間やメモリー使用量も確認します。隔離を増やすことと、互換性や性能を保つことは別の確認です。

    コンテナの外側に、もう一つカーネルを置く

    Linuxのカーネルは、プログラムからの要求を受け、CPUやメモリー、入出力などを扱うOSの中核です。従来のLinuxコンテナは、名前空間やcgroupという仕組みで処理の見える範囲や資源の使い方を分けますが、ホスト側のカーネルを共有します。ホストとは、コンテナやVMを載せる側のシステムです。

    Kata Containersでは、ホスト側のランタイムがVMを起動し、VMの内側にあるゲストLinuxカーネルでコンテナを作ります。コンテナの名前空間やcgroupによる区分は、ゲストの中にも残ります。その外側に、ハードウェア仮想化を使うVMの境界が加わる構成です。コンテナをVMへ置き換えてなくすのではなく、VMの中で引き続きコンテナとして管理します。[2、3]

    公式文書の起動手順では、ホスト側のランタイムがハイパーバイザーを起動し、そのハイパーバイザーがゲストのカーネルとシステムイメージを使ってVMを立ち上げます。VM内のkata-agentがコンテナを作り、利用者の処理を実行します。このように、ホストで管理する部分と、ゲストで処理を動かす部分を分けています。[2]

    同じPodの中まで、VMで分かれるわけではない

    KubernetesのPodは、一つ以上のコンテナをまとめて扱う単位です。Kataの公式設計では、このPodの実行環境をVMに対応させます。一つのPodにアプリ本体と補助コンテナを置く場合、両方が同じVMに入り、ゲストカーネルを共有します。「コンテナを二つ作ったから、VMも二つ」という理解では、実際の境界とずれてしまいます。[2、3]

    例えば、文書変換サービスで、サービス提供者が管理する処理と、利用者が持ち込む変換プログラムを動かす場面を考えます。二つを同じPodに置けば、コンテナが別でもVMの境界は共有します。利用者の処理を別のVMへ分けたいなら、Podの分け方から検討する必要があります。これは境界を説明する仮例で、特定サービスの導入結果ではありません。

    ただし、Podを分けた後も、共有するファイルや認証情報、アクセスできる通信先は別に設計します。VMを分けることだけで、データの受け渡し方まで決まるわけではありません。どこまで同じ実行環境を共有してよいかを先に定めると、Kataを使う対象と、その対象をまとめる単位が見えてきます。

    ホストに直接触れる設定は、そのまま移せない

    隔離の境界を増やすと、ホストの機能を直接利用していた処理には違いが出ます。2026年10月12日に確認した公式のLimitationsは、ホストのネットワーク名前空間を使うhostNetworkを未対応としており、VMの中からホストのネットワーク設定へ直接アクセスできないことを理由に挙げています。従来のコンテナで使っていた設定を、Kataへ機械的に移す前に照合すべき点です。[4]

    privileged、つまり特権付きコンテナの意味にも注意が要ります。Kataでは、コンテナが持つ高い権限はゲストの内側でのものです。通常のruncベースのコンテナにある、ホストの機器を特権コンテナへ渡す既定の挙動と同じではありません。ゲスト内で権限が高いことと、ホストの機器を操作できることを分けて考えます。[4]

    Kataへ移す前に、設定名と実際の境界を照合する
    確認する対象 Kataでの意味 選定につながる確認
    同じPodの複数コンテナ 一つのVMの中で動き、ゲストカーネルを共有する VMで分離したい処理を、同じPodへまとめていないか
    hostNetwork 参照した公式制約文書では未対応 ホストのネットワークへ直接入る要件があるか
    privileged 権限が高くなるのはゲスト内。ホスト機器の自動的な受け渡しとは異なる 必要な機器や操作を、ゲスト側で実現できるか

    この表は公式文書の説明を本稿の判断項目に整理したものです。小さい画面では横へスクロールできます。[2、3、4]

    例えば、ホスト全体のネットワーク状態を直接調べるために作られた処理は、普通の業務アプリと同じ前提では移せません。どの情報や機器へ触れる必要があるかを確認し、その要件に合う実行方法を選びます。KubernetesではRuntimeClassを使ってPodのランタイムを指定できるため、すべてのPodを一度にKataへ切り替えることを前提にする必要もありません。[2]

    ゲストの中と、ホスト側の資源を分けて見る

    Kataの仕事は、VM内のコンテナだけで完結しません。ホスト側には、VMを動かすVMM(仮想マシンモニター)などもあります。公式文書は、資源制約を掛ける場所として、ゲストカーネル、ゲスト内のコンテナ、ホスト側のVMMを分け、目的によって複数の層へ制約を設定する場合があると説明しています。[4]

    そのため、アプリの処理時間だけで導入可否を決めると、VMの起動や維持に必要な条件を見落とします。同じ入力と同じ同時実行数で、処理を始められるまでの時間、ゲスト側とホスト側のメモリー使用量、必要な入出力が動くかを比べると、どこに違いが出たか判断しやすくなります。これは本稿からの評価方法の提案であり、Kataと通常のコンテナを実測した結果ではありません。

    また、公式文書は複数のハイパーバイザーを扱っていますが、対応する機器やファイル共有の仕組みは一律ではありません。「Kataに対応」という名称だけで、必要な周辺機能がそろうとは判断できません。採用するランタイム、ハイパーバイザー、版と設定をそろえ、その組合せで確認する必要があります。[3]

    Kata Containersで増えるのは、コンテナとホストの間にある防御の層です。完全な安全や、従来と同じ性能を保証するものとして選ぶのではなく、分離したい処理の単位と、ホストへ触れる必要性を照らし合わせる。そのうえで資源と互換性を確かめると、VMの隔離をどの仕事へ使うべきか、具体的に判断できます。

    参考資料

    1. Seongsoo Cho/OpenInfra Korea User Group「Open Infrastructure: Global Trends」、2026 OCP Korea Tech Day、全36頁。Kata Containersの紹介はpp.26–27。OCP公式資料一覧。
    2. Kata Containers contributors「Kata Containers Architecture」。Shim v2 architecture、Container creation、Mixing VM based and namespace based runtimes。
    3. Kata Containers contributors「Virtualization in Kata Containers」。PodとVMの対応、ゲスト内のコンテナ、ハイパーバイザーごとの機能。
    4. Kata Containers contributors「Limitations」。Host network、Privileged containers、The constraints challenge。

    資料確認日:2026年10月12日。公式文書の公開版とリポジトリのmainを参照しています。特定の配布版を導入した検証や、速度・メモリー使用量の比較試験は行っていません。採用時は対象版の文書と実際の設定を確認する必要があります。

  • OpenStack・Kubernetes・Cephの役割分担、計算資源・コンテナ・保存先をつなぐ

    OpenStack・Kubernetes・Cephの役割分担、計算資源・コンテナ・保存先をつなぐ

    たとえば、すでにOpenStackでサーバーやストレージを運用しているところへ、AI推論用のコンテナを増やしたいとします。そのとき、基盤を丸ごとKubernetesに置き換える必要はあるのでしょうか。答えを考える鍵は、二つに同じ仕事をさせないことです。

    2026年8月のOCP Korea Tech Dayで、AWS Koreaの講演はOpenStack、Ceph、Kubernetesが共存する三つの接点を示しました。発表の中心は、GPUを載せる計算資源、データを置くストレージ、コンテナの運用をどう組み合わせるか。個々の構成要素は公開されていますが、スライドは三つを組み合わせた特定環境の性能試験ではありません。[1・2]

    簡単にまとめると?

    • OpenStackは計算・通信・保存の資源を用意し、Kubernetesはコンテナの配置や更新を担います。
    • 両方でCephを使っても、同じデータへ自動でアクセスできるわけではありません。
    • EKS Hybrid Nodesは管理プレーンがAWS側にあり、オンプレミスとの安定した接続が必要です。

    OpenStackは資源を用意し、Kubernetesは仕事を配置する

    OpenStackは仮想マシン、ネットワーク、ストレージを払い出す基盤です。必要ならIronicでベアメタルのマシンも扱えます。その上にKubernetesのクラスタを置けば、Kubernetesはコンテナ化したサービスをどのノードで動かし、どう更新するかを管理します。発表は、この上下関係を「OpenStack上のKubernetes」として示しています。[2]

    クラスタを作る接点の一つがCluster API Provider OpenStackです。Cluster APIはKubernetesのクラスタ作成と更新を宣言的に扱う仕組みで、このプロバイダーがOpenStackの資源を使ったクラスタ管理を担います。発表にはMagnumも別の選択肢として並びます。どちらを選ぶかで作成・更新の手順は変わりますが、KubernetesがOpenStackの役割をそのまま引き受けるわけではありません。[2・3]

    保存先はCSI、外への入口は別の接続でつなぐ

    コンテナの中身を作り直しても、学習データや設定を残したい。その保存先をKubernetesから使えるようにするのがCSI(Container Storage Interface)という接続方式です。OpenStackのCinder CSIはブロックストレージを永続ボリュームとして渡し、Manila CSIは共有ファイルシステムを扱います。一方、外部にサービスを公開する負荷分散には、OpenStackのクラウドコントローラーとOctaviaを使う経路があります。保存先と通信の入口は、別々の接続点です。[2・4]

    Cephを保存基盤に選ぶ構成なら、ここにも分かれ道があります。RookはKubernetes上でCephクラスタの配置や運用を助けるオペレーターです。ceph-csiは、CephのRBD(ブロック)やCephFS(共有ファイルシステム)をKubernetesのボリュームとして渡します。CephをOpenStack側でも利用できますが、「両方でCephを使う」だけで同じデータへ自動的にアクセスできるわけではありません。接続先、権限、ネットワーク、データの扱いは構成ごとに決めます。[2・5・6]

    EKS Hybrid Nodesは、管理する場所が異なる

    発表は、既存のオンプレミス資源を使う別の選択肢としてAmazon EKS Hybrid Nodesも挙げています。OpenStack上の仮想マシンやベアメタルをノードに使えますが、Kubernetesの管理プレーンはAWSリージョンにあります。オンプレミスだけで完結するクラスタではなく、AWS側の管理プレーンとノードを結ぶ安定したネットワークが必要です。OpenStack上に自分たちでKubernetesクラスタを管理する構成とは、運用責任と接続の前提が違います。[2・7]

    三つの技術を重ねるとき、まず決めたいのは「何をどこが管理するか」です。サーバーとネットワークを用意する層、コンテナを動かす層、データを残す層。その接点に必要なドライバーと運用主体が見えていれば、既存の基盤を生かしたままAI用の仕事を増やす道筋を描けます。

    AWSを支えるAmazonの事業を知る

    AWSは、Amazon.comの企業向けクラウド事業です。Amazon全体には通販、出店者向けサービス、広告などもあり、それぞれ収益の仕組みが異なります。cyclewaveでは、AWSの位置づけを全社の売上と利益からたどっています。

    参考資料

    2026年9月26日確認。講演スライドと各プロジェクトの公式資料を照合しました。個別構成の性能・費用を測定した記事ではありません。講演動画の質疑は確認対象に含めていません。

    [1]Open Compute Project「2026 OCP Korea Tech Day」発表一覧。演題、登壇者、資料掲載。

    [2]AWS Korea「The New Normal of Infrastructure in the AI Era: Accelerating Innovation with Kubernetes」公式掲載スライド。全31頁。基盤の役割はpp.8–11、EKSの配置はp.22。市場予測や導入率、個別企業の節約率は本文に転用していません。

    [3]Kubernetes Cluster API Provider OpenStack 公式文書。OpenStack上のKubernetesクラスタ作成・管理。

    [4]Kubernetes Cloud Provider OpenStack。Cinder CSI、Manila CSI、OpenStack Cloud Controller Managerなどの役割。

    [5]Rook Ceph 公式文書。RookオペレーターによるCephの配置・運用。

    [6]Ceph「Container Storage Interface」。RBDとCephFSをKubernetesボリュームへ接続するCeph-CSIの役割。

    [7]AWS「Deploy Amazon EKS clusters across cloud and on-premises environments」。EKS Hybrid Nodesの管理プレーン、ノード配置、接続要件。

  • ETRIのNPUaaS設計、異なるAI半導体をクラウドで共有する

    ETRIのNPUaaS設計、異なるAI半導体をクラウドで共有する

    AI用の半導体を手に入れても、利用者がすぐ使えるとは限りません。モデルに合う装置を探し、ソフトウェアをそろえ、空いている資源を割り当てる。種類の違うNPU(Neural Processing Unit)が混ざれば、その段取りはさらに増えます。2026年のOCP Korea Tech Dayで、韓国の研究機関ETRIは、NPUをクラウドのサービスとして届けるための基盤を示しました。[1・2]

    簡単にまとめると?

    • ETRIは、異なるメーカーのNPUを共通の管理基盤で見つけ、利用者の仕事へ割り当てる設計を示しています。
    • NPUの分割利用や対応モデルは装置・実装ごとに条件があり、掲載された全製品の互換性を保証するものではありません。
    • 段階的な更新と切り戻しを設計しますが、「無停止」は目標であり、すべての構成での実証結果ではありません。

    「装置がある」から「使える」まで

    NPUは、AIの計算を効率よく進めるための専用プロセッサーです。同じNPUという名前でも、メーカーごとにドライバーや開発環境、使えるモデル、メモリーの扱いが違います。研究者や開発者にとって必要なのはチップの一覧だけでなく、仕事を投げたら適切な装置に届き、実行状態を見られる入口です。

    ETRIの資料は、その入口をコンテナと仮想マシンの両方へ広げる構成を描きます。Kubernetesはコンテナの配置を、OpenStackは仮想マシンなどの基盤を受け持ち、その間にサービスの受付、装置の発見と割当て、ストレージやネットワークをつなぐ層を置いています。これは発表資料の設計例であり、すべてのNPUクラウドが同じ構成という意味ではありません。[1]

    メーカーが違っても、運用の入口をそろえる

    資料の図には、異なるメーカーのNPUを見つけ、必要なソフトウェアを入れ、装置の情報を利用者へ渡す部品が並びます。アプリケーションが直接すべての機種差を引き受けるより、基盤側に共通の管理面を置く考え方です。画面に複数の企業名があるからといって、各社のすべての製品やモデルの動作が保証されたわけではありません。[1]

    使える量も一枚岩ではありません。NPUを一つの仕事に丸ごと割り当てる場合と、対応する装置を分割して複数の仕事で使う場合では、隔離や性能の確認方法が変わります。資料には分割・再配置の案が示されていますが、分けられる数や性能は装置と実装の条件付きです。[1]

    更新中も使い続けるには、戻り道が要る

    クラウドではドライバーや装置用の部品を更新し続けます。ETRIは、複数の実行先を段階的に切り替え、問題が出たら元へ戻す流れを図にしています。「Zero-Downtime」という見出しは、この更新設計の目標として読むのが妥当です。すべての構成で停止ゼロを実証した数値は、資料には示されていません。[1]

    さらに資料は、NPUを含むKubernetesの作成画面と、LLMの性能試験ツールの画面を載せています。運用の入口に加え、性能を測る手段も示しています。一方、機種間の優劣やサービス全体の可用性を判断するには、モデル、入力長、バッチ、消費電力、測定回数などをそろえた別の検証が必要です。掲載画面だけで比較順位は付けられません。[1]

    資料の末尾には、openKcloudの公開リポジトリも示されています。ただ、コードが公開されていることと、全機能が実環境で安定して動くことは別です。[1・3]

    この発表の面白さは、NPUを「GPUの代わりの部品」として終わらせない点です。開発者が使い始められるか、更新を戻せるか、分割しても性能を説明できるか。半導体をサービスに変える仕事は、チップの外側にもあります。

    参考資料

    2026年9月23日確認。発表資料は画像主体の17頁で、構成図と画面を原寸で確認しました。講演動画・質疑応答は根拠に含めません。資料の「無停止」は設計図の表現で、全環境の運用実績として扱いません。

    [1]ETRI / Hyunhwa Choi「NPUaaS: A Redesign of the AI Semiconductor Cloud Service Platform」OCP掲載スライド(17頁。統合基盤p.8、異種装置管理pp.9–10、更新p.11、分割p.12、操作・測定画面pp.13–14)。

    [2]Open Compute Project「2026 OCP Korea Tech Day」(開催日、登壇者、資料の掲載)。

    [3]openKcloud公開リポジトリ(発表資料p.16の公開開発先。記事本文の性能・互換性の証拠としては用いていません)。