You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何通过kubectl为Rancher命名空间指定项目并创建默认项目命名空间

1. 通过kubectl为Kubernetes命名空间设置Rancher项目

要把已有命名空间纳入指定Rancher项目,只需给命名空间添加Rancher识别的标签或注解,步骤如下:

  • 获取目标项目ID
    两种方式:

    • 打开Rancher UI进入目标项目,URL中的字符串(格式类似c-m-xxxxx:p-yyyyy)就是项目ID;
    • 用kubectl查询集群内的Rancher项目资源:
      kubectl get projects.cattle.io
      
      输出里的NAME字段即为项目ID。
  • 绑定命名空间到项目
    任选一种方式执行即可:

    • 添加标签:
      kubectl label namespace <命名空间名称> field.cattle.io/projectId=<目标项目ID>
      
    • 添加注解(适配部分旧版Rancher):
      kubectl annotate namespace <命名空间名称> field.cattle.io/projectId=<目标项目ID>
      

    操作完成后,Rancher会自动将该命名空间划入指定项目。

2. 通过kubectl+YAML在Rancher默认项目中创建命名空间

不需要REST API,用标签/注解就能实现,具体步骤:

  • 获取默认项目ID
    默认项目的名称通常是default,用kubectl快速获取其ID:

    kubectl get projects.cattle.io default -o jsonpath='{.metadata.name}'
    
  • 编写命名空间YAML文件
    创建一个YAML文件(比如default-ns.yaml),在metadata中添加field.cattle.io/projectId标签或注解,示例:

    apiVersion: v1
    kind: Namespace
    metadata:
      name: <自定义命名空间名>
      labels:
        field.cattle.io/projectId: <默认项目ID>
      # 也可以用注解替代标签,二选一即可
      # annotations:
      #   field.cattle.io/projectId: <默认项目ID>
    
  • 应用YAML创建命名空间
    执行命令完成创建:

    kubectl apply -f default-ns.yaml
    

    命名空间创建后会自动归属到Rancher的默认项目中。

额外说明:如果你的Rancher集群配置了自动分配规则(比如按命名空间前缀/后缀自动划入默认项目),也可以直接创建符合规则的命名空间,无需手动加标签/注解,但这种方式依赖集群的自定义配置,通用性不如标签/注解方案。

内容的提问来源于stack exchange,提问作者Hoffmann

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.28 08:47:07