Не удаётся установить Kubernetes – Ubuntu 16.04

Вопрос или проблема

Я пытаюсь установить Kubernetes (kubectl) на Ubuntu 16.04 (x64), следуя инструкциям здесь. Я нахожусь за прокси на работе, и я уверен, что это причина неудачи. Я знаю, что существует множество связанных вопросов, но я уже попробовал все предложения, которые смог найти. Любая помощь будет очень признательна.

В настоящее время я застрял на стадии выполнения apt update. Это не удается с ошибкой:

W: Репозиторий 'https://apt.kubernetes.io kubernetes-xenial Release' не имеет файла Release.
N: Данные из такого репозитория не могут быть проверены и, следовательно, их использование может быть небезопасным.
N: См. man-страницу apt-secure(8) для деталей о создании репозиториев и настройке пользователей.
E: Не удалось получить https://apt.kubernetes.io/dists/kubernetes-xenial/main/binary-amd64/Packages  проверка серверного сертификата не удалась. CAfile: /etc/ssl/certs/ca-certificates.crt CRLfile: none

Я попробовал несколько вещей:
Обновил мой apt.conf/etc/apt/apt.conf) с помощью

Acquire::https::packages.cloud.google.com::Verify-Peer "false";

Также попробовал указать вышеуказанное как аргумент командной строки:

sudo apt-get update -o Acquire::https::packages.cloud.google.com::Verify-Peer=false

Я попытался запустить apt-get update с --allow-unauthenticated и --allow-insecure-repositories, но почему-то apt-secure все еще игнорирует все эти инструкции. Я прочел man-страницу для apt-secure, но не нашел ничего неправильного с указанием опций.

Я обновил ключи с помощью:

sudo apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv-keys 6A030B21BA07F4FB

