﻿# Загрузка образов Deckhouse

> [HTML Version](downloading-images-deckhouse.html)

Кластер Kubernetes с помощью [Deckhouse](https://deckhouse.ru/) можно развернуть в закрытом окружении, из которого нет доступа в интернет. Для этого предварительно скачайте на компьютере с доступом в интернет образы платформы Deckhouse и загрузите их в локальный реестр образов. В рамках статьи в качестве локального реестра образов выбран [Harbor](https://github.com/goharbor/harbor). Подробнее о настройке и установке Harbor читайте в статье [«Установка Harbor»](installing-harbor.md).

Загрузка образов Deckhouse состоит из трёх этапов:

1. [Создание нового проекта в Harbor](#creating-new-project).

2. [Скачивание образов Deckhouse](#downloading-images).

3. [Загрузка образов Deckhouse в Harbor](#uploading-images-to-harbor).

## Шаг 1. Создание нового проекта в Harbor

1. Войдите в web-интерфейс Harbor. В главном левом меню перейдите в раздел **Projects**. Чтобы создать новый проект, нажмите **+New project**.

**(creating-new-project-harbor-1.png)**

2. Введите имя проекта строчными буквами, например, **images**. Укажите, должен ли проект быть общедоступным. Нажмите **OK**. 

**(creating-new-project-harbor-2.png)**

## Шаг 2. Скачивание образов Deckhouse

1. На компьютере с доступом в интернет загрузите скрипт для скачивания образов. Зайдите в терминал и выполните следующую команду:

````
curl -fsSL -o d8-pull.sh https://raw.githubusercontent.com/deckhouse/deckhouse/main/tools/release/d8-pull.sh  
chmod 700 d8-pull.sh

````
Обратите внимание, на хосте должны быть установлены Docker, crane и jq.

Пример вызова команды скачивания образов для [Deckhouse Platform Enterprise Edition](https://deckhouse.ru/products/enterprise_edition.html):

````
./d8-pull.sh --license YOUR\_DECKHOUSE\_LICENSE\_KEY --output-dir /your/output-dir/

````
Пример вызова команды скачивания образов для [Deckhouse Platform Community Edition](https://deckhouse.ru/community/community_edition.html):

````
./d8-pull.sh --edition ce --output-dir /your/output-dir/

````
Дождитесь окончания скачивания образов. При возникновении ошибок загрузки образов, запустите скрипт повторно.

2. На компьютере с доступом в интернет загрузите скрипт для скачивания образов в локальный реестр. Для этого выполните команду:

````
curl -fsSL -o d8-push.sh https://raw.githubusercontent.com/deckhouse/deckhouse/main/tools/release/d8-push.sh  
chmod 700 d8-push.sh

3. ````
Загрузите директорию с образами и скрипт для загрузки образов, на хост, с которого есть доступ до приватного реестра образов.

## Шаг 3. Загрузка образов Deckhouse в Harbor

1. На компьютере, где будет производиться установка, перейдите в директорию с образами и скриптом для загрузки образов. На хосте должен быть установлен crane.

2. Чтобы загрузить образы Deckhouse в приватный реестр, выполните следующую команду:

````
./d8-push.sh --source-dir /your/source-dir/ --path hostname:port/path/deckhouse --username username --password password

````
где:

- ````
\[OBJECT\]````
 — путь до директории с образами;

- ````
\[OBJECT\]````
 — домен FQDN или ip адрес, по которому будет доступен реестр, в рамках статьи **registry.example.com**;

- ````
\[OBJECT\]````
 — номер порта для подключения;

- ````
\[OBJECT\]````
 — путь до [созданного проекта в Harbor](#creating-new-project), в рамках статьи **images**;

- ````
\[OBJECT\]````
 — имя пользователя, обладающего правами на загрузку образов в проект;

- ````
\[OBJECT\]````
 — пароль для пользователя в **username**.

Обратите внимание, если локальный реестр доступен только по протоколу http, необходимо указать дополнительный ключ \[OBJECT\].

````
./d8-push.sh --source-dir /your/source-dir/ --path hostname:port/path/deckhouse --username username --password password --insecure

````
Пример заполнения параметров команды для загрузки образов Deckhouse в рамках статьи

````
./d8-push.sh --source-dir/your/source-dir/ --path registry.example.com:443/images/deckhouse --usernameadmin --passwordHarbor12345

````
где:

- \[OBJECT\] — путь до директории с образами;

- \[OBJECT\] — домен по которому доступен локальный реестр установленный в статье [«Установка Harbor»](installing-harbor.md);

- \[OBJECT\] — номер порта для подключения;

- \[OBJECT\] — путь до [созданного проекта в Harbor](#creating-new-project);

- \[OBJECT\] — имя пользователя, обладающего правами на загрузку образов в проект;

- \[OBJECT\] — пароль для пользователя в **admin**.

3. Дождитесь окончания работы скрипта загрузки образов Deckhouse.