求助:使用Rancher CLI在指定项目创建命名空间,却生成在默认项目
解决Rancher CLI在指定项目创建命名空间的问题
你当前的命令通过--dry-run生成的Namespace YAML未包含Rancher项目关联的专属标签,导致执行apply后命名空间被默认归类到default项目。以下是两种可行的解决方法:
方法一:直接使用Rancher CLI的命名空间创建命令
直接通过rancher namespace create指定目标项目,无需依赖kubectl管道:
rancher namespace create myns --project p-abc
注:p-abc为你登录时--context参数中的项目ID(即c-abc:p-abc冒号后的部分)
方法二:给kubectl生成的YAML添加项目标签
如果坚持使用kubectl的方式,需要手动添加Rancher关联项目的标签:
- 生成基础的Namespace YAML文件:
rancher kubectl create namespace myns --dry-run=client -o yaml > myns.yaml - 编辑
myns.yaml,在metadata.labels中添加Rancher项目ID标签:apiVersion: v1 kind: Namespace metadata: name: myns labels: field.cattle.io/projectId: p-abc - 应用修改后的YAML文件:
rancher kubectl apply -f myns.yaml
原理说明
Rancher通过field.cattle.io/projectId标签建立命名空间与项目的关联关系,缺少该标签时,Rancher会自动将命名空间分配到default项目中。
内容的提问来源于stack exchange,提问作者Maxster17
相关产品推荐
相关产品推荐

