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

Posted

技术标签:

【中文标题】如何在特定命名空间中创建 K8S 部署?【英文标题】:How to create K8S deployment in specific namespace? 【发布时间】:2020-04-03 07:47:47 【问题描述】:

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

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

我该怎么做?

【问题讨论】:

【参考方案1】:

有三种可能的解决方案。

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

【讨论】:

【参考方案2】:

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

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

【讨论】:

【参考方案3】:

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

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 知道将在哪个命名空间下部署/创建适当的资源

【讨论】:

以上是关于如何在特定命名空间中创建 K8S 部署?的主要内容,如果未能解决你的问题,请参考以下文章

如何在 Python 中创建命名空间包?

如何在命名空间中创建私有变量?

ReactiveMongoDatabase:如何预先创建集合:无法在多文档事务中创建命名空间

如何在 C# 中创建具有命名空间的文档

如何在 C# 中创建具有命名空间的文档

如何像docker一样在linux中创建未命名的网络名称空间?