Как установить конкретную версию 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

Другие вопросы по тегам