管理対象ノードとの仮想ノードの比較
Container Engine for Kubernetes (OKE)を使用して作成できる仮想ノードと管理対象ノードの違いを確認します。
Container Engine for Kubernetesを使用してノード・プールを作成する場合、ノード・プールに作成するワーカー・ノードのタイプを次のいずれかとして指定します:
- 仮想ノード:仮想ノードはOracleによって完全に管理されます。仮想ノードおよび仮想ノード・プールを参照してください。
- 管理対象ノード:管理対象ノードは、テナンシのコンピュート・インスタンス(ベア・メタルまたは仮想マシン)で実行され、少なくとも部分的に管理されます。管理対象ノードおよび管理対象ノード・プールを参照してください。
拡張クラスタにのみ仮想ノードを作成できます。管理対象ノードは、基本クラスタと拡張クラスタの両方に作成できます。
Container Engine for Kubernetesドキュメントのノードおよびワーカー・ノードへのすべての参照は、特に明記されていないかぎり、仮想ノードと管理対象ノードの両方を参照します。
仮想ノードおよび仮想ノード・プール
仮想ノードはContainer Engine for Kubernetesテナンシで実行されます。仮想ノードを作成するには、仮想ノード・プールを作成します。仮想ノードおよび仮想ノード・プールは、Oracleによって完全に管理されます。
仮想ノードはサーバーレスのKubernetesエクスペリエンスを提供し、データ・プレーン・インフラストラクチャのアップグレードやクラスタの容量の管理といった運用上のオーバーヘッドなしで、コンテナ化されたアプリケーションを大規模に実行できます。
拡張クラスタでは、仮想ノードおよびノード・プールのみを作成できます。
仮想ノードによってサポートされる著名な機能
管理対象ノードではなく仮想ノードを使用する場合、一部の機能のサポートは異なります。
-
リソース割当て:リソース割当ては、ワーカー・ノード・レベルではなくポッド・レベルです。そのため、ノード・プール内のワーカー・ノードではなく、ポッド仕様でCPUおよびメモリー・リソース要件(リクエストおよび制限として)を指定します。仮想ノードによってプロビジョニングされたポッドに割り当てられたリソースを参照してください。
- ロード・バランシング:ロード・バランシングは、ワーカー・ノード間ではなくポッド間です(管理対象ノードの場合と同様)。仮想ノードを含むクラスタでは、ロード・バランサ・セキュリティ・リスト管理が有効になっていないため、常にセキュリティ・ルールを手動で構成する必要があります。ロード・バランサは、ポッドのIPアドレスと割り当てられたノード・ポート間でトラフィックを分散します。仮想ノードで実行されているポッドに接続する場合は、
<node-ip>:<nodeport>
ではなく構文<pod-ip>:<nodeport>
を使用します。ポッドおよびノードに異なるサブネットを使用する場合は、ポッド・サブネットでノード・ポート・イングレスを構成します。 - ポッド・ネットワーキング: VCNネイティブ・ポッド・ネットワーキングのみがサポートされています(フルチャネルCNIプラグインはサポートされていません)。さらに、仮想ノードを使用する場合のサポートは若干異なります。
- 各仮想ノードにアタッチされるVNICは1つのみです。
- IPアドレスは、ポッドが作成される前に事前に割り当てられていません。
- VCN-Native Pod Networking CNIプラグインはkube-systemネームスペースで実行中として表示されません。
- VCNネイティブ・ポッド・ネットワーキングのみがサポートされているため、ポッド・サブネット・ルート表には(インターネット・ゲートウェイではなく) NATゲートウェイおよびサービス・ゲートウェイに対して定義されたルート・ルールが必要です。
- 自動スケーリング:仮想ノードは、500ポッドをサポートするように自動的にスケーリングされます。Oracleは仮想ノードの基礎となるリソースを管理するため、Kubernetes Horizontal Pod Autoscalerを使用すると簡単に操作できます。Kubernetes Cluster Autoscalerを使用する必要はありません(仮想ノードではまだサポートされていません)。Kubernetes Vertical Pod Autoscalerは仮想ノードではサポートされていません。
仮想ノードの使用時にサポートされない著名なKubernetesの機能
管理対象ノードではなく仮想ノードを使用する場合、一部のKubernetes機能がサポートされていないか、まだ使用できません。
Kubernetes機能はサポートされていません | 追加情報 |
---|---|
Flannelおよびその他のサード・パーティのCNIプラグインはサポートされていません。 | 仮想ノードはOCI VCN-Native Pod Networking CNIプラグインのみをサポートします。 |
Kubernetesデーモンセットはサポートされていません。 |
たとえば、次はサポートされません。
|
永続ボリューム要求(PVC)はサポートされていません。 | 追加情報がありません。 |
クラスタで使用されるCNIプラグイン(CalicoやCiliumなど)とともにNetworkPolicyリソースをサポートするネットワーク・プロバイダはサポートされていません。 | 追加情報がありません。 |
ネットワーク・ポリシー(Kubernetes NetworkPolicyリソース)はサポートされていません。 | 追加情報がありません。 |
サービス・メッシュ製品はサポートされていません。 | Oracle Cloud Infrastructure Service MeshやIstio Service Meshなどの製品はサポートされません。 |
HTTPタイプのLiveness and Readinessプローブはサポートされています。 HTTPS、gRPC、およびexecプローブはサポートされていません。 起動プローブはサポートされていません。 probe.terminationGracePeriodSecondsはサポートされていません。 |
たとえば、次がサポートされています。 ただし、次はサポートされていません:
|
|
たとえば、次はサポートされません。
|
一時コンテナはサポートされていません。 | 追加情報がありません。 |
Init-containersはサポートされていません。 | 追加情報がありません。 |
次のボリュームタイプはサポートされています。
次のボリュームタイプはサポートされていません。
|
たとえば、次はサポートされません。
|
ポッド仕様では、現在、タイプemptyDirの最大1ボリュームを定義できます。 | 追加情報がありません。 |
次のポッド・フィールドはサポートされていません:
|
たとえば、次はサポートされません。
|
次のポッド・セキュリティ・コンテキストはサポートされています。
次のポッド・セキュリティ・コンテキストはサポートされていません。
|
たとえば、次はサポートされません。
|
次のコンテナ・セキュリティ・コンテキストはサポートされています。
次のコンテナ・セキュリティ・コンテキストはサポートされていません。
|
たとえば、次はサポートされません。
|
Container.Port
|
たとえば、次はサポートされません。
|
コンテナ
|
Kubernetesは、デフォルトでTerminationMessagePolicyおよびTerminationMessagePathを追加します。 |
コンテナ・ポート範囲(1、65535)は、NodePort範囲(30000-32767)と競合できません。 | たとえば、次はサポートされません。
|
Pod.Volumes.EmptyDirVolumeSource:SizeLimit | たとえば、次はサポートされません。
|
Pod.Volumes.EmptyDirVolumeSource:Medium - ""または"Memory"のみ使用できます | たとえば、次はサポートされません。
|
Pod:Volumes - 次に対してモードを0644として指定する必要があります。
|
たとえば、次はサポートされません。
|
ポッド: ボリューム- 次に対してDefaultModeが指定されている場合、DefaultModeは0644である必要があります:
|
たとえば、次はサポートされません。
|
Resources.RequestsはResources.Limitsと異なることはできません | たとえば、次はサポートされません。
|
ボリューム:DownwardAPI:ResourceFieldRef | たとえば、次はサポートされません。
|
TerminationGracePeriodSeconds | たとえば、次はサポートされません。
|
DeletionGracePeriodSeconds | たとえば、次はサポートされません。
|
実行コンテナ | たとえば、次はサポートされません。
|
Kubectl port-forwardコマンド | かわりにkubectl proxy を使用します(kubectlポートフォワードではなくkubectlプロキシを使用した仮想ノードでのポッドおよびサービスのトラブルシューティングを参照)。 |
pod.spec.containers[].imageへの突然変異を含むUpdatePodリクエスト | 追加情報がありません。 |
マウントされた構成マップおよびシークレットへの更新のポッドへの伝播 | 追加情報がありません。 |
仮想kubeletメトリック・エンドポイントのコンテナ・レベルのメトリック | 追加情報がありません。 |
コンテナ: 生産資源所要量サブコア | 追加情報がありません。 |
コンテナ標準入力/stdinOnce、tty | 追加情報がありません。 |
externalTrafficPolicyの場合、クライアントIPアドレスを保持します: ローカル | 追加情報がありません。 |
configおよびconfigJson以外のImagePullSecretタイプ | 追加情報がありません。 |
ProjectedVolumeSource:ServiceAccountTokenProjection:ExpirationSeconds | 追加情報がありません。 |
既存のコンテナ内ですでに実行されているプロセスと対話するkubectl attach コマンド。 |
追加情報がありません。 |
仮想ノードの使用時にはサポートされていない注目のContainer Engine for Kubernetesの機能
Container Engine for Kubernetesの一部の機能は、管理対象ノードではなく仮想ノードを使用する場合、使用できないか、まだ使用できません。
Container Engine for Kubernetes機能はサポートされていません | 追加情報 |
---|---|
ワーカー・ノードへのSSH接続(要塞経由を含む) | 使用できません。 |
カスタムcloud-initスクリプトの使用 | 使用できません。 |
Node Doctorスクリプト | 使用できません。 |
バージョン1.25より前のKubernetesバージョンのサポート | 仮想ノードでは、クラスタでKubernetesバージョン1.25以上が実行されている必要があります。 |
仮想ノードと管理対象ノードの両方を含む混合クラスタ。 | まだ使用不可です。 |
仮想ノードの数を自動スケールします。 | まだ使用不可です。 |
仮想ノードをプロビジョニングするための容量予約。 | まだ使用不可です。 |
IntelおよびGPUシェイプのポッド。 | まだ使用不可です。 |
資格証明のローテーション(クラスタ資格証明のローテーションを参照) | まだ使用不可です。 |
仮想ノードを使用する場合、共通デプロイメントがサポートされず、異なる方法でサポートされます。
次の一般的なデプロイメントは、管理対象ノードではなく仮想ノードを使用する場合はサポートされず、異なる方法でサポートされます。
デプロイメント | ノート |
---|---|
kube-systemネームスペースおよびkube-proxyクラスタ・アドオン内のkube-proxy | kube-proxyは、仮想ノードでスケジュールされたポッドで実行されますが、kube-systemネームスペースにデプロイされません。 |
Kubernetes Dashboard | 仮想ノードを使用する場合、サポートされていません。 |
Nginxイングレス・コントローラ | 仮想ノードを使用する場合は、異なる方法でデプロイします(サンプル・イングレス・コントローラの設定を参照)。 |
Kubernetesクラスタ・オートスケーラ | 仮想ノードを使用する場合、サポートされていません。 |
Vertical Pod Autoscaler | 仮想ノードを使用する場合、サポートされていません。 |
Kubernetesメトリック・サーバー | 仮想ノードの使用時に異なる方法でデプロイします(Kubectlを使用したクラスタへのKubernetesメトリック・サーバーのデプロイを参照)。 |
管理対象ノードと管理対象ノード・プール
管理対象ノードは、テナンシのコンピュート・インスタンス(ベア・メタルまたは仮想マシン)で実行されます。管理対象ノードを作成するには、管理対象ノード・プールを作成します。管理対象ノードと管理対象ノード・プールは、ユーザーが管理します。
管理対象ノードの管理を担当しているため、特定の要件を満たすように柔軟に構成できます。管理対象ノードのKubernetesのアップグレードおよびクラスタ容量の管理は、ユーザーの責任となります。
管理対象ノードを使用する場合、アプリケーションを実行するコンピュート・インスタンスに対して支払います。
管理対象ノードとノード・プールは、基本クラスタと拡張クラスタの両方に作成できます。
管理対象ノードによってサポートされる著名な機能
仮想ノードではなく管理対象ノードを使用する場合、一部の機能のサポートは異なります。
- リソース割当:リソース割当は、ポッド・レベルではなくワーカー・ノード・レベルです。そのため、ポッド仕様ではなく、ノード・プール内のワーカー・ノードのCPUおよびメモリー・リソース要件を指定します。
- ロード・バランシング:ロード・バランシングは、(仮想ノードの場合と同様に)ポッド間ではなくワーカー・ノード間です。したがって、ポッド準備ゲートを使用して、管理対象ノードを含むクラスタ内のロード・バランサ・バックエンド・セットにトラフィックをルーティングすることはできません。
- ポッド・ネットワーキング: VCNネイティブ・ポッド・ネットワーキングCNIプラグインとフルチャネルCNIプラグインの両方がサポートされています。
- 自動スケーリング: Kubernetes Cluster AutoscalerおよびVertical Pod Autoscalerの使用がサポートされています。
管理対象ノードの使用時に、重要な機能がサポートされていないか、まだ使用できません
- Kubernetes taint