gpt4 book ai didi

kubernetes - 如何修复来自服务器的 kubectl 错误 (NotFound) : the server could not find the requested resource

转载 作者:行者123 更新时间:2023-12-02 11:53:13 25 4
gpt4 key购买 nike

我是按照官方说明安装 kubectl 的,但是当我尝试 kubectl apply -f 时,我得到了“服务器错误(NotFound):服务器找不到请求的资源 ”错误。

网上说是因为kubectl的Client和Server Version不一样

我会检查 kubectl 的版本:

客户端版本:version.Info{Major:"1", Minor:"17", GitVersion:"v1.17.2", GitCommit:"59603c6e503c87169aea6106f57b9f242f64df89", GitTreeState:"clean", BuildDate:"2020- 01-18T23:30:10Z", GoVersion:"go1.13.5", Compiler:"gc", Platform:"linux/amd64"}

服务器版本:version.Info{Major:"1", Minor:"6", GitVersion:"v1.6.4", GitCommit:"d6f433224538d4f9ca2f7ae19b252e6fcb66a3ae", GitTreeState:"dirty", BuildDate:"2017- 06-22T04:31:09Z", GoVersion:"go1.7.5", Compiler:"gc", Platform:"linux/amd64"}

如果是官方安装,为什么版本差别这么大?这个错误真的是问题吗?

我还有 docker、docker-compose 和 minikube。

操作系统 Linux Mint

最佳答案

@David Maze 提到将社区 Wiki 发布作为根本原因

正如评论中所指出的,你们的版本非常不同。 Kubernetes 1.7已发布 ~ 2017 年 7 月,当时 Kubernetes 1.17发布于 2020 年 1 月(相差将近 2.5 年)。另一件事是 DockerMinikube 的版本必须支持 kubernetes 版本。

例如,如果您想在最新的 Minikube 版本上运行 Kubernetes 1.6.3,则会发生错误。

minikube v1.7.3 on Ubuntu 16.04
✨ Using the none driver based on user configuration
⚠️ Specified Kubernetes version 1.6.4 is less than the oldest supported version: v1.11.10
💣 Sorry, Kubernetes 1.6.4 is not supported by this release of minikube

此外,在 1.15 和 1.16 版本之间,apiVersions 也发生了巨大变化。可以找到更多详细信息here .

this Stackoverflow thread解释了 kubectl version 中显示的内容。

The second line ("Server Version") contains the apiserver version.

例如 Network Policy API 是在 Kubernetes 1.7 中引入的,所以如果你想在 1.6 中使用它,你会得到错误,因为 API 无法识别它。

我已经重现了你的问题。

minikube:~$ kubectl version
Client Version: version.Info{Major:"1", Minor:"17", GitVersion:"v1.17.3", GitCommit:"06ad960bfd03b39c8310aaf92d1e7c12ce618213", GitTreeState:"clean", BuildDate:"2020-02-11T18:14:22Z", GoVersion:"go1.13.6", Compiler:"gc", Platform:"linux/amd64"}
Server Version: version.Info{Major:"1", Minor:"6", GitVersion:"v1.6.3", GitCommit:"0480917b552be33e2dba47386e51decb1a211df6", GitTreeState:"dirty", BuildDate:"2017-05-12T10:50:10Z", GoVersion:"go1.7", Compiler:"gc", Platform:"linux/amd64"}
minikube:~$ kubectl get pods
Error from server (NotAcceptable): the server was unable to respond with a content type that the client supports (get pods)
minikube:~$ kubectl get nodes
Error from server (NotAcceptable): the server was unable to respond with a content type that the client supports (get nodes)
minikube:~$ kubectl run nginx --image=nginx
WARNING: New generator "deployment/apps.v1" specified, but it isn't available. Falling back to "deployment/apps.v1beta1".
kubectl run --generator=deployment/apps.v1 is DEPRECATED and will be removed in a future version. Use kubectl run --generator=run-pod/v1 or kubectl create instead.
error: no matches for kind "Deployment" in version "apps/v1"

正如我之前提到的,Network Policy 是在 1.7 中引入的。当你尝试申请 this config来自 Kubernetes 官方文档,它会显示与您相同的错误。

minikube:~$ kubectl apply -f network.yaml 
Error from server (NotFound): the server could not find the requested resource.

最推荐的方法是根据Docker docs 安装最新版本的docker、kubernetes 和minikube(安全和最新功能)和 Kubernetes kubectl docsMinikube .

另一种选择是降级所有组件。

关于kubernetes - 如何修复来自服务器的 kubectl 错误 (NotFound) : the server could not find the requested resource,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60305776/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com