Keyboard shortcuts

Press or to navigate between chapters

Press S or / to search in the book

Press ? to show this help

Press Esc to hide this help

共有ノードを使用する

Warning

本機能は現状では SR1 のみでの提供となっています。 また、提供される共有ノードの数には上限があり、利用状況によっては利用できない可能性があります。 共有ノードの利用状況の可視化は今後の提供を予定しています。

PFCP では、複数の組織で共有されるノードを提供しています。共有ノードは、組織に割り当てられた専有ノードとは異なり複数の組織で共有されます。

利用できるノード

以下を共有ノードとして提供しています。

  • MN-Server 2(preferred.jp/mncore2

利用方法

Pod に専用の PriorityClass を指定することで、自動的に共有ノードにスケジューリングされます。PriorityClass は Pod の優先度を指定するための機能ですが、ここではどのタイプのノードに Pod をスケジューリングするかの制御にも利用されます。 そのため、利用者自身によるノード選択(nodeSelector の記述)は不要です。 以下は Pod を共有ノードで利用する例です。

apiVersion: v1
kind: Pod
metadata:
  name: shared
spec:
  priorityClassName: shared-standard # or shared-best-effort
  ...(省略)...

共有ノードを使用するための PriorityClass は以下の通りです。

  • shared-standard: 共有ノード用の PriorityClass のなかでもっとも優先度が高くプリエンプトされない(追い出されない)
  • shared-best-effort: shared-standard PriorityClass の Pod にプリエンプトされる

Pod の優先度とプリエンプションの詳細は Kubernetes 公式ドキュメントを参照ください。

共有ノードで各組織が利用できる MN-Core 2 の数は PriorityClass それぞれで上限が設定されています。以下のコマンドで利用可能な MN-Core 2 の数を確認できます。

kubectl -n org-<組織名> get hrq shared-standard shared-best-effort -o yaml

Warning

PriorityClass experimental-shared は廃止予定です。2025/9/1 に利用できなくなります。

制約事項

  • 永続ストレージのファイルストレージ(StorageClass standard-rwx-<組織名>)が使用できません
    • RWO の永続ストレージは利用可能です。
  • 1 つの MN-Core 2 で要求できる最大リソース量には制限があります。1 Pod で 2 つの MN-Core 2 を要求する場合では上限値は 2 倍になります。各リソースの 1 つの MN-Core 2 あたりの上限値は以下の通りです。
    リソース1つの MN-Core 2 あたりの上限値
    CPU7000m
    Memory125Gi
    Ephemeral Storage80Gi

セキュリティ

共有ノードは専有ノードとは異なり、複数の組織のワークロードが同じノード上でカーネルを共有します。 組織間のセキュリティ境界についてより強固な分離が必要な場合は、専有ノードの利用を推奨します。

追加のセキュリティ対策

共有ノードでは Linux の User Namespaces を用いて、ホストから Pod 内のコンテナの UID/GID を強制的に分離します。 この技術を用いることで脆弱性等によりコンテナからホストに侵入された場合でも、ホスト内の root ユーザ、つまり UID が 0 のユーザとしてホストを操作できないため、リスクが低減されます。 Linux の User Namespaces は過去の多くのコンテナに関する CVE を防ぐことが知られています1。 詳細は Kubernetes 公式の User Namespaces のドキュメントをご参照ください。


  1. https://github.com/kubernetes/enhancements/tree/217d790720c5aef09b8bd4d6ca96284a0affe6c2/keps/sig-node/127-user-namespaces#motivation