代码之家  ›  专栏  ›  技术社区  ›  Kun Li

Kubernetes v1.8.12无法列出扩展名。

  •  0
  • Kun Li  · 技术社区  · 8 年前

    每个人

    最近,我将k8s集群升级到v1.10.3,然后将其回滚到v1.9.8,然后再回滚到v1.8.12。之后我发现了一些我无法理解的东西。

    我可以在默认命名空间中列出部署:

    NAME                          DESIRED   CURRENT   UP-TO-DATE   AVAILABLE   AGE
    dunking-hedgehog-helmet       1         1         1            1           197d
    kube-system-tomcat-official   1         1         1            1           197d
    mongodb                       1         1         1            1           152d
    smelly-pig-mysql              1         1         1            1           204d
    

    但不能在我的kube系统名称空间中:

    # kubectl get deploy -nkube-system
    Error from server: no kind "Deployment" is registered for version "apps/v1"
    

    另外,apiserver启动日志:

    E0530 10:47:09.511854       1 cacher.go:277] unexpected ListAndWatch error: storage/cacher.go:/daemonsets: Failed to list *extension
    s.DaemonSet: no kind "DaemonSet" is registered for version "apps/v1"
    E0530 10:47:09.534114       1 cacher.go:277] unexpected ListAndWatch error: storage/cacher.go:/daemonsets: Failed to list *extension
    s.DaemonSet: no kind "DaemonSet" is registered for version "apps/v1"
    E0530 10:47:09.577678       1 cacher.go:277] unexpected ListAndWatch error: storage/cacher.go:/replicasets: Failed to list *extensio
    ns.ReplicaSet: no kind "ReplicaSet" is registered for version "apps/v1"
    E0530 10:47:09.580008       1 cacher.go:277] unexpected ListAndWatch error: storage/cacher.go:/deployments: Failed to list *extensio
    ns.Deployment: no kind "Deployment" is registered for version "apps/v1"
    E0530 10:47:09.580234       1 cacher.go:277] unexpected ListAndWatch error: storage/cacher.go:/deployments: Failed to list *extensio
    ns.Deployment: no kind "Deployment" is registered for version "apps/v1"
    

    我们都知道api版本apps/v1是从v1.9.0开始添加的,那么v1.8.12为什么要尝试注册“apps/v1”版本的部署呢?

    1 回复  |  直到 8 年前
        1
  •  2
  •   Jordan Liggitt    8 年前

    从1.10.x回滚到1.9.x是安全的

    如果要进一步回滚到1.8.x,必须首先往返所有apps/v1资源(守护进程、部署、复制集、statefulset),以确保它们以1.8可以读取的格式保存在etcd中。

    您得到的错误表明etcd中存在kubernetes 1.8 apiserver无法解码的apps/v1内容(因为1.8中不存在apps/v1)。解决方案是升级到1.9.x,获取/放置所有现有的应用程序/v1资源,然后再降级到kube 1.8。

    推荐文章