Встановлення та налаштування kubectl у macOS
Перш ніж ви розпочнете
Вам потрібно використовувати версію kubectl, яка має мінорну версію що відрізняється не більше ніж на одиницю від мінорної версії вашого кластера. Наприклад, клієнт v1.31 може співпрацювати з панелями управління v1.30, v1.31 та v1.32. Використання останньої сумісної версії kubectl допомагає уникнути непередбачуваних проблем.
Встановлення kubectl у macOS
Існують наступні методи встановлення kubectl у macOS:
- Встановлення kubectl у macOS
- Перевірка конфігурації kubectl
- Опціональне налаштування kubectl та втулка
Встановлення бінарника kubectl з curl у macOS
Завантажте останнє видання:
curl -LO "https://dl.k8s.io/release/$(curl -L -s https://dl.k8s.io/release/stable.txt)/bin/darwin/amd64/kubectl"
curl -LO "https://dl.k8s.io/release/$(curl -L -s https://dl.k8s.io/release/stable.txt)/bin/darwin/arm64/kubectl"
Примітка:
Щоб завантажити певну версію, замініть частину
$(curl -L -s https://dl.k8s.io/release/stable.txt)
команди на конкретну версію.Наприклад, щоб завантажити версію 1.31.0 на Intel macOS, введіть:
curl -LO "https://dl.k8s.io/release/v1.31.0/bin/darwin/amd64/kubectl"
А для macOS на Apple Silicon, введіть:
curl -LO "https://dl.k8s.io/release/v1.31.0/bin/darwin/arm64/kubectl"
Перевірте бінарний файл (опціонально)
Завантажте файл контрольної суми для kubectl:
curl -LO "https://dl.k8s.io/release/$(curl -L -s https://dl.k8s.io/release/stable.txt)/bin/darwin/amd64/kubectl.sha256"
curl -LO "https://dl.k8s.io/release/$(curl -L -s https://dl.k8s.io/release/stable.txt)/bin/darwin/arm64/kubectl.sha256"
Перевірте бінарний файл kubectl за допомогою файлу контрольної суми:
echo "$(cat kubectl.sha256) kubectl" | shasum -a 256 --check
Якщо перевірка пройшла успішно, вивід буде таким:
kubectl: OK
Якщо перевірка не вдалася,
shasum
виходить з ненульовим статусом і виводить подібне повідомлення:kubectl: FAILED shasum: WARNING: 1 computed checksum did NOT match
Примітка:
Завантажте ту саму версію бінарного файлу та файлу контрольної суми.Зробіть бінарний файл kubectl виконуваним.
chmod +x ./kubectl
Перемістіть бінарний файл kubectl до розташування файлу на вашій системі
PATH
.sudo mv ./kubectl /usr/local/bin/kubectl sudo chown root: /usr/local/bin/kubectl
Примітка:
Переконайтеся, що/usr/local/bin
є в вашій змінній середовища PATH.Перевірте, що встановлена версія kubectl актуальна:
kubectl version --client
Або використовуйте це для детального перегляду версії:
kubectl version --client --output=yaml
Після встановлення та перевірки kubectl видаліть файл контрольної суми:
rm kubectl.sha256
Встановлення за допомогою Homebrew у macOS
Якщо ви користуєтеся macOS і пакетним менеджером Homebrew, ви можете встановити kubectl за допомогою Homebrew.
Виконайте команду встановлення:
brew install kubectl
або
brew install kubernetes-cli
Перевірте, що встановлена версія актуальна:
kubectl version --client
Встановлення за допомогою Macports у macOS
Якщо ви користуєтеся macOS і пакетним менеджером Macports, ви можете встановити kubectl за допомогою Macports.
Виконайте команду встановлення:
sudo port selfupdate sudo port install kubectl
Перевірте, що встановлена версія актуальна:
kubectl version --client
Перевірка конфігурації kubectl
Щоб kubectl знайшов та отримав доступ до кластера Kubernetes, вам потрібен
файл kubeconfig, який створюється автоматично при створенні кластера за допомогою kube-up.sh або успішного розгортання кластера Minikube. Типово конфігурація kubectl знаходиться в ~/.kube/config
.
Перевірте, що kubectl належним чином налаштований, отримавши стан кластера:
kubectl cluster-info
Якщо ви бачите у відповідь URL, kubectl налаштований на доступ до вашого кластера.
Якщо ви бачите повідомлення, подібне до наведеного нижче, kubectl не налаштований належним чином або не може приєднатися до кластера Kubernetes.
The connection to the server <server-name:port> was refused - did you specify the right host or port?
Наприклад, якщо ви плануєте запустити кластер Kubernetes на своєму ноутбуці (локально), вам спочатку потрібно встановити інструмент, такий як Minikube, а потім повторно виконати вказані вище команди.
Якщо kubectl cluster-info
повертає у відповідь URL, але ви не можете отримати доступ до свого кластера, щоб перевірити, чи він налаштований належним чином, використовуйте:
kubectl cluster-info dump
Усунення несправностей повідомлення про помилку 'No Auth Provider Found'
У Kubernetes 1.26, kubectl видалив вбудовану автентифікацію для Kubernetes-кластерів керованих хмарними провайдерами. Ці провайдери випустили втулок для kubectl для надання хмарно-специфічної автентифікації. Для інструкцій див. документацію відповідного провайдера:
- Azure AKS: kubelogin plugin
- Google Kubernetes Engine: gke-gcloud-auth-plugin
(Також можуть бути інші причини для показу цього повідомлення про помилку, не повʼязані з цією зміною.)
Опціональне налаштування kubectl та втулка
Увімкнення автопідстановки оболонки
kubectl надає підтримку автодоповнення для оболонок Bash, Zsh, Fish та PowerShell, що може значно зекономити ваш час при введенні команд.
Нижче подані процедури для налаштування автодоповнення для оболонок Bash, Fish та Zsh.
Вступ
Сценарій автодоповнення для Bash kubectl можна згенерувати за допомогою команди kubectl completion bash
. Підключення цього сценарію в вашій оболонці дозволяє використовувати автодоповнення для kubectl.
Проте, сценарій автодоповнення для kubectl залежить від bash-completion, який потрібно встановити заздалегідь.
Попередження:
Існують дві версії bash-completion: v1 і v2. V1 призначена для Bash 3.2 (яка є стандартною версією у macOS), а v2 — для Bash 4.1+. Сценарій автодоповнення для kubectl не працює коректно з bash-completion v1 та Bash 3.2. Для правильного використання автодоповнення для kubectl у macOS потрібно використовувати bash-completion v2 та Bash 4.1+. Таким чином, для коректного використання автодоповнення для kubectl у macOS вам необхідно встановити та використовувати Bash 4.1+ (інструкції). Наступні інструкції передбачають, що ви використовуєте Bash 4.1+ (тобто будь-яку версію Bash 4.1 чи новіше).Оновлення Bash
Інструкції тут передбачають, що ви використовуєте Bash 4.1+. Ви можете перевірити версію свого Bash, виконавши:
echo $BASH_VERSION
Якщо вона є занадто старою, ви можете встановити/оновити її за допомогою Homebrew:
brew install bash
Перезавантажте вашу оболонку і перевірте, що використовується бажана версія:
echo $BASH_VERSION $SHELL
Зазвичай Homebrew встановлює його в /usr/local/bin/bash
.
Встановлення bash-completion
Примітка:
Як вже зазначалося, ці інструкції передбачають використання Bash 4.1+, що означає, що ви будете встановлювати bash-completion v2 (на відміну від Bash 3.2 та bash-completion v1, у якому випадку автодоповнення для kubectl не буде працювати).Ви можете перевірити, чи вже встановлена bash-completion v2, використавши команду type _init_completion
. Якщо ні, ви можете встановити її за допомогою Homebrew:
brew install bash-completion@2
Як зазначено в виводі цієї команди, додайте наступне до вашого файлу ~/.bash_profile
:
brew_etc="$(brew --prefix)/etc" && [[ -r "${brew_etc}/profile.d/bash_completion.sh" ]] && . "${brew_etc}/profile.d/bash_completion.sh"
Перезавантажте вашу оболонку і перевірте, що bash-completion v2 встановлена коректно за допомогою type _init_completion
.
Активація автодоповнення для kubectl
Тепер вам потрібно забезпечити, щоб сценарій автодоповнення для kubectl підключався в усіх ваших сеансах оболонки. Існують кілька способів досягнення цього:
Підключіть сценарій автодоповнення до вашого файлу
~/.bash_profile
:echo 'source <(kubectl completion bash)' >>~/.bash_profile
Додайте сценарій автодоповнення до теки
/usr/local/etc/bash_completion.d
:kubectl completion bash >/usr/local/etc/bash_completion.d/kubectl
Якщо у вас є аліас для kubectl, ви можете розширити автодоповнення оболонки, щоб воно працювало з цим аліасом:
echo 'alias k=kubectl' >>~/.bash_profile echo 'complete -o default -F __start_kubectl k' >>~/.bash_profile
Якщо ви встановили kubectl за допомогою Homebrew (як пояснено тут), то сценарій автодоповнення для kubectl вже повинен знаходитися у
/usr/local/etc/bash_completion.d/kubectl
. У цьому випадку вам нічого робити не потрібно.Примітка:
Установка bash-completion v2 за допомогою Homebrew додає всі файли у текуBASH_COMPLETION_COMPAT_DIR
, тому останні два методи працюють.
У будь-якому випадку, після перезавантаження оболонки, автодоповнення для kubectl повинно працювати.
Примітка:
Автодоповнення для Fish вимагає kubectl версії 1.23 або пізніше.Сценарій автозавершення kubectl для Fish може бути створений за допомогою команди kubectl completion fish
. Підключення цього сценарію автозавершення у вашій оболонці вмикає автодоповнення для kubectl.
Щоб зробити це у всіх сеансах вашої оболонки, додайте наступний рядок до вашого файлу ~/.config/fish/config.fish
:
kubectl completion fish | source
Після перезавантаження вашої оболонки, автодоповнення kubectl повинно працювати.
Сценарій автозавершення kubectl для Zsh може бути створений за допомогою команди kubectl completion zsh
. Підключення цього сценарію автозавершення у вашій оболонці дозволяє ввімкнути автодоповнення для kubectl.
Щоб зробити це у всіх сеансах вашої оболонки, додайте наступне до вашого файлу ~/.zshrc
:
source <(kubectl completion zsh)
Якщо у вас є аліас для kubectl, автодоповнення kubectl автоматично працюватиме з ним.
Після перезавантаження вашої оболонки автодоповнення kubectl повинно працювати.
Якщо ви отримуєте помилку типу 2: command not found: compdef
, то додайте наступне до початку вашого файлу ~/.zshrc
:
autoload -Uz compinit
compinit
Встановлення втулка kubectl convert
Втулок для командного рядка Kubernetes kubectl
, який дозволяє конвертувати маніфести між різними версіями API. Це може бути особливо корисно для міграції маніфестів до версій API, які все ще є актуальними, на новіші випуски Kubernetes. Для отримання додаткової інформації відвідайте перехід на актуальні API.
Завантажте останній випуск команди:
curl -LO "https://dl.k8s.io/release/$(curl -L -s https://dl.k8s.io/release/stable.txt)/bin/darwin/amd64/kubectl-convert"
curl -LO "https://dl.k8s.io/release/$(curl -L -s https://dl.k8s.io/release/stable.txt)/bin/darwin/arm64/kubectl-convert"
Перевірте двійковий файл (опціонально):
Завантажте файл контрольної суми для kubectl-convert:
curl -LO "https://dl.k8s.io/release/$(curl -L -s https://dl.k8s.io/release/stable.txt)/bin/darwin/amd64/kubectl-convert.sha256"
curl -LO "https://dl.k8s.io/release/$(curl -L -s https://dl.k8s.io/release/stable.txt)/bin/darwin/arm64/kubectl-convert.sha256"
Перевірте двійковий файл kubectl-convert за допомогою файлу контрольної суми:
echo "$(cat kubectl-convert.sha256) kubectl-convert" | shasum -a 256 --check
Якщо перевірка пройшла успішно, вивід буде таким:
kubectl-convert: OK
Якщо перевірка не вдалася,
shasum
виходить з ненульовим статусом і виводить подібне повідомлення:kubectl-convert: FAILED shasum: WARNING: 1 computed checksum did NOT match
Примітка:
Завантажте ту саму версію бінарного файлу та файлу контрольної суми.Зробіть двійковий файл kubectl-convert виконуваним.
chmod +x ./kubectl-convert
Перемістіть двійковий файл kubectl-convert до розташування файлу у вашій системі
PATH
.sudo mv ./kubectl-convert /usr/local/bin/kubectl-convert sudo chown root: /usr/local/bin/kubectl-convert
Примітка:
Переконайтеся, що/usr/local/bin
є в вашій змінній середовища PATH.Перевірте, що втулок було встановлено:
kubectl convert --help
Якщо ви не бачите жодних помилок, втулок було встановлено успішно.
Після встановлення та перевірки kubectl-convert видаліть файл контрольної суми:
rm kubectl-convert kubectl-convert.sha256
Видалення kubectl
Залежно від того, як ви встановили kubectl
, використовуйте один з наступних методів.
Видалення kubectl за допомогою командного рядка
Знайдіть бінарний файл
kubectl
у вашій системі:which kubectl
Видаліть бінарний файл
kubectl
:sudo rm <path>
Замініть
<path>
на шлях до бінарного файлуkubectl
з попереднього кроку. Наприклад,sudo rm /usr/local/bin/kubectl
.
Видалення kubectl за допомогою Homebrew
Якщо ви встановили kubectl
за допомогою Homebrew, виконайте наступну команду:
brew remove kubectl
Що далі
- Встановіть Minikube
- Дивіться посібники для початку роботи для отримання докладнішої інформації про створення кластерів.
- Дізнайтеся, як запускати та розгортати свій застосунок.
- Якщо вам потрібен доступ до кластера, який ви не створювали, перегляньте документ Спільний доступ до кластера.
- Прочитайте документацію посилання на kubectl