Kubernetes v1.8.12 can';t list*extensions.Deployment
每个人 最近,我将我的k8s集群升级到v1.10.3,然后将其回滚到v1.9.8,然后再回滚到v1.8.12。在那之后,我发现了一些我不能理解的东西 我可以在默认命名空间中列出部署:Kubernetes v1.8.12 can';t list*extensions.Deployment,kubernetes,Kubernetes,每个人 最近,我将我的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
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
# kubectl get deploy -nkube-system
Error from server: no kind "Deployment" is registered for version "apps/v1"
但不能在我的kube系统命名空间中:
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
# 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.10中,apps API组中的对象开始以apps/v1格式(在1.9中引入)持久化在etcd中 从1.10.x回滚到1.9.x是安全的 如果要进一步回滚到1.8.x,必须首先往返所有apps/v1资源(守护程序集、部署、复制集、状态集),以确保它们以1.8可以读取的格式保存在etcd中
您收到的错误表明etcd中存在kubernetes 1.8 apiserver无法解码的apps/v1内容(因为apps/v1在1.8中不存在)。解决方案是升级到1.9.x,在再次降级到kube 1.8之前获取/放置所有现有应用程序/v1资源 在1.10中,apps API组中的对象开始以apps/v1格式(在1.9中引入)持久化在etcd中 从1.10.x回滚到1.9.x是安全的 如果要进一步回滚到1.8.x,必须首先往返所有apps/v1资源(守护程序集、部署、复制集、状态集),以确保它们以1.8可以读取的格式保存在etcd中
您收到的错误表明etcd中存在kubernetes 1.8 apiserver无法解码的apps/v1内容(因为apps/v1在1.8中不存在)。解决方案是升级到1.9.x,在再次降级到kube 1.8之前获取/放置所有现有应用程序/v1资源 多谢各位。那么,“往返应用程序/v1资源”是否意味着使用应用程序/v1beta2 api版本重新应用这些资源?顺便问一下,升级到v1.10后,是否需要使用apps/v1api版本重新应用extensions/v1beta1下的所有资源?或者干脆不接触旧资源,使用apps/v1 api版本应用新资源?往返含义“从API获取每个对象,然后按原样将其放回API。类似于
kubectl-get部署——所有名称空间-o yaml | kubectl-replace-f-
。1.10能够读取所有旧版本,因此您可以在升级后保持资源原样,下次写入时(无论何时),etcd存储的版本将更新为apps/v1非常感谢。那么,“往返应用程序/v1资源”是否意味着使用应用程序/v1beta2 api版本重新应用这些资源?顺便问一下,升级到v1.10后,是否需要使用apps/v1api版本重新应用extensions/v1beta1下的所有资源?或者干脆不接触旧资源,使用apps/v1 api版本应用新资源?往返含义“从API获取每个对象,然后按原样将其放回API。类似于kubectl-get部署——所有名称空间-o yaml | kubectl-replace-f-
。1.10能够读取所有旧版本,因此您可以在升级后保持资源原样,下次写入资源时(无论何时),etcd存储的版本将更新为apps/v1