Namespaces not found

13,636

Solution 1

I had previously created two contexts and my minikube cluster was set to still be in the n2 context. I deleted the context, re-ran the command and it worked.

Solution 2

Add namespace: n3 to deployment spec

Solution 3

In my case I created context and set --namespace to not existing one, the solution was switch namespace only using the kubectl commands:

kubectl config set-context --current --namespace=<namespace>

You can check if in your situation is the same problem using:

kubectl get svc -o wide
kubectl describe sa default | grep Namespace
Share:
13,636
A. Gardner
Author by

A. Gardner

Updated on June 11, 2022

Comments

  • A. Gardner
    A. Gardner almost 2 years

    I see the following error when I run my deployment:

    Error from server (NotFound): error when creating "n3deployment.yaml": namespaces "n2" not found

    My n3deployment.yaml has no reference to n2?

    Step By Step

    1. Ensure everything is empty
    c:\temp\k8s>kubectl get pods
    No resources found.
    
    c:\temp\k8s>kubectl get svc
    No resources found.
    
    c:\temp\k8s>kubectl get deployments
    No resources found.
    
    c:\temp\k8s>kubectl get namespaces
    NAME          STATUS    AGE
    default       Active    20h
    docker        Active    20h
    kube-public   Active    20h
    kube-system   Active    20h
    
    1. Create files
    n3namespace.yaml
    apiVersion: v1
    kind: Namespace
    metadata:
      name: n3
    
    n3service.yaml
    apiVersion: v1
    kind: Service
    metadata:
      name: my-app-n3
      namespace: n3
      labels:
        app: my-app-n3
    spec:
      type: LoadBalancer
      ports:
      - name: http
        port: 80
        targetPort: http
        protocol: TCP
      selector:
        app: my-app-n3
    
    n3deployment.yaml
    apiVersion: apps/v1
    kind: Deployment
    metadata:
      name: my-app-n3
      labels:
        app: my-app-n3
    spec:
      replicas: 1
      selector:
        matchLabels:
          app: my-app-n3
      template:
        metadata:
          labels:
            app: my-app-n3
        spec:
          containers:
          - name: waiter
            image: waiter:v1
            ports:
            - containerPort: 80
    
    1. Apply configuration
    c:\temp\k8s>kubectl apply -f n3namespace.yaml
    namespace "n3" created
    
    c:\temp\k8s>kubectl apply -f n3service.yaml
    service "my-app-n3" created
    
    c:\temp\k8s>kubectl apply -f n3deployment.yaml
    Error from server (NotFound): error when creating "n3deployment.yaml": namespaces "n2" not found
    

    I used to have a namespace called n2 but, as you can see, it no longer exists.