#kubernetes #gcloud #kubectl
#kubernetes #gcloud #kubectl
Вопрос:
Я запускал команду kubectl для развертывания моего приложения в gcloud. Но внезапно команда kubectl перестала работать. kubectl
команда работает нормально, но для всего остального в ней указано, что команда не найдена.
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
2. это
/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin
3. @user1529891 вы можете увидеть отредактированный вопрос, kubectl установлен правильно.
4.
which kubectl /usr/local/bin/kubectl
5. Можете ли вы выполнить
strace -f kubectl run
или что-то подобное (и добавить вывод к вопросу)? Действительно похоже, что ваша оболочка может не обрабатывать пробелы и каким-то образом она считает, что весьkubectl run
файл является именем программы.
Ответ №1:
У меня была похожая ошибка, когда я впервые настраивал Kubernetes в Linux:
Когда я пытаюсь выполнить команды:
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.
Ответ №2:
Я получил это сообщение при использовании wsl в Windows. 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 (я использую docker-desktop для Windows, и я отключил автозапуск при запуске)
Ответ №3:
Пользователи Homebrew могут исправить это с помощью:
brew reinstall kubectl
Возможно, потребуется выполнить ее с:
brew link --overwrite kubernetes-cli
Ответ №4:
Пожалуйста, проверьте свой конфигурационный файл nix и добавьте «kubernetes.enable = true;» в инструменты.
Ответ №5:
kubectl недоступен после включения kubernetes в docker-desktop. Выполните следующие действия, чтобы устранить проблему:
Первый шаг: Загрузите последнюю версию с помощью команды:
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