如何在Kubernetes create部署命令中传递名称空间

如何在Kubernetes create部署命令中传递名称空间,kubernetes,Kubernetes,执行kubectl create deployment命令时,我试图定义名称空间名称 这就是我所尝试的: kubectl创建部署测试--image=banu/image1 namespace=test 这不管用 我想使用集群内的ClusterIP服务为给定名称空间公开此部署如何使用kubectl命令行?使用-n test而不是namespace=test 带有nginx图像的示例: $ kubectl create deployment nginx --image=nginx -n test d

执行
kubectl create deployment
命令时,我试图定义名称空间名称

这就是我所尝试的:

kubectl创建部署测试--image=banu/image1 namespace=test

这不管用


我想使用集群内的
ClusterIP
服务为给定名称空间公开此部署
如何使用
kubectl
命令行?

使用-n test而不是namespace=test

带有nginx图像的示例:

$ kubectl create deployment nginx --image=nginx -n test
deployment.apps/nginx created
$ kubectl get deploy -n test
NAME    READY   UP-TO-DATE   AVAILABLE   AGE
nginx   1/1     1            1           8s
在第二种情况下,您需要从部署中创建服务并定义标签。 您可以通过运行以下命令找到正确的标签:
kubectl-n测试描述部署测试| grep标签:
并应用以下服务:

apiVersion: v1
kind: Service
metadata:
  name: test-svc
  namespace: test
spec:

  ports:
  - name: test
    port: 80 # Change this port
    protocol: TCP
  type: ClusterIP
  selector:
    # Here you need to define output from previous step
  • 您需要创建这样一个名称空间
  • kubectl创建ns测试
    
    ns代表名称空间,所以对于kubectl,您表示希望创建名称为test的名称空间

  • 然后在创建部署时添加所需的命名空间
  • kubectl创建部署测试--image=banu/image1-n测试
    
    其中flag-n代表名称空间,这样您就可以对Kubernetes说,与该部署相关的所有资源都将在测试名称空间下

  • 以查看特定命名空间下的所有资源
  • kubectl获得全部-n测试
    
    --名称空间和-n是相同的东西
    
    您可以指定
    -n
    --namespace
    选项

    kubectl创建部署测试--image=nginx--namespace default--dry run-o yaml
    并查看结果部署yaml

    使用
    kubectl运行

    kubectl运行测试--名称空间测试--映像nginx--端口9090--干运行-o yaml
    
    谢谢,在此部署中如何定义
    containerPort
    8080
    ?是否像上面命令末尾的
    --containerPort=8080
    一样?我认为最好在endi中保留-n(或--namespace)标志,如果我在这里,我会在yaml文件中这样做,这意味着,我们
    应该
    containerPort
    手动编辑
    yaml
    文件,我们不能使用一行命令来设置它?谢谢,在这个部署中如何将
    containerPort
    定义为
    8080
    ?是否像上面命令末尾的
    --containerPort=8080
    一样?
    kubectl-n test edit deploy test
    并将我之前发布的服务中的端口更改为8080。另外,请为选择器使用正确的标签,或者如何使用
    kubectl
    命令而不真正编写
    yaml
    ?您可以使用kubectl edit命令,正如我在前面的评论中所述,即使使用
    edit
    也是手动操作。我只需要一个line命令和一个enter就可以做到这一点。谢谢,在这个部署中如何定义
    containerPort
    8080
    ?是否类似于上述命令末尾的
    --containerPort=8080
    ?您不能使用
    创建部署来定义端口。改为使用
    kubectl run
    。这里的
    --dry run
    是什么?通过将
    --help
    添加到
    kubectl