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

Встановлення та налаштування 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

Що далі

Змінено November 04, 2026 at 6:11 AM PST: [uk] Add install and set up kubectl on macOS page (3c0b55d691)