代码之家  ›  专栏  ›  技术社区  ›  Snowcrash

Kubernetes:无法删除命名空间

  •  0
  • Snowcrash  · 技术社区  · 6 年前

    kubectl config get-contexts
    CURRENT   NAME       CLUSTER    AUTHINFO   NAMESPACE
    *         dev        minikube   minikube   dev
              minikube   minikube   minikube
    
    kubectl delete namespace dev
    namespace "dev" deleted
    
    kubectl config get-contexts
    CURRENT   NAME       CLUSTER    AUTHINFO   NAMESPACE
    *         dev        minikube   minikube   dev
              minikube   minikube   minikube
    

    为了以防万一,我切换了上下文,但还是遇到了同样的问题。例如。

    kubectl delete namespace dev
    Error from server (NotFound): namespaces "dev" not found
    
    kubectl config get-contexts
    CURRENT   NAME       CLUSTER    AUTHINFO   NAMESPACE
              dev        minikube   minikube   dev
    *         minikube   minikube   minikube
    

    有趣的是,当我列出名称空间时,我看不到它。例如。

    kubectl get namespaces
    
    1 回复  |  直到 6 年前
        1
  •  4
  •   Ashu Pachauri    6 年前

    A context 在里面 kubectl 只是一个本地配置,包含有关特定集群或命名空间的详细信息(元数据)。这是使用 客户。

    所以,当你打字的时候 kubectl config <any_command> ,它只是在本地存储在您计算机上的文件中进行查找。

    kubectl config --help
    

    删除群集或命名空间不会删除关联的上下文。原因是删除集群或命名空间是在集群上运行的异步操作。实际完成此操作可能需要几秒钟以上的时间。因此, 在向群集主机发出删除后,无法立即从配置文件中删除上下文。

    要回答您的问题,您必须使用以下命令手动删除上下文:

    kubectl config delete-context dev