Це багатосторінковий друкований вигляд цього розділу. Натисність щоб друкувати.

Повернутися до звичайного перегляду сторінки.

Встановлення інструментів

Налаштування інструментів Kubernetes на вашому компʼютері.

Примітка:

Щоб налаштувати середовище для практики, дивіться сторінку Навчальне середовище.

kubectl

Інструмент командного рядка Kubernetes, kubectl, дозволяє виконувати команди в кластерах Kubernetes. За допомогою kubectl можна розгортати застосунки, оглядати ресурси кластера й керувати ними, а також переглядати логи. Докладніше, зокрема повний перелік операцій kubectl, дивіться в довідковій документації kubectl.

kubectl можна встановити на різних платформах Linux, macOS і Windows. Виберіть свою операційну систему нижче.

kind

kind дозволяє запускати Kubernetes на вашому локальному компʼютері. Для цього інструмента потрібно встановити Docker або Podman.

На сторінці kind Quick Start показано, що потрібно зробити, щоб почати працювати з kind.

Переглянути посібник kind Quick Start

minikube

Подібно до kind, minikube — це інструмент, який дозволяє запускати Kubernetes локально. minikube запускає локальний кластер Kubernetes «все в одному» або багатовузловий кластер на вашому персональному компʼютері (зокрема на ПК з Windows, macOS і Linux), щоб ви могли випробувати Kubernetes або використовувати його для щоденної розробки.

Якщо ваша мета — встановити інструмент, скористайтеся офіційним посібником Get Started!.

Переглянути посібник minikube Get Started!

Коли minikube запрацює, ви зможете використовувати його для запуску застосунку-прикладу.

kubeadm

Ви можете використовувати інструмент kubeadm для створення кластерів Kubernetes і керування ними. Він виконує дії, потрібні для зручного запуску мінімально життєздатного захищеного кластера.

На сторінці Встановлення kubeadm показано, як встановити kubeadm. Після встановлення ви можете використовувати його для створення кластера.

Переглянути посібник зі встановлення kubeadm

1 - Встановлення та налаштування kubectl у Linux

Перш ніж ви розпочнете

Вам потрібно використовувати версію kubectl, яка має мінорну версію, що відрізняється не більше ніж на одиницю від мінорної версії вашого кластера. Наприклад, клієнт v1.37 може співпрацювати з панелями управління v1.36, v1.37 та v1.38. Використання останньої сумісної версії kubectl допомагає уникнути непередбачуваних проблем.

Встановлення kubectl у Linux

Існують наступні методи встановлення kubectl у Linux:

Встановлення бінарного файлу kubectl за допомогою curl у Linux

  1. Завантажте останній випуск за допомогою команди:

    
       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.37.0 у Linux x86-64, введіть:

    curl -LO https://dl.k8s.io/release/v1.37.0/bin/linux/amd64/kubectl
    

    А для Linux ARM64:

    curl -LO https://dl.k8s.io/release/v1.37.0/bin/linux/arm64/kubectl
    
  2. Перевірте бінарний файл (необовʼязково)

    Завантажте файл контрольної суми 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
    

    Примітка:

    Завантажте ту саму версію бінарного файлу та файлу контрольної суми.
  3. Встановіть 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
    
  4. Перевірте, щоб переконатися, що встановлена вами версія є актуальною:

    kubectl version --client
    

    Або скористайтеся цим для детального перегляду версії:

    kubectl version --client --output=yaml
    

Встановлення за допомогою стандартного пакетного менеджера

  1. Оновіть індекс пакунків apt та встановіть пакунки, необхідні для використання репозиторію apt Kubernetes:

    sudo apt-get update
    # apt-transport-https може бути макетним пакетом; якщо так, ви можете пропустити цей пакет
    sudo apt-get install -y apt-transport-https ca-certificates curl gnupg
    
  2. Завантажте публічний ключ підпису для репозиторіїв пакунків Kubernetes. Той самий ключ підпису використовується для всіх репозиторіїв, тому ви можете проігнорувати версію в URL:

    # Якщо тека `/etc/apt/keyrings` не існує, її слід створити перед запуском curl, прочитайте примітку нижче.
    # sudo mkdir -p -m 755 /etc/apt/keyrings
    curl -fsSL https://pkgs.k8s.io/core:/stable:/v1.37/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.
  1. Додайте відповідний репозиторій Kubernetes apt. Якщо ви хочете використовувати версію Kubernetes, відмінну від v1.37, замініть v1.37 на потрібну мінорну версію в команді нижче:

    # Це перезапише будь-яку існуючу конфігурацію в /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.37/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.
  1. Оновіть індекс пакунків apt, а потім встановіть kubectl:

    sudo apt-get update
    sudo apt-get install -y kubectl
    
  1. Додайте репозиторій Kubernetes yum. Якщо ви хочете використовувати версію Kubernetes, відмінну від v1.37, замініть v1.37 на потрібну мінорну версію в команді нижче.

    # Це перезапише будь-яку існуючу конфігурацію у /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.37/rpm/
    enabled=1
    gpgcheck=1
    gpgkey=https://pkgs.k8s.io/core:/stable:/v1.37/rpm/repodata/repomd.xml.key
    EOF
    