Я обновил мои CA-сертификаты. Я выполнил – sudo rm /var/lib/apt/lists/*, чтобы удалить все списки.

Содержимое /etc/apt/sources.list.d/kubernetes.list

deb https://apt.kubernetes.io/ kubernetes-xenial main

Иногда может возникать проблема перенаправления.

Использование источника ниже решит эту проблему.

deb http://packages.cloud.google.com/apt/ kubernetes-xenial main

Обновление от 2024.3.28: используйте новый URL.

deb [signed-by=/etc/apt/keyrings/kubernetes-apt-keyring.gpg] https://pkgs.k8s.io/core:/stable:/v1.28/deb/ /

Получите gpg ключ, если он отсутствует:

curl -fsSL https://pkgs.k8s.io/core:/stable:/v1.28/deb/Release.key | sudo gpg --dearmor -o /etc/apt/keyrings/kubernetes-apt-keyring.gpg

Официальный документ находится здесь. Он работает для меня.

Цитата из Установка kubeadm:

Примечание: Устаревшие репозитории пакетов (apt.kubernetes.io и yum.kubernetes.io) были устаревшими и замороженными начиная с 13 сентября 2023 года. Использование новых репозиториев пакетов, размещенных на pkgs.k8s.io, настоятельно рекомендуется и обязательно для установки версий Kubernetes, выпущенных после 13 сентября 2023 года. Устаревшие репозитории и их содержимое могут быть удалены в любой момент в будущем без дополнительного уведомления. Новые репозитории пакетов предоставляют загрузки для версий Kubernetes начиная с v1.24.0.

Для Амога и Гуру,

Причина, по которой это больше не работает, начиная с 31 января 2024 года, заключается в том, что K8s изменил расположение репозиториев. См. https://kubernetes.io/blog/2023/08/15/pkgs-k8s-io-introduction/#how-to-migrate

Чтобы справиться с этим, я:

1.) удалил старый источник
который был: /etc/apt/sources.list.d/apt_kubernetes_io.list
который содержал

deb https://apt.kubernetes.io/ kubernetes-xenial main

2.) добавил новый источник
См. их инструкции выше, но краткая версия:

echo "deb [signed-by=/etc/apt/keyrings/kubernetes-apt-keyring.gpg] https://pkgs.k8s.io/core:/stable:/v1.28/deb/ /" | sudo tee /etc/apt/sources.list.d/kubernetes.list

curl -fsSL https://pkgs.k8s.io/core:/stable:/v1.28/deb/Release.key | sudo gpg --dearmor -o /etc/apt/keyrings/kubernetes-apt-keyring.gpg

sudo apt-get update

заметьте, что новые репозитории зависят от версии, и вам нужно правильно установить версию. Вышеуказанное для v1.28

Для последней версии ubuntu, где команда deb не найдена

sudo apt-add-repository 'deb http://packages.cloud.google.com/apt/ kubernetes-xenial main

И для любых ошибок с пакетами добавьте gpg ключ

curl https://packages.cloud.google.com/apt/doc/apt-key.gpg | sudo apt-key add -

и затем выполните

sudo apt-get update

Я пробовал множество способов, включая xenial и другие релизы, но ничего не сработало.

Наконец, я получил стабильное обновление из документации Kubernetes.

ШАГ1: Замените определение репозитория apt, чтобы apt указывал на новый репозиторий вместо репозитория, размещенного на Google. Убедитесь, что вы заменили минорную версию Kubernetes в команде ниже на минорную версию, которую вы в настоящий момент используете:

echo "deb [signed-by=/etc/apt/keyrings/kubernetes-apt-keyring.gpg] https://pkgs.k8s.io/core:/stable:/v1.28/deb/ /" | sudo tee /etc/apt/sources.list.d/kubernetes.list

ШАГ2: Загрузите публичный ключ подписи для репозиториев пакетов Kubernetes. Один и тот же ключ подписи используется для всех репозиториев, поэтому вы можете игнорировать версию в URL:

curl -fsSL https://pkgs.k8s.io/core:/stable:/v1.28/deb/Release.key | sudo gpg --dearmor -o /etc/apt/keyrings/kubernetes-apt-keyring.gpg

ШАГ3: Обновите индекс пакетов apt:

sudo apt update

И это сработало.

.

Ответ или решение

При установке Kubernetes на Ubuntu 16.04 (x64) могут возникнуть проблемы, особенно если вы работаете за прокси-сервером, как в вашем случае. Рассмотрим вашу ситуацию детально и предложим решение, опираясь на последние изменения в инфраструктуре Kubernetes.

Анализ проблемы:

  1. Ошибка сертификата:
    Сообщение об ошибке, которое вы видите, связано с проверкой сертификата сервера, указывающей на проблемы с вашим сетевым соединением или сертификацией CA. Это частая проблема при работе за прокси-сервером, который не упоминает о необходимости проверки SSL-сертификатов.

  2. Депрекация репозитория:
    Старый репозиторий apt.kubernetes.io был заморожен и устарел с 13 сентября 2023 года. Все новые версии Kubernetes теперь доступны через пакеты, хранящиеся в новом репозитории pkgs.k8s.io.

Решение:

  1. Удаление старого репозитория:
    Удалите ранее добавленный источник в /etc/apt/sources.list.d/kubernetes.list, содержащий:

    deb https://apt.kubernetes.io/ kubernetes-xenial main
  2. Добавление нового репозитория:
    Согласно текущей документации Kubernetes, выполните следующие шаги:

    • Добавьте новый источник:

      echo "deb [signed-by=/etc/apt/keyrings/kubernetes-apt-keyring.gpg] https://pkgs.k8s.io/core:/stable:/v1.28/deb/ /" | sudo tee /etc/apt/sources.list.d/kubernetes.list
    • Скачайте и установите открытый ключ GPG для подписывания пакетов:

      curl -fsSL https://pkgs.k8s.io/core:/stable:/v1.28/deb/Release.key | sudo gpg --dearmor -o /etc/apt/keyrings/kubernetes-apt-keyring.gpg
  3. Обновление индексных файлов пакетов:
    После настройки нового репозитория и ключа GPG, выполните команду:

    sudo apt update

Эти шаги должны помочь преодолеть возникшие проблемы с установкой Kubernetes на вашей системе Ubuntu 16.04. Убедитесь, что вы правильно настроили параметры прокси для apt, если они необходимы, добавив их в /etc/apt/apt.conf в формате:

Acquire::http::Proxy "http://your-proxy-server:port/";
Acquire::https::Proxy "http://your-proxy-server:port/";

Переход на новый репозиторий не только решает ваши текущие проблемы с SSL, но и гарантирует совместимость с новыми выпусками Kubernetes в будущем. Убедитесь, что у вас установлены все последние обновления системы, поскольку Ubuntu 16.04 уже устарела и может иметь уязвимости или проблемы совместимости.

Оцените материал
Добавить комментарий

Капча загружается...