Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Namespaces not found

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.

like image 335
A. Gardner Avatar asked Jul 11 '19 00:07

A. Gardner


3 Answers

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.

like image 103
A. Gardner Avatar answered Sep 24 '22 03:09

A. Gardner


Add namespace: n3 to deployment spec

like image 20
P Ekambaram Avatar answered Sep 22 '22 03:09

P Ekambaram


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
like image 36
rafalkasa Avatar answered Sep 24 '22 03:09

rafalkasa