Встановлення та налаштування kubectl у Linux
Перш ніж ви розпочнете
Вам потрібно використовувати версію kubectl, яка має мінорну версію що відрізняється не більше ніж на одиницю від мінорної версії вашого кластера. Наприклад, клієнт v1.31 може співпрацювати з панелями управління v1.30, v1.31 та v1.32. Використання останньої сумісної версії kubectl допомагає уникнути непередбачуваних проблем.
Встановлення kubectl у Linux
Існують наступні методи встановлення kubectl у Linux:
- Встановлення бінарного файлу kubectl за допомогою curl у Linux
- Встановлення за допомогою стандартного пакетного менеджера
- Встановлення за допомогою іншого пакетного менеджера
Встановлення бінарного файлу kubectl за допомогою curl у Linux
Завантажте останній випуск за допомогою команди:
curl -LO "https://dl.k8s.io/release/$(curl -L -s https://dl.k8s.io/release/stable.txt)/bin/linux/amd64/kubectl"
curl -LO "https://dl.k8s.io/release/$(curl -L -s https://dl.k8s.io/release/stable.txt)/bin/linux/arm64/kubectl"
Примітка:
Щоб завантажити певну версію, замініть частину команди
$(curl -L -s https://dl.k8s.io/release/stable.txt)
конкретною версією.Наприклад, щоб завантажити версію 1.31.0 у Linux x86-64, введіть:
curl -LO https://dl.k8s.io/release/v1.31.0/bin/linux/amd64/kubectl
А для Linux ARM64:
curl -LO https://dl.k8s.io/release/v1.31.0/bin/linux/arm64/kubectl
Перевірте бінарний файл (опційно)
Завантажте файл хеш-суми kubectl:
curl -LO "https://dl.k8s.io/release/$(curl -L -s https://dl.k8s.io/release/stable.txt)/bin/linux/amd64/kubectl.sha256"
curl -LO "https://dl.k8s.io/release/$(curl -L -s https://dl.k8s.io/release/stable.txt)/bin/linux/arm64/kubectl.sha256"
Перевірте бінарний файл kubectl за допомогою файлу хеш-суми:
echo "$(cat kubectl.sha256) kubectl" | sha256sum --check
Якщо результат валідний, виведе:
kubectl: OK
Якщо перевірка не пройшла,
sha256
поверне ненульовий статус і виведе повідомлення подібне до:kubectl: FAILED sha256sum: WARNING: 1 computed checksum did NOT match
Примітка:
Завантажте ту ж версію бінарного файлу та файлу хеш-суми.Встановіть kubectl
sudo install -o root -g root -m 0755 kubectl /usr/local/bin/kubectl
Примітка:
Якщо у вас немає прав root на цільовій системі, все одно можна встановити kubectl у тека
~/.local/bin
:chmod +x kubectl mkdir -p ~/.local/bin mv ./kubectl ~/.local/bin/kubectl # а потім додайте (в початок чи кінець) ~/.local/bin до $PATH
Перевірте, щоб переконатися, що встановлена вами версія є актуальною:
kubectl version --client
Або скористайтеся цим для детального перегляду версії:
kubectl version --client --output=yaml
Встановлення за допомогою стандартного пакетного менеджера
Оновіть індекс пакунків
apt
та встановіть пакунки, необхідні для використання репозиторіюapt
Kubernetes:sudo apt-get update # apt-transport-https може бути макетним пакетом; якщо так, ви можете пропустити цей пакет sudo apt-get install -y apt-transport-https ca-certificates curl gnupg
Завантажте публічний ключ підпису для репозиторіїв пакунків Kubernetes. Той самий ключ підпису використовується для всіх репозиторіїв, тому ви можете проігнорувати версію в URL:
# Якщо тека `/etc/apt/keyrings` не існує, її слід створити перед запуском curl, прочитайте примітку нижче. # sudo mkdir -p -m 755 /etc/apt/keyrings curl -fsSL https://pkgs.k8s.io/core:/stable:/v1.31/deb/Release.key | sudo gpg --dearmor -o /etc/apt/keyrings/kubernetes-apt-keyring.gpg sudo chmod 644 /etc/apt/keyrings/kubernetes-apt-keyring.gpg # дозволяє непривілейованим програмам APT читати цей ключ
Примітка:
У випусках старших за Debian 12 і Ubuntu 22.04 тека/etc/apt/keyrings
не існує, її слід створити перед запуском команди curl.Додайте відповідний репозиторій Kubernetes
apt
. Якщо ви хочете використовувати версію Kubernetes, відмінну від v1.31, замініть v1.31 на потрібну мінорну версію в команді нижче:# Це перезапише будь-яку існуючу конфігурацію в /etc/apt/sources.list.d/kubernetes.list echo 'deb [signed-by=/etc/apt/keyrings/kubernetes-apt-keyring.gpg] https://pkgs.k8s.io/core:/stable:/v1.31/deb/ /' | sudo tee /etc/apt/sources.list.d/kubernetes.list sudo chmod 644 /etc/apt/sources.list.d/kubernetes.list # допомагає правильно працювати з такими інструментами, як command-not-found
Примітка:
Щоб оновити kubectl до іншого мінорного видання, вам потрібно буде збільшити версію в/etc/apt/sources.list.d/kubernetes.list
перед виконанням apt-get update
та apt-get upgrade
. Цю процедуру більш докладно описано в Зміні репозиторію пакунків Kubernetes.Оновіть індекс пакунків
apt
, а потім встановіть kubectl:sudo apt-get update sudo apt-get install -y kubectl
Додайте репозиторій Kubernetes
yum
. Якщо ви хочете використовувати версію Kubernetes, відмінну від v1.31, замініть v1.31 на потрібну мінорну версію в команді нижче.# Це перезапише будь-яку існуючу конфігурацію у /etc/yum.repos.d/kubernetes.repo cat <<EOF | sudo tee /etc/yum.repos.d/kubernetes.repo [kubernetes] name=Kubernetes baseurl=https://pkgs.k8s.io/core:/stable:/v1.31/rpm/ enabled=1 gpgcheck=1 gpgkey=https://pkgs.k8s.io/core:/stable:/v1.31/rpm/repodata/repomd.xml.key EOF
Примітка:
Щоб оновити kubectl до іншого мінорного випуску, вам потрібно буде збільшити версію в/etc/yum.repos.d/kubernetes.repo
перед виконанням yum update
. Цю процедуру більш докладно описано в Зміні репозиторію пакунків Kubernetes.Встановіть kubectl за допомогою
yum
:sudo yum install -y kubectl
Додайте репозиторій Kubernetes
zypper
. Якщо ви хочете використовувати версію Kubernetes, відмінну від v1.31, замініть v1.31 на потрібну мінорну версію в команді нижче.# Це перезапише будь-яку існуючу конфігурацію у /etc/zypp/repos.d/kubernetes.repo cat <<EOF | sudo tee /etc/zypp/repos.d/kubernetes.repo [kubernetes] name=Kubernetes baseurl=https://pkgs.k8s.io/core:/stable:/v1.31/rpm/ enabled=1 gpgcheck=1 gpgkey=https://pkgs.k8s.io/core:/stable:/v1.31/rpm/repodata/repomd.xml.key EOF
Примітка:
Щоб оновити kubectl до іншого мінорного випуску, вам потрібно буде збільшити версію в/etc/zypp/repos.d/kubernetes.repo
перед виконанням zypper update
. Цю процедуру більш докладно описано в
Зміні репозиторію пакунків Kubernetes.Оновіть
zypper
і підтвердіть додавання нового репозиторію:sudo zypper update
Коли зʼявиться таке повідомлення, натисніть 't' або 'a':
New repository or package signing key received: Repository: Kubernetes Key Fingerprint: 1111 2222 3333 4444 5555 6666 7777 8888 9999 AAAA Key Name: isv:kubernetes OBS Project <isv:kubernetes@build.opensuse.org> Key Algorithm: RSA 2048 Key Created: Thu 25 Aug 2022 01:21:11 PM -03 Key Expires: Sat 02 Nov 2024 01:21:11 PM -03 (expires in 85 days) Rpm Name: gpg-pubkey-9a296436-6307a177 Note: Signing data enables the recipient to verify that no modifications occurred after the data were signed. Accepting data with no, wrong or unknown signature can lead to a corrupted system and in extreme cases even to a system compromise. Note: A GPG pubkey is clearly identified by its fingerprint. Do not rely on the key's name. If you are not sure whether the presented key is authentic, ask the repository provider or check their web site. Many providers maintain a web page showing the fingerprints of the GPG keys they are using. Do you want to reject the key, trust temporarily, or trust always? [r/t/a/?] (r): a
Встановіть
kubectl
, використовуючиzypper
:sudo zypper install -y kubectl
Встановлення за допомогою іншого пакетного менеджера
Якщо ви користуєтеся Ubuntu або іншим дистрибутивом Linux, який підтримує менеджер пакунків snap, kubectl доступний як застосунок snap.
snap install kubectl --classic
kubectl version --client
Якщо ви користуєтеся Linux і використовуєте пакетний менеджер Homebrew, kubectl доступний для встановлення.
brew install kubectl
kubectl version --client
Перевірка конфігурації Verify
Щоб 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.
Вступ
Сценарій автодоповнення kubectl для Bash може бути створений за допомогою команди kubectl completion bash
. Підключення цього сценарію у вашій оболонці дозволить вам мати автодоповнення для kubectl.
Однак сценарій залежить від bash-completion, що означає, що спочатку вам потрібно встановити цей скрипт (ви можете перевірити, чи вже встановлено bash-completion, виконавши команду type _init_completion
).
Встановлення bash-completion
bash-completion надається багатьма менеджерами пакунків (див. тут). Ви можете встановити його за допомогою apt-get install bash-completion
або yum install bash-completion
тощо.
Вищевказані команди створюють /usr/share/bash-completion/bash_completion
, який є основним сценарієм bash-completion. Залежно від вашого менеджера пакунків, вам доведеться вручну додати цей файл у ваш ~/.bashrc
файл.
Щоб дізнатися, перезавантажте вашу оболонку і виконайте type _init_completion
. Якщо команда виконується успішно, значить, ви вже його встановили, інакше додайте наступне до вашого ~/.bashrc
файлу:
source /usr/share/bash-completion/bash_completion
Перезавантажте вашу оболонку і перевірте, чи bash-completion правильно встановлено, ввівши type _init_completion
.
Увімкнення автодоповнення kubectl
Bash
Тепер вам потрібно переконатися, що сценарій автодоповнення kubectl підключений у всіх ваших сеансах оболонки. Є два способи, якими це можна зробити:
echo 'source <(kubectl completion bash)' >>~/.bashrc
kubectl completion bash | sudo tee /etc/bash_completion.d/kubectl > /dev/null
sudo chmod a+r /etc/bash_completion.d/kubectl
Якщо у вас є аліас для kubectl, ви можете розширити автодоповнення оболонки, щоб воно працювало з ним:
echo 'alias k=kubectl' >>~/.bashrc
echo 'complete -o default -F __start_kubectl k' >>~/.bashrc
Примітка:
bash-completion підключає всі сценарії автодоповнення у/etc/bash_completion.d
.Обидва підходи еквівалентні. Після перезавантаження вашої оболонки автодоповнення kubectl повинно працювати. Щоб увімкнути автодоповнення bash у поточному сеансі оболонки, переініціалізуйте файл ~/.bashrc:
source ~/.bashrc
Примітка:
Автодоповнення для 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/linux/amd64/kubectl-convert"
curl -LO "https://dl.k8s.io/release/$(curl -L -s https://dl.k8s.io/release/stable.txt)/bin/linux/arm64/kubectl-convert"
Перевірте бінарний файл (опціонально)
Завантажте файл контрольної суми для kubectl-convert:
curl -LO "https://dl.k8s.io/release/$(curl -L -s https://dl.k8s.io/release/stable.txt)/bin/linux/amd64/kubectl-convert.sha256"
curl -LO "https://dl.k8s.io/release/$(curl -L -s https://dl.k8s.io/release/stable.txt)/bin/linux/arm64/kubectl-convert.sha256"
Перевірте бінарний файл kubectl-convert за допомогою файлу контрольної суми:
echo "$(cat kubectl-convert.sha256) kubectl-convert" | sha256sum --check
Якщо перевірка пройшла успішно, вивід буде таким:
kubectl-convert: OK
Якщо перевірка не вдалася,
sha256
виходить з ненульовим статусом і виводить подібне повідомлення:kubectl-convert: FAILED sha256sum: WARNING: 1 computed checksum did NOT match
Примітка:
Завантажте ту саму версію бінарного файлу та файлу контрольної суми.Встановіть kubectl-convert
sudo install -o root -g root -m 0755 kubectl-convert /usr/local/bin/kubectl-convert
Перевірте, чи втулок успішно встановлено
kubectl convert --help
Якщо ви не бачите помилку, це означає, що втулок успішно встановлено.
Після встановлення втулка, вилучіть файли встановлення:
rm kubectl-convert kubectl-convert.sha256
Що далі
- Встановіть Minikube
- Дивіться посібники для початку роботи для отримання докладнішої інформації про створення кластерів.
- Дізнайтеся, як запускати та розгортати свій застосунок.
- Якщо вам потрібен доступ до кластера, який ви не створювали, перегляньте документ Спільний доступ до кластера.
- Прочитайте документацію посилання на kubectl