Примітка:

Щоб оновити kubectl до іншого мінорного випуску, вам потрібно буде збільшити версію в /etc/yum.repos.d/kubernetes.repo перед виконанням dnf update. Цю процедуру більш докладно описано в Зміні репозиторію пакунків Kubernetes.
  1. Встановіть kubectl за допомогою dnf:

    sudo dnf install -y kubectl
    
  1. Додайте репозиторій Kubernetes zypper. Якщо ви хочете використовувати версію Kubernetes, відмінну від v1.37, замініть v1.37 на потрібну мінорну версію в команді нижче.

    # Це перезапише будь-яку існуючу конфігурацію у /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.37/rpm/
    enabled=1
    gpgcheck=1
    gpgkey=https://pkgs.k8s.io/core:/stable:/v1.37/rpm/repodata/repomd.xml.key
    EOF
    

Примітка:

Щоб оновити kubectl до іншого мінорного випуску, вам потрібно буде збільшити версію в /etc/zypp/repos.d/kubernetes.repo перед виконанням zypper update. Цю процедуру більш докладно описано в Зміні репозиторію пакунків Kubernetes.
  1. Оновіть 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
    
  2. Встановіть 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

Перевірка конфігурації 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, що забезпечують автентифікацію для їхніх хмар. Інструкції дивіться в документації провайдера:

Те саме повідомлення про помилку може мати й інші причини, не повʼязані з цією зміною.

Необовʼязкові налаштування та втулки 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, dnf 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

Налаштування kuberc

Дивіться kuberc для отримання докладної інформації.

Встановлення втулка kubectl convert

Втулок для інструмента командного рядка Kubernetes kubectl, який дозволяє конвертувати маніфести між різними версіями API. Це може бути особливо корисно для міграції маніфестів на незастарілу версію API в новіших випусках Kubernetes. Докладніше дивіться в розділі перехід на незастарілі API.

  1. Завантажте останній випуск за допомогою наступної команди:

    
       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"
       
  2. Перевірте бінарний файл (необовʼязково)

    Завантажте файл контрольної суми для 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
    

    Примітка:

    Завантажте ту саму версію бінарного файлу та файлу контрольної суми.
  3. Встановіть kubectl-convert

    sudo install -o root -g root -m 0755 kubectl-convert /usr/local/bin/kubectl-convert
    
  4. Перевірте, чи втулок успішно встановлено

    kubectl convert --help
    

    Якщо ви не бачите помилку, це означає, що втулок успішно встановлено.

  5. Після встановлення втулка вилучіть файли встановлення:

    rm kubectl-convert kubectl-convert.sha256
    

Що далі

2 - Встановлення та налаштування kubectl у macOS

Перш ніж ви розпочнете

Вам потрібно використовувати версію kubectl, яка має мінорну версію, що відрізняється не більше ніж на одиницю від мінорної версії вашого кластера. Наприклад, клієнт v1.37 може співпрацювати з панелями управління v1.36, v1.37 та v1.38. Використання останньої сумісної версії kubectl допомагає уникнути непередбачуваних проблем.

Встановлення kubectl у macOS

Існують наступні методи встановлення kubectl у macOS:

