TL

Cloud Service

Container Engine for Kubernetes (OKE)

コントロールプレーンを Oracle が運用するマネージド Kubernetes。アップストリーム互換で、AWS EKS に相当する本番向けコンテナ基盤。

中級信頼性運用上の優秀性パフォーマンス効率
最終更新: 2026-06-14公式ドキュメント ↗
TL;DR要点だけ先に
  • 1.コントロールプレーンをマネージド化したアップストリーム互換の Kubernetes。
  • 2.ワーカーはマネージドノードか仮想ノード(サーバーレス)から選べる。
  • 3.AWS の EKS に相当。kubectl・Helm・既存マニフェストをそのまま活用できる。

解決する課題

コンテナを本番で安定運用するには、コンテナの配置・自己修復・スケール・ローリング更新といったオーケストレーションが必要です。Kubernetes はその標準ですが、コントロールプレーン(API サーバー・etcd・スケジューラ)を自前で構築・運用するのは負担が大きく、可用性やバージョン管理も難所になります。OKE はこのコントロールプレーンを Oracle がマネージドで提供することで、その負担を引き受けます。

  • Kubernetes のコントロールプレーンを自分で構築・パッチ・冗長化したくない
  • マイクロサービスを本番で安定運用したい(落ちたら再起動、負荷で増減、無停止で更新)
  • 既存の Kubernetes 資産(マニフェスト / Helm チャート / kubectl 運用) をそのまま OCI に持ち込みたい
  • ワーカーのキャパシティ管理すら省きたい(仮想ノードでサーバーレス運用)

主要概念と用語

  • クラスタ(Cluster): OKE の管理単位。マネージドなコントロールプレーンと、ワークロードを動かすワーカーノードの集合で構成される
  • コントロールプレーン: API サーバー・etcd・スケジューラなど Kubernetes の頭脳。Oracle が運用し、複数の可用性ドメインに分散して冗長化される
  • ノードプール(Node Pool): 同一構成(シェイプ・イメージ・サイズ)のワーカーノードをまとめて管理する単位。プール単位でスケールやアップグレードを行う
  • マネージドノード(Managed Node): 自分のテナンシ内のコンピュートインスタンスがワーカーになる方式。OS・シェイプ・スケールを自分で制御でき、コスト最適化や特殊要件に強い
  • 仮想ノード(Virtual Node): ワーカーをサーバーレスに提供する方式。ノードのプロビジョニングやパッチが不要で、Pod 単位で課金される
  • 基本クラスタ / 拡張クラスタ(Basic / Enhanced Cluster): 機能と SLA が異なる2つのクラスタタイプ。拡張クラスタは追加機能と財務的に裏付けられた SLA を持つ
  • OCIR(Oracle Cloud Infrastructure Registry): コンテナイメージの格納先レジストリ(AWS の ECR に相当)
  • 動的グループ + ワークロード ID: Pod やノードに OCI 権限を渡す仕組み(AWS の IRSA / ノードロールに相当)
  • アドオン(Add-on): CoreDNS や kube-proxy などのクラスタ付帯コンポーネント。拡張クラスタではライフサイクルを OKE が管理する

仕様・制限・クォータ

  • 提供される Kubernetes はアップストリーム互換で、kubectl・Helm・標準マニフェストがそのまま使える
  • サポートされる Kubernetes バージョンは複数並行で提供され、順次更新・廃止される。最新のサポート状況は公式ドキュメントで確認する(特定バージョンを断定しない)
  • 基本クラスタは無料のコントロールプレーン、拡張クラスタはクラスタ管理料が発生し、より多くのノードや追加機能、SLA をサポートする
  • ワーカーはマネージドノード(コンピュート / Block Volume のクォータを消費)か仮想ノード(Pod 単位)から選択する
  • ノード・Pod・サービスの数や、クラスタあたりの規模には上限がある。クラスタタイプによって扱える規模が異なる
  • テナンシ/リージョンごとに**サービス制限(リミット)**があり、コンソールから引き上げ申請が可能
  • ワーカーは複数の可用性ドメイン / フォルトドメインに分散配置して冗長化できる

内部の仕組み

OKE のコントロールプレーンは Oracle が運用し、リージョン内で冗長化されています。ユーザーはコントロールプレーンの構築・パッチ・etcd のバックアップを意識せず、ワークロードとワーカーの設計に集中できます。ワーカー方式は2つあります。

  • マネージドノード: 自分のテナンシ内のコンピュートインスタンスがワーカーになる。ノードのシェイプ・OS イメージ・スケール戦略を自分で制御でき、GPU やベアメタルなど特殊シェイプも選べる。OS パッチやノードのアップグレードはユーザー側の管理範囲に含まれる
  • 仮想ノード: ワーカーをサーバーレスに提供する。ノードのキャパシティ管理・パッチが不要で、Pod 単位で課金される。運用負荷を最小化したい場合に向く

