ビュー:
プロファイル適用性: レベル1
ユーザポッドは、クラスターサービス用に予約されているため、kube-systemやkube-publicに配置しないでください。
ユーザポッドをkube-system以外の指定されたネームスペースにデプロイしてください。

監査

次のコマンドを実行し、各リソースタイプのユーザリソースのネームスペースを確認してください:
kubectl get pods -n kube-system
deploymentsservicesreplicasetsstatefulsetsdaemonsetsjobscronjobsに対して繰り返します。ユーザリソースがkube-systemネームスペースを使用しないようにしてください。

修復

ユーザネームスペースを作成し、それらのネームスペース内にユーザリソースを再作成します。追加の分離が強制されない限り、異なるネームスペース内のポッドとサービスは相互に通信できます。
次の例は、各チームまたはユーザグループのために、kubectlコマンドまたはYAMLファイルを使用してKubernetesネームスペースを作成できることを示しています。Kubernetesシステムで予約されているネームスペースと競合する可能性があるため、接頭辞kube-を含む名前は避けてください。
kubectl コマンドで名前空間を作成する:
kubectl create namespace <insert-namespace-name-here>
YAMLファイルを使用して名前空間を作成:
  1. my-namespace.yamlという名前の新しいファイルを作成し、次の内容を追加してください:
    apiVersion: v1
    kind: Namespace
    metadata:
    name: <insert-namespace-name-here>
  2. 次のコマンドを使用して名前空間を適用します:
    kubectl create –f ./my-namespace.yaml
  3. 既存のネームスペースで新しいPodを作成するには、次のコマンドを使用して目的のネームスペースに切り替えます:
    kubectl config use-context <insert-namespace-here>
  4. 次を使用して新しいデプロイを適用:
    kubectl apply -f deployment.yaml
  5. あるいは、namespaceをkubectlコマンドに追加することもできます:
    kubectl apply -fvdeployment.yaml --namespace=<insert-namespace-here>
    または、YAML宣言のメタデータで名前空間を指定します: <insert-namespace-here>
一度作成されたリソースは、ネームスペース間で移動することはできません。リソースを削除してから、新しいネームスペースで作成する必要があります。