Как установить конкретную версию Kubernetes?
Я устанавливаю последнюю версию Kubernetes с помощью следующей команды на Raspberry PI 3, на которой выполняется Raspbian Stretch.
$ curl -s https://packages.cloud.google.com/apt/doc/apt-key.gpg | sudo apt-key add - && \
echo "deb http://apt.kubernetes.io/ kubernetes-xenial main" | sudo tee /etc/apt/sources.list.d/kubernetes.list && \
sudo apt-get update -q && \
sudo apt-get install -qy kubeadm
В настоящее время будет установлена версия v1.10.0.
Как я могу установить конкретную версию Kubernetes? Допустим, v1.9.6.
4 ответа
Для установки конкретной версии пакета достаточно определить ее во время apt-get install
команда:
apt-get install -qy kubeadm=<version>
Но в текущем случае kubectl
а также kubelet
пакеты устанавливаются по зависимостям при установке kubeadm
поэтому все эти три пакета должны быть установлены с определенной версией:
$ curl -s https://packages.cloud.google.com/apt/doc/apt-key.gpg | sudo apt-key add - && \
echo "deb http://apt.kubernetes.io/ kubernetes-xenial main" | sudo tee /etc/apt/sources.list.d/kubernetes.list && \
sudo apt-get update -q && \
sudo apt-get install -qy kubelet=<version> kubectl=<version> kubeadm=<version>
где доступно <version>
является:
curl -s https://packages.cloud.google.com/apt/dists/kubernetes-xenial/main/binary-amd64/Packages | grep Version | awk '{print $2}'
Для вашего конкретного случая это:
$ curl -s https://packages.cloud.google.com/apt/doc/apt-key.gpg | sudo apt-key add - && \
echo "deb http://apt.kubernetes.io/ kubernetes-xenial main" | sudo tee /etc/apt/sources.list.d/kubernetes.list && \
sudo apt-get update -q && \
sudo apt-get install -qy kubelet=1.9.6-00 kubectl=1.9.6-00 kubeadm=1.9.6-00
Ни один из ответов не дает небольшой подсказки о том, где получить правильную версию пакета. Итак, мое решение для debian 10 (buster), как установить не последнюю (1.20), а версию 1.18 kubeadm
sudo apt-get update && sudo apt-get install -y apt-transport-https curl
curl -s https://packages.cloud.google.com/apt/doc/apt-key.gpg | sudo apt-key add -
cat <<EOF | sudo tee /etc/apt/sources.list.d/kubernetes.list
deb https://apt.kubernetes.io/ kubernetes-xenial main
EOF
apt update
Тут самое главное у меня возникла проблема :). Получить доступные версии пакетов
apt list -a kubeadm
Из вывода выберите, что вы хотите установить
# apt list -a kubeadm
Listing... Done
kubeadm/kubernetes-xenial 1.20.0-00 amd64 [upgradable from: 1.18.13-00]
kubeadm/kubernetes-xenial 1.19.5-00 amd64
kubeadm/kubernetes-xenial 1.19.4-00 amd64
kubeadm/kubernetes-xenial 1.19.3-00 amd64
kubeadm/kubernetes-xenial 1.19.2-00 amd64
kubeadm/kubernetes-xenial 1.19.1-00 amd64
kubeadm/kubernetes-xenial 1.19.0-00 amd64
kubeadm/kubernetes-xenial,now 1.18.13-00 amd64 [installed,upgradable to: 1.20.0-00]
kubeadm/kubernetes-xenial 1.18.12-00 amd64
kubeadm/kubernetes-xenial 1.18.10-00 amd64
Для меня это была последняя версия для 1.18: 1.18.13-00
А теперь просто укажите эту версию для пакетов
apt install -y kubeadm=1.18.13-00 kubelet=1.18.13-00 kubectl=1.18.13-00
Надеюсь, это может сэкономить кому-то время и нервы
На Mac для установки v1.8.5 из kubernetes выполните следующие действия
Получите двоичный файл kubectl.
curl -LO https://storage.googleapis.com/kubernetes-release/release/v1.8.5/bin/darwin/amd64/kubectl
Сделайте исполняемый файл kubectl двоичным.
chmod +x ./kubectl
Переместите исполняемый файл kubectl в /usr/local/bin.
sudo mv ./kubectl /usr/local/bin/kubectl
Вы можете использовать команду ниже, чтобы установить определенную версию Kubernetes на машинах Centos/Redhat, и тот же формат может использовать и другие дистрибутивы.
yum install -y kubelet-1.11.1 kubeadm-1.11.1 kubectl-1.11.1 kubernetes-cni-0.6.0-0.x86_64