如何在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