kubernetes 找不到命名空间

im9ewurl  于 2022-12-11  发布在  Kubernetes
关注(0)|答案(6)|浏览(287)

运行部署时出现以下错误:
Error from server (NotFound): error when creating "n3deployment.yaml": namespaces "n2" not found
我的n3deployment.yaml没有引用n2?

循序渐进

1.确保所有内容均为空

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.建立档案

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.应用配置

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

我曾经有一个名为n2的名称空间,但是,正如您所看到的,它已经不存在了。

bqucvtff

bqucvtff1#

我之前创建了两个上下文,我的minikube集群被设置为仍然在n2上下文中。我删除了上下文,重新运行命令,它工作了。

mdfafbf1

mdfafbf12#

添加命名空间:n3符合展开规范

yshpjwxd

yshpjwxd3#

在我的例子中,我创建了context并将--namespace设置为不存在的context,解决方案是使用kubectl命令只切换名称空间:

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

您可以使用以下方法检查您的情况是否存在相同的问题:

kubectl get svc -o wide
kubectl describe sa default | grep Namespace
jrcvhitl

jrcvhitl4#

我认为您可以使用kubens和kubectx来验证您在哪个名称空间和上下文上验证您的kubernetes清单文件

eoxn13cs

eoxn13cs5#

在您的n3deployment.yaml文件中,在元数据部分下也添加名称空间,如下所示

n3deployment.yaml
apiVersion: apps/v1
kind: Deployment
metadata:
  name: my-app-n3
  namespace: n3
  labels:
  app: my-app-n3
  ------
  -------
uxhixvfz

uxhixvfz6#

在我的情况下,我失踪之前就已经执行了:

kubectl create namespace n3

相关问题