如何在特定命名空间中创建 K8S 部署?

How to create K8S deployment in specific namespace?

我正在使用 kubectl apply -f https://k8s.io/examples/controllers/nginx-deployment.yaml 创建部署。

我想在我的命名空间 examplenamespace 中创建部署。

我该怎么做?

通过将 -n namespace 添加到您已有的命令中。它还适用于其他类型的资源。

kubectl apply -f https://k8s.io/examples/controllers/nginx-deployment.yaml -n namespacename

首先你需要像这样创建命名空间

kubectl create ns nameOfYourNamespace

然后在您的命名空间下创建部署

kubectl apply -f https://k8s.io/examples/controllers/nginx-deployment.yaml -n examplenamespace

NS 位于

kubectl create ns nameOfYourNamespace

代表命名空间

-n

kubectl apply -f https://k8s.io/examples/controllers/nginx-deployment.yaml -n examplenamespace

代表--命名空间


因此,您首先要创建命名空间,以便 Kubernetes 知道命名空间处理的是什么。

然后,当您要应用更改时,添加代表 --namespace 的 -n 标志,以便 Kubernetes 知道将在哪个命名空间下部署/创建适当的资源

存在三种可能的解决方案。

  1. kubectl 命令中指定命名空间:
kubectl apply -f https://k8s.io/examples/controllers/nginx-deployment.yaml -n my-namespace
  1. 在您的 yaml 文件中指定命名空间:
  apiVersion: apps/v1
  kind: Deployment
  metadata:
    name: my-deployment
    namespace: my-namespace
  1. 更改 ~/.kube/config 中的默认命名空间:
apiVersion: v1
kind: Config
clusters:
- name: "k8s-dev-cluster-01"
  cluster:
    server: "https://example.com/k8s/clusters/abc"
    namespace: "my-namespace"