Встановлення бінарного файлу kubectl за допомогою curl у macOS

  1. Завантажте останній випуск:

    
       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.37.0 на Intel macOS, введіть:

    curl -LO "https://dl.k8s.io/release/v1.37.0/bin/darwin/amd64/kubectl"
    

    А для macOS на Apple Silicon, введіть:

    curl -LO "https://dl.k8s.io/release/v1.37.0/bin/darwin/arm64/kubectl"
    
  2. Перевірте бінарний файл (необовʼязково)

    Завантажте файл контрольної суми для 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
    

    Примітка:

    Завантажте ту саму версію бінарного файлу та файлу контрольної суми.
  3. Зробіть бінарний файл kubectl виконуваним.

    chmod +x ./kubectl
    
  4. Перемістіть бінарний файл kubectl до теки, що входить до PATH вашої системи.

    sudo mv ./kubectl /usr/local/bin/kubectl
    sudo chown root: /usr/local/bin/kubectl
    

    Примітка:

    Переконайтеся, що /usr/local/bin є у вашій змінній середовища PATH.
  5. Перевірте, що встановлена версія kubectl актуальна:

    kubectl version --client
    

    Або використовуйте це для детального перегляду версії:

    kubectl version --client --output=yaml
    
  6. Після встановлення та перевірки kubectl видаліть файл контрольної суми:

    rm kubectl.sha256
    

Встановлення за допомогою Homebrew у macOS

Якщо ви користуєтеся macOS і пакетним менеджером Homebrew, ви можете встановити kubectl за допомогою Homebrew.

  1. Виконайте команду встановлення:

    brew install kubectl
    

    або

    brew install kubernetes-cli
    
  2. Перевірте, що встановлена версія актуальна:

    kubectl version --client
    

Встановлення за допомогою Macports у macOS

Якщо ви користуєтеся macOS і пакетним менеджером Macports, ви можете встановити kubectl за допомогою Macports.

  1. Виконайте команду встановлення:

    sudo port selfupdate
    sudo port install kubectl
    
  2. Перевірте, що встановлена версія актуальна:

    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, що забезпечують автентифікацію для їхніх хмар. Інструкції дивіться в документації провайдера:

Те саме повідомлення про помилку може мати й інші причини, не повʼязані з цією зміною.

Необовʼязкові налаштування та втулки kubectl

Увімкнення автодоповнення оболонки

kubectl надає підтримку автодоповнення для оболонок Bash, Zsh, Fish та PowerShell, що може значно зекономити ваш час при введенні команд.

Нижче подані процедури для налаштування автодоповнення для оболонок Bash, Fish та Zsh.

Вступ

Скрипт автодоповнення kubectl для Bash можна згенерувати командою 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. Він потребує 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

Налаштування kuberc

Дивіться kuberc для отримання докладної інформації.

Встановлення втулка kubectl convert

Втулок для інструмента командного рядка Kubernetes kubectl, який дозволяє конвертувати маніфести між різними версіями API. Це може бути особливо корисно для міграції маніфестів на незастарілу версію API в новіших випусках Kubernetes. Докладніше дивіться в розділі перехід на незастарілі API.

  1. Завантажте останній випуск за допомогою команди:

    
       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"
       
  2. Перевірте бінарний файл (необовʼязково)

    Завантажте файл контрольної суми для 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
    

    Примітка:

    Завантажте ту саму версію бінарного файлу та файлу контрольної суми.
  3. Зробіть бінарний файл kubectl-convert виконуваним.

    chmod +x ./kubectl-convert
    
  4. Перемістіть бінарний файл kubectl-convert до теки, що входить до PATH вашої системи.

    sudo mv ./kubectl-convert /usr/local/bin/kubectl-convert
    sudo chown root: /usr/local/bin/kubectl-convert
    

    Примітка:

    Переконайтеся, що /usr/local/bin є у вашій змінній середовища PATH.
  5. Перевірте, що втулок успішно встановлено

    kubectl convert --help
    

    Якщо ви не бачите жодних помилок, втулок було встановлено успішно.

  6. Після встановлення втулка вилучіть файли встановлення:

    rm kubectl-convert kubectl-convert.sha256
    

Видалення kubectl у macOS

Залежно від того, як ви встановили kubectl, використовуйте один з наступних методів.

Видалення kubectl за допомогою командного рядка

  1. Знайдіть бінарний файл kubectl у вашій системі:

    which kubectl
    
  2. Видаліть бінарний файл kubectl:

    sudo rm <path>
    

    Замініть <path> на шлях до бінарного файлу kubectl з попереднього кроку. Наприклад, sudo rm /usr/local/bin/kubectl.

Видалення kubectl за допомогою Homebrew

Якщо ви встановили kubectl за допомогою Homebrew, виконайте наступну команду:

brew remove kubectl

Що далі

3 - Встановлення та налаштування kubectl у Windows

Перш ніж ви розпочнете