ネットワークは VCN 上に構築され、ワーカーや Pod はサブネットに配置されます。Pod 間通信には CNI が使われ、用途に応じてフランネル系VCN ネイティブ Pod ネットワーキング(Pod に VCN の IP を直接割り当てる方式)を選べます。外部公開には OCI のロードバランサと連携し、Kubernetes の Service / Ingress からプロビジョニングできます。

ワーカー方式の選び方

運用をできるだけ減らしたいなら仮想ノードでサーバーレスに。GPU・ベアメタル・細かなコスト最適化や特殊な OS 要件があるならマネージドノードを選ぶ。Kubernetes の枠組み自体はどちらも同じなので、ワークロードの移植性は保たれます。

設計パターン / ベストプラクティス

  • ノードプールを複数の可用性ドメイン / フォルトドメインに分散し、単一障害点を避ける
  • 役割の異なるワークロードはノードプールを分ける(汎用・GPU・スポット相当など)。taint / tolerationnodeSelector で配置を制御する
  • Cluster Autoscaler でノード数を、Horizontal Pod Autoscaler で Pod 数を自動調整し、負荷追従とコスト最適化を両立する
  • 無停止更新のため Deployment のローリング更新と Readiness/Liveness プローブを必ず設定する
  • 権限は OKE ワークロード ID(Pod 単位の OCI 認証)で最小限に付与し、資格情報をイメージに埋め込まない
  • イメージは OCIR に置き、イメージスキャンで脆弱性を検出してからデプロイする
  • 本番は SLA を持つ拡張クラスタを基本とし、検証や小規模は基本クラスタで足りる場合がある

運用・監視

  • メトリクスは OCI Monitoring、コンテナの標準出力やノードのログは OCI Logging で収集する
  • 日常操作は kubectl。kubeconfig は OCI CLI で取得し、トークンベースで認証する
  • ノードやクラスタのアップグレードは、コントロールプレーンを先に上げてからノードプールを更新するのが基本。マネージドノードは入れ替え(cordon / drain)を伴う
  • Pod が起動しない → イメージ取得権限(OCIR / ポリシー)、シェイプ(OCPU・メモリ)、サブネット容量や IP 枯渇、セキュリティリスト / NSG を確認する
  • 外部公開がつながらない → Service / Ingress とロードバランサのヘルスチェック、サブネットとセキュリティルールを確認する
  • 監視・ログ・アラームを Connector Hub などと組み合わせ、可観測性とアラート通知を整える

コスト

課金はおおむねクラスタタイプワーカー方式で決まります。基本クラスタはコントロールプレーンが無料、拡張クラスタはクラスタ管理料が加わります。ワーカーはマネージドノードならコンピュートと Block Volume の費用、仮想ノードなら Pod 単位の費用が発生します。変動する単価は断定せず、最新の料金は公式情報で確認してください。

項目課金対象向いている用途
基本クラスタワーカーのコンピュート / ストレージ(コントロールプレーンは無料)検証・学習・小規模
拡張クラスタクラスタ管理料 + ワーカー費用(SLA 付き)本番・大規模・追加機能が必要
マネージドノードワーカーの OCPU・メモリ・Block Volumeコスト最適化・GPU・特殊要件
仮想ノードPod 単位(vCPU・メモリ)ノード管理不要・可変ワークロード

セキュリティ

  • Pod の OCI 認証は OKE ワークロード ID を使い、資格情報のハードコードを排除する(AWS の IRSA に相当)
  • 操作権限は Kubernetes の RBAC と OCI の IAM ポリシーを組み合わせて制御する
  • イメージは OCIR に格納し、脆弱性スキャンを有効化する。プライベートサブネットと NSG / セキュリティリストで公開範囲を最小化する
  • シークレットは OCI Vault で管理し、Kubernetes Secret や環境変数経由で安全に注入する
  • API サーバーへのアクセスはプライベートエンドポイント化や許可 CIDR で絞り、不要な公開を避ける
  • PodSecurity などのポリシーで権限昇格や特権コンテナを制限する
アンチパターン

API キーや DB パスワードをコンテナイメージや Kubernetes マニフェストにベタ書きするのは NG。OKE ワークロード IDOCI Vault を使えば、資格情報を埋め込まずに最小権限で OCI を呼び出せ、漏洩・ローテーションのリスクを大幅に下げられます。

