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