有没有办法在引用唯一命名的项目时不在 kubernetes 中指定名称空间?
Is there a way to not specify namespace in kubernetes when referring to a uniquely named item?
如果我想 运行 是否可以避免指定命名空间,例如kubectl describe deployment <deployment_name>
对于唯一的部署?还是命名空间参数始终是强制性的?
这是强制性的。重点是 kubectl
正在使用 Kubernetes
API 获取有关 deployment
.
的信息
响应kubectl describe deployment <deployment_name>
需要调用的URL是:
GET /apis/apps/v1/namespaces/{namespace}/deployments/{deployment_name}
因此需要命名空间信息来构建 URL。
理论上,kubectl
工具可以列出集群中的所有部署并检索命名空间,但目前情况并非如此(我怀疑它永远不会)。
当您不在命令中使用命名空间参数时,它取自您 kubeconfig
中的活动上下文。据我所知,如果 none 在 current.
中找到,则无法在其他名称空间中搜索所请求的对象
尽管您可以在上下文中设置默认命名空间。如果您要在同一个命名空间中执行多个命令,这将很有帮助。为此:
kubectl config set-context --current --namespace=<insert-namespace-name-here>
之后它将默认使用给定的命名空间。
要列出此类资源,您可以对名称使用 Field Selector:
kubectl get deployments --all-namespaces --field-selector='metadata.name=<deployment_name>'
描述:
kubectl get deployments --all-namespaces --field-selector='metadata.name=<deployment_name>' -oyaml | kubectl describe -f -
如果我想 运行 是否可以避免指定命名空间,例如kubectl describe deployment <deployment_name>
对于唯一的部署?还是命名空间参数始终是强制性的?
这是强制性的。重点是 kubectl
正在使用 Kubernetes
API 获取有关 deployment
.
响应kubectl describe deployment <deployment_name>
需要调用的URL是:
GET /apis/apps/v1/namespaces/{namespace}/deployments/{deployment_name}
因此需要命名空间信息来构建 URL。
理论上,kubectl
工具可以列出集群中的所有部署并检索命名空间,但目前情况并非如此(我怀疑它永远不会)。
当您不在命令中使用命名空间参数时,它取自您 kubeconfig
中的活动上下文。据我所知,如果 none 在 current.
尽管您可以在上下文中设置默认命名空间。如果您要在同一个命名空间中执行多个命令,这将很有帮助。为此:
kubectl config set-context --current --namespace=<insert-namespace-name-here>
之后它将默认使用给定的命名空间。
要列出此类资源,您可以对名称使用 Field Selector:
kubectl get deployments --all-namespaces --field-selector='metadata.name=<deployment_name>'
描述:
kubectl get deployments --all-namespaces --field-selector='metadata.name=<deployment_name>' -oyaml | kubectl describe -f -