Kubernetes:kubectl run命令未找到。

22

我正在使用kubectl命令在gcloud上部署我的应用程序。但突然间kubectl命令停止工作了。 kubectl 命令可以正常工作,但是对于其他所有命令都显示"command not found"。

kubectl create bash: kubectl create: command not found

kubectl run bash: kubectl run: command not found

SBGML02586:~ mku01$ kubectl
kubectl controls the Kubernetes cluster manager. 

Find more information at: https://kubernetes.io/docs/reference/kubectl/overview/

Basic Commands (Beginner):
  create         Create a resource from a file or from stdin.
  expose         Take a replication controller, service, deployment or pod and
expose it as a new Kubernetes Service
  run            Run a particular image on the cluster
  set            Set specific features on objects......

1
如果你运行 echo $PATH,你会得到什么? - cookiedough
@user1529891,您可以看到已编辑的问题,kubectl已正确安装。 - krmanish007
2
你能否运行 strace -f kubectl run 或类似的命令(并将输出添加到问题中)?看起来你的 shell 可能无法处理空格,以某种方式它认为整个 kubectl\ run 文件是一个程序名。 - ahmet alp balkan
你能加上 kubectl 版本吗? - Amityo
我认为我的本地文件系统可能已经损坏了,所以正在考虑删除所有内容并重新安装。 - krmanish007
显示剩余3条评论
5个回答

40

第一次在Linux上安装Kubernetes时,我遇到了类似的错误:

当我尝试运行命令时:

kubectl cluster-info
kubectl version

我遇到了错误:

-bash: kubectl: command not found

以下是我是如何解决的:

使用以下命令下载最新的Kubernetes版本:

curl -LO "https://storage.googleapis.com/kubernetes-release/release/$(curl -s https://storage.googleapis.com/kubernetes-release/release/stable.txt)/bin/linux/amd64/kubectl"

将 kubectl 二进制文件变为可执行文件:

chmod +x ./kubectl

将二进制文件移动到您的 PATH 中:
sudo mv ./kubectl /usr/local/bin/kubectl

测试以确保您安装的版本是最新的:

kubectl cluster-info
kubectl version

您可以在 Kubernetes 官方文档中更多地了解它:安装和设置 kubectl

就这些。

希望对您有所帮助。


1
我认为对于刚开始使用Kubernetes(像我一样..)的新手来说,重要的是要提醒他们这些命令应该从不同于root的帐户中运行,并具有sudo的特权。在我的情况下,我之所以被阻止启动,只是因为我将安装作为root运行。 - Ricardo Rivera Nieves
1
好的解决方案,解释清晰明了,非常感谢。 - David Robertson
1
非常感谢你提供的好的解决方案和清晰的解释。 - undefined

9

在使用Windows上的wsl时,我收到了这个消息。kubectl之前一直正常工作,但突然开始显示相同的错误。

/mnt/c/Users/xxxx$ kubectl
kubectl: command not found

问题是在我重新启动了笔记本电脑后,docker没有启动。
:/usr/local/bin$ ls -ltr
total 2548
-rwxr-xr-x 1 root root     221 Sep 18  2020 pip3.8
-rwxr-xr-x 1 root root     221 Sep 18  2020 pip3
-rwxr-xr-x 1 root root     221 Sep 18  2020 pip
-rwxr-xr-x 1 root root     208 Sep 18  2020 wheel
-rwxr-xr-x 1 root root 2592768 Apr  5 10:57 kubectx
lrwxrwxrwx 1 root root      55 May 24 11:22 kubectl -> /mnt/wsl/docker-desktop/cli-tools/usr/local/bin/kubect

我启动了我的Docker应用程序(我使用的是Windows平台上的Docker Desktop,并且我已经禁用了自动启动)后,它开始工作了。


5

Homebrew用户可能可以通过以下方式修复:

brew reinstall kubectl

可能需要跟随以下步骤:

brew link --overwrite kubernetes-cli

不得不运行 brew unlink kubernetes-cli && brew link kubernetes-cli 而不是 brew link --overwrite kubernetes-cli ,但是它起到了作用,谢谢 :) - Andrey Deineko
不得不运行 brew unlink kubernetes-cli && brew link kubernetes-cli 而不是 brew link --overwrite kubernetes-cli,但这确实有帮助,谢谢 :) - undefined

0
请检查您的nix配置文件,并在tools中添加"kubernetes.enable = true;"。

0

在启用docker-desktop中的kubernetes后,kubectl不可用。按照以下步骤解决问题:

第一步: 使用以下命令下载最新版本:

curl -LO "https://dl.k8s.io/release/$(curl -L -s https://dl.k8s.io/release/stable.txt)/bin/linux/amd64/kubectl"

第二步:下载 kubectl 校验和文件:

curl -LO "https://dl.k8s.io/$(curl -L -s https://dl.k8s.io/release/stable.txt)/bin/linux/amd64/kubectl.sha256"

校验 kubectl 二进制文件与校验和文件:

echo "$(cat kubectl.sha256)  kubectl" | sha256sum --check

如果有效,输出为:
kubectl: OK

如果检查失败,sha256将以非零状态退出并打印类似以下输出的内容:

注意:下载相同版本的二进制文件和校验和。

第三步: 安装kubectl
sudo install -o root -g root -m 0755 kubectl /usr/local/bin/kubectl

第四步:

测试以确保您安装的版本是最新的:

kubectl version --client

或者使用此选项以获取版本的详细信息:

kubectl version --client --output=yaml    

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接