kubectl 使用标签创建命名空间

kubectl create namespace with label

有没有一种方法可以使用 kubectl 创建一个带有一个标签的命名空间?

例如

kubectl create ns <newnamespace> label=appid:foo12

相对于使用 kubectl apply -f <somefile>

马上这是不可能的,请参阅 kubectl help create ns 手册。 但是有解决办法: 您可以使用 kubectl 创建命名空间并立即使用 kubectl label namespaces <newnamespace> label=appid:foo12 标记它,或者您可以使用 kubectl 生成 yaml,您只需在其中添加标签:kubectl create namespace demo --dry-run=client -o yaml

如果你真的非常渴望在一个命令中完成所有操作,你可以修改 JSON 内联,例如

kubectl create namespace demo --dry-run=client -o yaml | \
 sed  '/^metadata:/a\ \ labels: {"demo":"true"}' | kubectl apply -f - 

这可能对您有帮助:

kubectl create namespace namespace_name
kubectl label namespaces namespace_name labelname=value --overwrite=true

在创建命名空间时还没有直接的方法来设置标签。首先,创建一个命名空间,然后标记它。 直到k8s版本“v1.20.15”,标签可以添加如下:

创建命名空间并添加标签:

kubectl create namespace test

kubectl label namespace test any_name=any_value 

更多信息:

kubectl label namespaces -h