Вам потрібно використовувати версію kubectl, яка має мінорну версію, що відрізняється не більше ніж на одиницю від мінорної версії вашого кластера. Наприклад, клієнт v1.37 може співпрацювати з панелями управління v1.36, v1.37 та v1.38. Використання останньої сумісної версії kubectl допомагає уникнути непередбачуваних проблем.

Встановлення kubectl у Windows

Існують наступні методи встановлення kubectl у Windows:

Встановлення бінарного файлу kubectl у Windows (через пряме завантаження або curl)

  1. У вас є два варіанти встановлення kubectl на вашому пристрої з Windows

    • Безпосереднє завантаження:

      Завантажте останню версію 1.37 патчу безпосередньо для вашої архітектури, відвідавши сторінку випуску Kubernetes. Переконайтеся, що вибрано правильний двійковий файл для вашої архітектури (наприклад, amd64, arm64 тощо).

    • Використовуючи curl:

      Якщо у вас встановлено curl, використайте цю команду:

      curl.exe -LO "https://dl.k8s.io/release/v1.37.0/bin/windows/amd64/kubectl.exe"
      

    Примітка:

    Щоб дізнатися останню стабільну версію (наприклад, для скриптів), перегляньте https://dl.k8s.io/release/stable.txt.
  2. Перевірте бінарний файл (необовʼязково)

    Завантажте файл контрольної суми для kubectl:

    curl.exe -LO "https://dl.k8s.io/v1.37.0/bin/windows/amd64/kubectl.exe.sha256"
    

    Перевірте бінарний файл kubectl за допомогою файлу контрольної суми:

    • Використовуючи командний рядок для ручного порівняння виводу CertUtil з завантаженим файлом контрольної суми:

      CertUtil -hashfile kubectl.exe SHA256
      type kubectl.exe.sha256
      
    • Використовуючи PowerShell для автоматизації перевірки за допомогою оператора -eq для отримання результату True або False:

       $(Get-FileHash -Algorithm SHA256 .\kubectl.exe).Hash -eq $(Get-Content .\kubectl.exe.sha256)
      
  3. Додайте на початок чи в кінець змінної середовища PATH шлях до теки з kubectl.

  4. Перевірте, що версія kubectl збігається з завантаженою:

    kubectl version --client
    

    Або використайте це для детального перегляду версії:

    kubectl version --client --output=yaml
    

Примітка:

Docker Desktop for Windows додає свою власну версію kubectl до PATH. Якщо ви вже встановили Docker Desktop раніше, можливо, вам потрібно розмістити свій шлях в PATH перед тим, який додається інсталятором Docker Desktop, або видалити kubectl Docker Desktop.

Встановлення у Windows за допомогою Chocolatey, Scoop або winget

  1. Для встановлення kubectl у Windows ви можете використовувати пакетний менеджер Chocolatey, командний інсталятор Scoop, або менеджер пакунків winget.

    choco install kubernetes-cli
    
    scoop install kubectl
    
    winget install -e --id Kubernetes.kubectl
    
  2. Перевірте, що встановлена версія актуальна:

    kubectl version --client
    
  3. Перейдіть до вашої домашньої теки:

    # Якщо ви використовуєте cmd.exe, виконайте: cd %USERPROFILE%
    cd ~
    
  4. Створіть теку .kube:

    mkdir .kube
    
  5. Перейдіть до теки .kube, що ви щойно створили:

    cd .kube
    
  6. Налаштуйте kubectl для використання віддаленого кластера Kubernetes:

    New-Item config -type file
    

Примітка:

Редагуйте файл конфігурації за допомогою текстового редактора на ваш вибір, наприклад, Notepad.

Перевірка конфігурації 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, що забезпечують автентифікацію для їхніх хмар. Інструкції дивіться в документації провайдера:

Те саме повідомлення про помилку може мати й інші причини, не повʼязані з цією зміною.

Необовʼязкові налаштування та втулки kubectl

Увімкнення автодоповнення оболонки

kubectl надає підтримку автодоповнення для оболонок Bash, Zsh, Fish та PowerShell, що може значно зекономити ваш час при введенні команд.

Нижче подані процедури для налаштування автодоповнення для PowerShell.

Скрипт автодоповнення kubectl для PowerShell можна згенерувати командою kubectl completion powershell.

Щоб зробити це в усіх сеансах оболонки, додайте такий рядок до файлу $PROFILE:

kubectl completion powershell | Out-String | Invoke-Expression

Ця команда генеруватиме скрипт автодоповнення під час кожного запуску PowerShell. Ви також можете додати згенерований скрипт безпосередньо до файлу $PROFILE.

