檢視次數:
設定檔適用性:級別 1
使用者 Pods 不應放置在 kube-system 或 kube-public 中,因為這些是保留給叢集服務的。
將使用者 pod 部署到 kube-system 以外的指定命名空間中。

稽核

執行以下命令並檢查每個資源類型的使用者資源命名空間:
kubectl get pods -n kube-system
deploymentsservicesreplicasetsstatefulsetsdaemonsetsjobscronjobs 重複此操作。確保沒有使用者資源使用 kube-system 命名空間。

補救

建立使用者命名空間並在這些命名空間中重新建立使用者資源。不同命名空間中的 Pod 和服務仍然可以相互通信,除非強制執行額外的隔離。
以下範例適用於每個團隊或使用者群組,可以使用 kubectl 命令或 YAML 檔案來建立 Kubernetes 命名空間。應避免使用 kube- 前綴的任何名稱,因為它可能會與 Kubernetes 系統保留的命名空間衝突。
使用 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. 要在現有的命名空間中建立新的 Pods,請使用以下命令切換到所需的命名空間:
    kubectl config use-context <insert-namespace-here>
  4. 使用以下方式應用新部署:
    kubectl apply -f deployment.yaml
  5. 或者,可以使用以下方式將命名空間新增到 kubectl 命令中:
    kubectl apply -fvdeployment.yaml --namespace=<insert-namespace-here>
    或者在 YAML 聲明中的 metadata 下指定命名空間:<insert-namespace-here>
一旦建立,資源無法在命名空間之間移動。必須刪除資源,然後在新的命名空間中建立。