Well-Architected の観点

  • 信頼性(reliability): コントロールプレーンはマネージドで冗長化され、ワーカーを複数の可用性ドメイン / フォルトドメインに分散できる。自己修復・ローリング更新・オートスケールで継続稼働を支える
  • 運用上の優秀性(operational excellence): アップストリーム互換なので既存の kubectl / Helm 運用やマニフェストがそのまま使える。仮想ノードを選べばワーカーのパッチ・キャパシティ管理まで省ける
  • パフォーマンス効率(performance efficiency): ワークロードごとにノードプールやシェイプ(GPU・ベアメタル含む)を最適化し、HPA / Cluster Autoscaler で負荷に追従できる。VCN ネイティブ Pod ネットワーキングでネットワーク性能も確保できる

試験で問われるポイント

頻出
  • OKE はマネージド Kubernetesで、AWS の EKS に相当する。コントロールプレーンは Oracle が運用する
  • ワーカーはマネージドノード(自分のコンピュートインスタンス)と仮想ノード(サーバーレス・Pod 課金)の2方式から選べる
  • クラスタタイプは基本クラスタ拡張クラスタがあり、拡張クラスタは追加機能と SLA を持つ
  • Pod への OCI 権限付与は OKE ワークロード ID(AWS の IRSA に相当)。操作権限は RBAC + IAM ポリシーで制御する
  • イメージの格納先は OCIR(AWS の ECR に相当)。外部公開は OCI ロードバランサと Service / Ingress で連携する
  • 単発・短命のコンテナでオーケストレーションが不要なら Container Instances、継続運用・自己修復・スケールが必要なら OKE

関連サービス・比較

OKE は AWS の EKS にあたるマネージド Kubernetes です。周辺サービスとあわせて対応関係を押さえておくと理解が進みます。

観点OCI OKEAWS 対応
位置づけマネージド KubernetesEKS
コントロールプレーンOracle がマネージド運用AWS がマネージド運用
ワーカー方式マネージドノード or 仮想ノードEC2 ノードグループ or Fargate
Pod への権限付与OKE ワークロード IDIRSA
イメージ置き場OCIRECR
外部公開OCI ロードバランサ + Service / IngressELB + Service / Ingress
単発コンテナ実行Container Instances を併用Fargate / ECS を併用

ハンズオン / CLI例

# OKE: マネージドノードプール付きのクラスタを作成(バージョンは環境に合わせる)
oci ce cluster create \
  --compartment-id "ocid1.compartment.oc1..xxxx" \
  --name "demo-oke" \
  --kubernetes-version "v1.30.1" \
  --vcn-id "ocid1.vcn.oc1.phx.xxxx"

# 作成したクラスタを一覧して OCID と状態を確認
oci ce cluster list \
  --compartment-id "ocid1.compartment.oc1..xxxx" \
  --query "data[].{Name:name, State:\"lifecycle-state\", Version:\"kubernetes-version\"}" \
  --output table

# kubeconfig を取得して kubectl を使えるようにする
oci ce cluster create-kubeconfig \
  --cluster-id "ocid1.cluster.oc1.phx.xxxx" \
  --file "$HOME/.kube/config" \
  --region "us-phoenix-1" \
  --token-version "2.0.0"

# 接続確認:ノードと Pod の状態を見る
kubectl get nodes
kubectl get pods --all-namespaces

OCI Service

Container Engine for Kubernetes (OKE)を実務で読む

TL;DRは入口です。実際に選ぶ・使う段階では、何を解決するか、何と比較するか、導入後にどこで詰まるかまで見る必要があります。

解決すること

コンテナ

比較で見る軸

クラウド: OCI / カテゴリ: コンテナ / 難易度: intermediate

導入後に効く点

ワーカーはマネージドノードか仮想ノード(サーバーレス)から選べる。

先に潰すリスク

サービス単体ではなく、権限、ネットワーク、監視、課金、バックアップを含めて設計する必要がある。

数字・仕様の読み方
クラウド
OCI
カテゴリ
コンテナ
難易度
intermediate
関連資格
設計柱
reliability / operational / performance

判断チェックリスト

  • 自社の用途が「コンテナ / reliability」に近いか確認する。
  • 強みである「コントロールプレーンをマネージド化したアップストリーム互換の Kubernetes。」が本当に評価軸になるか確認する。
  • 注意点の「サービス単体ではなく、権限、ネットワーク、監視、課金、バックアップを含めて設計する必要がある。」を運用で吸収できるか確認する。
  • 公開値や仕様値は、対象プラン・対象機種・対象リージョンまで確認する。
  • 既存システム、ID、ネットワーク、監視、バックアップとの接続方法を先に洗い出す。
  • 小さく試してから、本番移行、権限設計、障害時手順、コスト監視を決める。

次に確認する観点

コンテナreliabilityoperationalperformance