Щоб додати згенерований скрипт до файлу $PROFILE, виконайте такий рядок у командному рядку PowerShell:

kubectl completion powershell >> $PROFILE

Після перезавантаження оболонки автодоповнення kubectl має працювати.

Налаштування kuberc

Дивіться kuberc для отримання докладної інформації.

Встановлення втулка kubectl convert

Втулок для інструмента командного рядка Kubernetes kubectl, який дозволяє конвертувати маніфести між різними версіями API. Це може бути особливо корисно для міграції маніфестів на незастарілу версію API в новіших випусках Kubernetes. Докладніше дивіться в розділі перехід на незастарілі API.

  1. Завантажте останній випуск за допомогою команди:

    curl.exe -LO "https://dl.k8s.io/release/v1.37.0/bin/windows/amd64/kubectl-convert.exe"
    
  2. Перевірте бінарний файл (необовʼязково).

    Завантажте файл контрольної суми для kubectl-convert:

    curl.exe -LO "https://dl.k8s.io/v1.37.0/bin/windows/amd64/kubectl-convert.exe.sha256"
    

    Перевірте бінарний файл kubectl-convert за допомогою файлу контрольної суми:

    • Використовуючи командний рядок для ручного порівняння виводу CertUtil з завантаженим файлом контрольної суми:

      CertUtil -hashfile kubectl-convert.exe SHA256
      type kubectl-convert.exe.sha256
      
    • Використовуючи PowerShell для автоматизації перевірки за допомогою оператора -eq для отримання результату True або False:

       $($(CertUtil -hashfile .\kubectl-convert.exe SHA256)[1] -replace " ", "") -eq $(type .\kubectl-convert.exe.sha256)
      
  3. Додайте на початок чи в кінець змінної середовища PATH шлях до теки з kubectl-convert.

  4. Перевірте, що втулок успішно встановлено.

    kubectl convert --help
    

    Якщо ви не бачите помилки, це означає, що втулок успішно встановлено.

  5. Після встановлення втулка вилучіть файли встановлення:

    del kubectl-convert.exe
    del kubectl-convert.exe.sha256
    

Що далі

4 - Встановлення Minikube

Ця сторінка описує, як встановити Minikube - інструмент, який дозволяє запустити Kubernetes кластер з однієї ноди у віртуальній машині на вашому персональному комп'ютері.

Перш ніж ви розпочнете

Для перевірки, чи підтримується віртуалізація на Linux, запустіть наступну команду і впевніться що її вивід не пустий:

grep -E --color 'vmx|svm' /proc/cpuinfo

Для перевірки, чи підтримується віртуалізація на macOS, запустіть наступну команду в терміналі.

sysctl -a | grep -E --color 'machdep.cpu.features|VMX'

Якщо ви бачите VMX у виводі (має бути кольоровий), то VT-x опція включена на вашому хості.

Для перевірки, чи підтримується віртуалізація на Windows 8 та версіях вище, запустіть наступну команду в терміналі вашого або через command prompt.

systeminfo

Якщо ви бачите наступне, віртуалізація підтримується на Windows.

Hyper-V Requirements:     VM Monitor Mode Extensions: Yes
                          Virtualization Enabled In Firmware: Yes
                          Second Level Address Translation: Yes
                          Data Execution Prevention Available: Yes

Якщо ви бачите наступнний вивід, на вашій системі вже встановлен гіпервізор і ви можете пропустити наступний крок.

Hyper-V Requirements:     A hypervisor has been detected. Features required for Hyper-V will not be displayed.

Встановлення Minikube

Встановлення kubectl

Впевніться що kubectl встановлений. Ви можете встановити kubectl згідно інструкції Встановлення та налаштування kubectl.

Встановлення Hypervisor

Якщо у вас немає встановленого гіпервізора, то встановіть один з наступних:

• KVM, який також використовує QEMU

• VirtualBox

Minikube також пітримує опцію --driver=none яка дозволяє запускати компоненти Kubernetes на хост системі, ні в віртуальній машині. Використання цього драйвера вимагає Docker та Linux оточення але не гіпервізор.

Якщо ви використувуєте none драйвер у Debian або похідних дістрибутивах, використовуйте .deb пакети для Docker замість встановлення snap пакетів, які не працюють з Minikube. Ви можете скачати .deb пакети звідси Docker.

Увага:

none VM драйвер може привести до проблем з безпекою та втрати даних. Перед тим, як використовувати --driver=none, ознайомтесь з цієй документацієй для отримання додаткової інформації.

