When a user creates a Kubernetes namespace via the Rancher UI, API or CLI the namespace is created within a specified Rancher project in the cluster; however, when a user creates a namespace via the kubectl CLI (
kubectl create ns <namespace>) it is created outside of any project, why is this?
- A cluster managed via Rancher v2.x
It is expected behaviour that namespaces created via the kubectl CLI are created outside of a Project. Projects are Rancher abstractions and do not exist natively within the Kubernetes, as a result when you create a namespace via the kubectl CLI (or by otherwise POST'ing directly to the kube-apiserver) it is not associated with any project in Rancher.
If you wish to create namespaces within a Rancher Project with a command-line tool, then you should use the Rancher CLI (https://rancher.com/docs/rancher/v2.x/en/cli/).
Where a namespace has been created outside a project via kubectl, a cluster admin can move the namespace into a project, within the 'Projects/Namespaces' view for the cluster.