Namespaces not found

7/11/2019

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.

-- A. Gardner
kubernetes
minikube
namespaces

2 Answers

7/11/2019

Add namespace: n3 to deployment spec

-- P Ekambaram
Source: StackOverflow

7/11/2019

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.

-- A. Gardner
Source: StackOverflow