Minikube також підтримує vm-driver=podman схожий на Docker драйвер. Podman запущений як суперюзер (root user) це найкрайщий шлях забезпечити повний доступ ваших контейнерів до будь-якої функції, наявної у вашій системі.

Увага:

podman драйвер вимагає запущені контейнери з під root користувача оскільки звичайні облікові записи користувачів не мають повного доступу до всіх функцій операційної системи, які, можливо, потребуватимуть їх роботи.

Встановлення Minikube як Linux пакет

Доступні experimental пакети для Minikube; ви можете знайти Linux (AMD64) пакети для Minikube's releases на сторінці GitHub.

Використовувайте ваш Linux інсталер пакетів для того, шоб поставити відповідний пакет.

Встановлення Minikube за допомогою прямого завантаження

Якщо ви не можете встановити Minikube за допомогою пакета, ви можете скачати автономний бінарний файл, та використати його.

curl -Lo minikube https://storage.googleapis.com/minikube/releases/latest/minikube-linux-amd64 \
  && chmod +x minikube

Ось простий спосіб додати виконуваний файл Minikube до вашого шляху:

sudo mkdir -p /usr/local/bin/
sudo install minikube /usr/local/bin/

Встановлення Minikube використовуючи Homebrew

Як альтернативний варіант, ви можете установити Minikube використовуючи Linux Homebrew:

brew install minikube

Встановлення kubectl

Впевніться шо kubectl встановлен. Ви можете встановити kubectl згідно інструкції Установка та налаштування kubectl.

Встановлення Hypervisor

Якщо у вас немає встановленого гіпервізора, то встановіть один з наступних:

• HyperKit

• VirtualBox

• VMware Fusion

Встановлення Minikube

Найпростіший спосіб встановити Minikube на macOS це використати Homebrew:

brew install minikube

Ви також можете встановити Minikube за допомогою автономного бінарного файла:

curl -Lo minikube https://storage.googleapis.com/minikube/releases/latest/minikube-darwin-amd64 \
  && chmod +x minikube

Ось простий спосіб додати виконуваний файл Minikube до вашого шляху:

sudo mv minikube /usr/local/bin

Встановлення kubectl

Впевніться шо kubectl встановлен. Ви можете встановити kubectl згідно інструкції Установка та налаштування kubectl.

Встановлення Hypervisor

Якщо у вас немає встановленого гіпервізора, то встановіть один з наступних:

• Hyper-V

• VirtualBox

Примітка:

Hyper-V може бути запущен на трьох версіях Windows 10: Windows 10 Enterprise, Windows 10 Professional, and Windows 10 Education.

Встановлення Minikube за допомогою Chocolatey

Найпростіший спосіб встановити Minikube на Windows за допомогою Chocolatey (run as an administrator):

choco install minikube

Коли Minikube закінчив установку, закрийте поточну CLI сесію та перезавантажтесь. Minikube має бути додан до вашого шляху автоматично.

Встановлення Minikube за допомогою програми встановлення

Для встановлення Minikube вручну на Windows за допомогою Windows Installer, скачайте minikube-installer.exe та виконайте програму.

Встановлення Minikube за допомогою прямого завантаження

Для встановлення Minikube вручну на Windows, скачайте minikube-windows-amd64, перейменуйте в minikube.exe, та додайте до вашего шляху.

Що далі

Підтвердження встановлення

Щоб підтвердити успішну установку як гіпервізора, так і Minikube, ви можете запустити таку команду, щоб запустити локальний кластер Kubernetes:

Примітка:

Щоб встановити --driver за допомогою minikube start, введіть ім'я гіпервізора, який ви встановили, малими літерами, де <driver_name> згадано нижче. Повний список значень --driver доступний у вказуванні документації на драйвер VM.
minikube start --driver=<driver_name>

Після того як minikube start закінчився, запустіть команду нижче, щоб перевірити стан кластера:

minikube status

Якщо ваш кластер працює, вивід із "minikube status" має бути аналогічним:

host: Running
kubelet: Running
apiserver: Running
kubeconfig: Configured

Після того, як ви підтвердили, чи Minikube працює з обраним вами гіпервізором, ви можете продовжувати використовувати Minikube або ви можете зупинити кластер. Щоб зупинити кластер, запустіть:

minikube stop

Очистити локальний стан

Якщо ви раніше встановили Minikube та запустили:

minikube start

але minikube start повертає помилку:

machine does not exist

тоді вам треба очистити локальний стан minikube:

minikube delete