Giter Club home page Giter Club logo

airgap-10.2022's Introduction

airgap-10.2022

Материалы к вебинару установки SUSE Rancher Airgap

Презентация

Полезные ссылки

Системные требования

Для установки RKE/RKE2/K3S и Rancher в инфраструктуре с воздушным зазором нам потребуется:

  1. Выделенная машина с доступом в интернет, которая скачает все необходимые для установки данные.
  2. Сервер Registry внутри безопасного контура на котором разместятся данные требуемые для развертывание инфраструктуры.
  3. Jump Host с помощью которого мы будем управлять развертываемыми серверами.
  4. Хосты на которые мы будем производить установку.

рис.1 Архитектура решения

flowchart TB
style id1 fill:#90EBCD
style id2 fill:#30BA78
style id3 fill:#30BA78
style id4 fill:#30BA78
style d10 fill:#EEEEEE

  id1([Машина с доступом в интернет])
  direction LR
  id1 -.Ручной перенос данных.-> id2  
  subgraph d10 ["Сеть без доступа в интернет"]
    id2(["Registry/Jump Host"])
    id2 --> |Развертывание| d30
    subgraph d30 [" "]
      id3([SUSE Rancher Nodes])
      id4([RKE2 Nodes])
    end
  end
Loading

В тестовом варианте мы можем совместить ряд ролей (Например Registry и Jump Host, роли серверов Kubernetes) В нашем вебинаре мы будем использовать следующий стек продуктов и роли.

  1. Сервер с доступом в интернет на базе SUSE Linux Enterprise Server.
  2. Данный пример использует в качестве среды виртуализации VMware vSphere, но Вы можете использовать любую другую, создав необходимый шаблон виртуальной машины и подключив нужные модули в Rancher, если требуется его интеграция.
  3. Template для узлов в VMware vSphere (который мы создадим чуть позже), а также преднастроенные узлы и сетевой сегмент для развертывание.
  4. Jump Host, с помощью которого будет производиться настройка узлов сети и на котором будет размещен Docker Registry
  5. В Вашей обособленной сети должна быть доступна служба DNS, если ее нет, Вы можете для тестов воспользоваться sslip.io для реализации простого DNS доступа.
  6. В Вашей обособленной сети должен быть настроен DHCP. Вы можете использовать только статические адреса для Ваших стендов, но тема интеграции VMware vSphere с SUSE Rancher для использования только статических адресов и автоматического развертывания кластеров RKE выходит за рамки этого вебинара, но если она Вам интересна некоторый пример и ссылку на описание как это сделать Вы можете найти здесь.
  7. В Вашей обособленной сети должна быть настроена служба синхронизации времени NTP. (например Chrony)
  8. Узел для развертывания Rancher (В отказоустойчивой конфигурации Вам потребуются 3 узла, но для демонстрации концепции достаточно одного).
  9. Три узла для развертывания управляемого кластера (будут созданы Racnher, донастроены cloud-init).

Аппаратные требования

  • 1x Front Server 2 vCPU 4 GiB RAM 1 x HDD 300GB

  • 1x Jump Host 2 vCPU 4 GiB RAM 1 x HDD 300GB (для registry) Поскольку мы совместили роли, нам понадобиться больше места: хранить копию данных образов для загрузки, копию данных образов в Docker, копию данных образов в Registry.

  • 1x dedicate server for Rancher 4 vCPU 16 GiB RAM 1 x HDD 100 GB

  • 3x RKE2 Node - role: ETCD, Controls Plane, Worker 16 vCPU 64 GiB RAM 1 x HDD 320 GB Поскольку мы совместили роли, нам понадобиться больше ресурсов для запуска реальной нагрузки.

Используемые версии

  • SUSE RKE2 v1.24.2+rke2r1 (Default версия Kubernetes 1.24 для SUSE Rancher v2.6.8)
  • SUSE Rancher v2.6.8
  • SUSE SLES 15 SP4
  • Helm v3.9.4 (Поддерживаемые версии Kubernetes 1.24.x - 1.21.x)
  • Сert Manager v1.7.1
  • SUSE Longhorn v1.2

Установка и настройка сервера с доступом в интернет

На данном сервере Вам потребуется Linux с установленным Docker. Я рекомендую установить SUSE Linux Enterprise Server в базовой конфигурации (Это может быть вариант Minimal для которого можно использовать следующую инструкцию, но потребуется действующая подписка (ключ активации) для онлайн установки ряда пакетов). Вы можете установить все обновления SUSE Linux Enterprise Server, для этого Вам потребуется ключ активации, возможно также использование триального ключа. Для тестирования на всех системах я рекомендую использовать один раздел root без разбиения.

  1. Установить и запустить Docker
  • Если у Вас есть ключ активации и система активирована выполните следующую команду:
sudo SUSEConnect -p sle-module-containers/15.4/x86_64

Или

  • Если Вы установили SLES с DVD без подключения источников обновления и дополнительных модулей, то оставьте DVD в приводе (Важно, Вам нужен full ISO):
sudo yast2 add-on

Выберите Add => DVD => Подключите DVD образ => Отметьте "Containers Module" и "Server Applications Module" => Next => Accept => OK => Finish => OK

add_modules

Для установки docker выполните:

sudo zypper in -y docker
sudo usermod -aG docker root
sudo systemctl enable --now docker
sudo chown root:docker /var/run/docker.sock
  1. Установка CLI helm
curl -fsSL -o get_helm.sh https://raw.githubusercontent.com/helm/helm/main/scripts/get-helm-3
chmod 700 get_helm.sh
sudo ./get_helm.sh -v v3.9.4
  1. Найдите и скачайте файлы требуемой версии Rancher Перейдите страницу с данными releases и найдите релиз v2.x.x версии которой хотите установить и нажмите Assets. Примечание. Не используйте выпуски с пометкой rc или Pre-release, так как они нестабильны и не для производственной среды. Скачайте из секции Assets следующие файлы (они требуются для установки в окружение с воздушным зазором):
  • rancher-images.txt Этот файл содержит список образов требуемых для установки Rancher, развертывания коастера и использования инструментов (tools) Rancher.
  • rancher-save-images.sh Этот скрипт скачает (pulls) все образы из rancher-images.txt с Docker Hub и сохранит их как rancher-images.tar.gz
  • rancher-load-images.sh Этот скрипт загрузит (loads) образы из rancher-images.tar.gz и выгрузит (pushes) в частное (private) registry.

В данном вебинаре мы используем:

wget https://github.com/rancher/rancher/releases/download/v2.6.8/rancher-images.txt
wget https://github.com/rancher/rancher/releases/download/v2.6.8/rancher-save-images.sh
wget https://github.com/rancher/rancher/releases/download/v2.6.8/rancher-load-images.sh
  1. Получите список образов cert-manager (менеджер сертификатов) При установке Kubernetes если Вы выберете использование самоподписные сертификаты (default self-signed TLS certificates) Вам требуется добавить список образов в файл rancher-images.txt.
  2. Получите latest cert-manager helm chart и выгрузите из шаблона информацию об образах:
helm repo add jetstack https://charts.jetstack.io
helm repo update
helm fetch jetstack/cert-manager --version v1.7.1
helm template ./cert-manager-v1.7.1.tgz | awk '$1 ~ /image:/ {print $2}' | sed s/\"//g >> ./rancher-images.txt
  1. Отсортируйте список и оставьте только уникальные записи:
sort -u rancher-images.txt -o rancher-images.txt
  1. Получите список образов RKE2

  2. Перейдите на страницу releases page, Найдите RKE2 release который планируете установить и нажмите Assets. В секции Assets скачайте следующий файл со списком образов, требуемых для установки RKE2 в инфраструктуре с воздушным зазором: rke2-images-all.linux-amd64.txt

  3. Добавьте образы RKE2 к файлу rancher-images.txt:

wget https://github.com/rancher/rke2/releases/download/v1.24.2%2Brke2r1/rke2-images-all.linux-amd64.txt
sed -i 's/docker\.io\///' rke2-images-all.linux-amd64.txt
cat rke2-images-all.linux-amd64.txt >> ./rancher-images.txt
  1. Отсортируйте и оставьте только уникальные записи:
sort -u rancher-images.txt -o rancher-images.txt
  1. Сохраните образы на Вашу рабочую станцию
  2. сделайте rancher-save-images.sh исполняемым:
chmod +x rancher-save-images.sh
  1. Запустите rancher-save-images.sh используя список образов rancher-images.txt image для создания tarball:
sudo ./rancher-save-images.sh --image-list ./rancher-images.txt

Результат: Docker начнет извлекать (pulling) образы для установки с воздушным зазором. Будьте терпеливы. Этот процесс займет какое-то время. Когда процесс завершить будет сформирован файл rancher-images.tar.gz.

  1. Добавьте репозиторий Rancher Helm Chart
helm repo add rancher-stable https://releases.rancher.com/server-charts/stable
helm fetch rancher-stable/rancher --version=v2.6.8
  1. Получите render шаблона cert-manager (замените 192.168.0.10.sslip.io:5000 - на адрес вашего будущего registry, можете использовать для этого Jump Host)
export registry_url=192.168.0.10.sslip.io:5000
helm template cert-manager ./cert-manager-v1.7.1.tgz --output-dir . \
    --namespace cert-manager \
    --set image.repository=${registry_url}/quay.io/jetstack/cert-manager-controller \
    --set webhook.image.repository=${registry_url}/quay.io/jetstack/cert-manager-webhook \
    --set cainjector.image.repository=${registry_url}/quay.io/jetstack/cert-manager-cainjector \
    --set startupapicheck.image.repository=${registry_url}/quay.io/jetstack/cert-manager-ctl
  1. Скачайте cert-manager CRD
curl -L -o cert-manager/cert-manager-crd.yaml https://github.com/jetstack/cert-manager/releases/download/v1.7.1/cert-manager.crds.yaml
  1. Получите render шаблона Rancher Вы можете использовать как самоподписные, так и собственные сертификаты для установки Rancher, ниже пример для самоподписных сертификатов. Ниже в переменной rancher_fqdn Вы должны указать FQDN для будущего сервера Rancher. А в переменной registry_url URL вашего registry в безопасном сегменте (как например адрес и порт используемых в данной инструкции Jump Host, если у Вас нет готового registry) опция --set replicas=1 указывает развернуть сервер Rancher с одной репликой, измените значения на 3 для отказоустойчивой архитектуры
export rancher_fqdn=192.168.0.11.sslip.io
export registry_url=192.168.0.10.sslip.io:5000
helm template rancher ./rancher-2.6.8.tgz --output-dir . \
    --no-hooks \
    --namespace cattle-system \
    --set hostname=${rancher_fqdn} \
    --set certmanager.version=1.7.1 \
    --set rancherImage=${registry_url}/rancher/rancher \
    --set systemDefaultRegistry=${registry_url} \
    --set replicas=1 \
    --set useBundledSystemChart=true \
    --version=2.6.8
  1. Скачайте утилиты CLI
curl -LO https://storage.googleapis.com/kubernetes-release/release/`curl -s https://storage.googleapis.com/kubernetes-release/release/stable.txt`/bin/linux/amd64/kubectl
wget https://github.com/rancher/rke2/releases/download/v1.24.2%2Brke2r1/rke2.linux-amd64.tar.gz
  1. Получите образы registry
 sudo docker pull httpd:2
 sudo docker save httpd:2 |  gzip --stdout > httpd.gz
 sudo docker pull registry:2
 sudo docker save registry:2 |  gzip --stdout > registry.gz
  1. Скачайте с сайта suse.com образ SLES 15 SP4 full ISO (SLE-15-SP4-Full-x86_64-GM-Media1.iso) Для этого не требуется ключ активации, только регистрация на сайте.

  2. Сделайте копию всех полученных данных на внешний носитель, для копирования в сегмент без доступа в интернет:

  • rancher-load-images.sh
  • rancher-images.tar.gz
  • rancher-images.txt
  • ./rancher
  • ./cert-manager
  • kubectl
  • rke2.linux-amd64.tar.gz
  • httpd.gz
  • registry.gz
  • SLE-15-SP4-Full-x86_64-GM-Media1.iso Также для Вашего удобства к проекту приложено несколько файлов, которые пригодятся для создания стенда:
  • kiwi
  • certs.sh

Установка и настройка систем в изолированном контуре (Jump Host)

Подготовка

  • Скачайте установочный образ SUSE Linux Enterprise Server 15 SP4 (full ISO)
  • Установите на Jump Host SUSE Linux Enterprise Server (оставьте подключенным к нему iso образ).
  • Настройте firewall если планируете использовать на Jump Host Registry или деактивируйте firewall.
  • Если у Вас доступен сервис RMT при установке добавьте следующие модули:
    • Containers Module
    • Server Applications Module
    • Development Tools Module

Перечисленные ниже команды исходят из того, что у Вас нет доступа к службе SUSE RMT (централизованного обновления) внутри изолированного сегмента. Если у Вас есть служба RMT, просто замените команды подключения репозиториев аналогичными с использованием SUSEConnect. Централизованное обновление выходит за рамки данного вебинара, но наличие этой службы во многом упростит работы.

Копируйте Ваши данные, полученные на сервере подключенном к интернет на Ваш Jump Host.

Создания образа SLES для VMware vSphere

  1. На Jump Host установите пакет kiwi. Если Вы установили SLES с DVD без подключения источников обновления и дополнительных модулей, то оставьте DVD в приводе (Важно, Вам нужен full ISO):
sudo yast2 add-on

Выберите Add => DVD => Подключите DVD образ => Отметьте "Development Tools Module" => Next => Accept => OK => Finish => OK

sudo zypper install -y python3-kiwi
sudo zypper install -y kiwi-templates-Minimal
  1. Скопируйте каталог с настройками образа.
cp -r /usr/share/kiwi/image/suse-SLE15-Enterprise-Minimal ~/kiwi-SLES-template
  1. Замените в каталоге ~/kiwi-SLES-template/config.sh на файл config.sh
  2. Замените шаблон ~/kiwi-SLES-template/Minimal.kiwi на файл Minimal.kiwi и измените пароль в готовом шаблоне получив его используя команду:
openssl passwd -1 -salt '{Примесь для пароля}' {Ваш пароль}

пример:

openssl passwd -1 -salt 'suse' suse1234

в разделе:

  <users group="root">
      <user password="$1$suse$8xZqp834AVBxSB.CQ0IEf." home="/root" name="root"/>
  </users>
  1. Скачайте, если не сделали этого раньше, SUSE Linux Enterprise Server 15SP4 (full iso) SLE-15-SP4-Full-x86_64-GM-Media1.iso
  2. Создайте каталог /media/suse
sudo mkdir -p /media/suse
  1. Подключите iso к каталогу.
sudo mount SLE-15-SP4-Full-x86_64-GM-Media1.iso /media/suse/
  1. Запустите следующую команду, чтобы создать образ:
sudo kiwi-ng  --profile VMware system build --description ./kiwi-SLES-template/ --target-dir /tmp/out

Сохраните получившейся файл SLES15-SP4-Minimal-RKE2.x86_64-15.4.0.vmdk

  1. Получившийся образ диска загрузить в хранилище VMware vSphere и использовать его для создание виртуальной машины используемой в дальнейшем как шаблон при развертывании узлов Rancher и RKE2.

Установите и настройте Docker

Если Вы установили SLES с DVD без подключения источников обновления и дополнительных модулей, то оставьте DVD в приводе (Важно, Вам нужен full ISO):

sudo yast2 add-on

Выберите Add => DVD => Подключите DVD образ => Отметьте "Containers Module" => Next => Accept => OK => Finish => OK

Для установки docker выполните:

sudo zypper in -y docker
sudo usermod -aG docker root
sudo systemctl enable --now docker
sudo chown root:docker /var/run/docker.sock

Установка и настройка локального Registry (Jump Host)

В данном примере мы создадим собственное Registry для размещения образов, но Вы можете воспользоваться любым подходящим используемым Вами решением. Если Вы настраиваете Registry на своем Jump Host убедитесь, пожалуйста, что у Вас открыты порты 8443 и 5000 в Вашем firewall или деактивируйте его

Создание сертификатов для Registry

В этом проекте приложен скрипт для создания сертификатов для Registry. Что-бы создать сертификаты выполните:

sudo zypper in -y gnutls
sudo mkdir -p /opt/certificates

Скопируйте certs.sh в /opt/certificates В команде ниже замените FQDN и IP своими данными

cd /opt/certificates
sudo chmod +x certs.sh
sudo ./certs.sh --registry_fqdn 192.168.0.10.sslip.io --registry_ip 192.168.0.10
cd ..

Нам понадобиться добавить созданный сертификат CA в доверенные для Docker для этого:

  • Установите утилиту jq
sudo zypper in -y jq

Поменяйте FQDN Registry (в примере 192.168.0.10.sslip.io) на Ваши данные, используемые при создании сертификата и выполните (в примере, действия выполненны от учетной записи root):

su -
export registry_fqdn=192.168.0.10.sslip.io
export registry_url="https://${registry_fqdn}:8443"
echo "$(jq --arg urlarg "${registry_url}" '. += {"registry-mirrors": [$urlarg]}' /etc/docker/daemon.json)" > /etc/docker/daemon.json

cd /opt/certificates
mkdir -p /etc/docker/certs.d/${registry_url}
cp ${registry_fqdn}.cert ${registry_fqdn}.key ca.crt /etc/docker/certs.d/${registry_url}
cd ..

systemctl restart docker

Развертывание Registry

Копируйте с внешнего носителя файлы:

  • httpd.gz
  • registry.gz

Выполните следующие команды:

sudo docker load --input httpd.gz
sudo docker load --input registry.gz
sudo mkdir -p /opt/docker-certs
sudo mkdir -p /opt/docker-auth
sudo mkdir -p /opt/registry

cd /opt/certificates/
sudo cp registry.key.pem /opt/docker-certs/tls.key
sudo openssl x509 -inform PEM -in registry.cert.pem -out /opt/docker-certs/tls.crt

Создайте пароль для доступа к Registry (Замените имя пользователя geeko и пароль P@ssw0rd на Ваши данные):

sudo sh -c 'docker run \
 --entrypoint htpasswd \
 httpd:2 -Bbn geeko P@ssw0rd > /opt/docker-auth/htpasswd'

Для запуска контейнеров выполните команды ниже.

Мы запускаем два образа Registry использующих одну и туже общую папку (Один в режиме только для чтения) чтобы обеспечить работу как по паролю так и анонимного доступа.

sudo docker run -d \
  --restart=always \
  --name registry \
  -v /opt/docker-certs:/certs:ro \
  -v /opt/docker-auth:/auth:ro \
  -v /opt/registry:/var/lib/registry \
  -e "REGISTRY_AUTH=htpasswd" \
  -e "REGISTRY_AUTH_HTPASSWD_REALM=Registry Realm" \
  -e "REGISTRY_AUTH_HTPASSWD_PATH=/auth/htpasswd" \
  -e "REGISTRY_HTTP_ADDR=0.0.0.0:8443" \
  -e "REGISTRY_HTTP_TLS_CERTIFICATE=/certs/tls.crt" \
  -e "REGISTRY_HTTP_TLS_KEY=/certs/tls.key" \
  -e "REGISTRY_STORAGE_FILESYSTEM_ROOTDIRECTORY=/var/lib/registry" \
  -p 8443:8443 \
  registry:2

sudo docker run -d \
  --restart=always \
  --name registry-anonymous \
  -v /opt/docker-certs:/certs:ro \
  -v /opt/docker-auth:/auth:ro \
  -v /opt/registry:/var/lib/registry:ro \
  -e "REGISTRY_HTTP_TLS_CERTIFICATE=/certs/tls.crt" \
  -e "REGISTRY_HTTP_TLS_KEY=/certs/tls.key" \
  -e "REGISTRY_STORAGE_FILESYSTEM_ROOTDIRECTORY=/var/lib/registry" \
  -p 5000:5000 \
  registry:2

Импортирование данных в локальный Registry

Скопируйте подготовленные Вами на внешнем носителе данные на Jump Host. На потребуются:

  • rancher-load-images.sh
  • rancher-images.tar.gz
  • rancher-images.txt
  • ./rancher
  • ./cert-manager
  • kubectl
  • rke2.linux-amd64.tar.gz

Установите kubectl:

sudo cp kubectl /usr/local/bin/
sudo chmod +x /usr/local/bin/kubectl

Что-бы выгрузить образы поменяйте FQDN Registry (в примере 192.168.0.10.sslip.io) на Ваши данные используемые при создании сертификата и выполните:

export registry_fqdn=192.168.0.10.sslip.io
export registry_url="https://${registry_fqdn}:8443"

sudo docker login ${registry_url}

chmod +x rancher-load-images.sh
sudo ./rancher-load-images.sh -l rancher-images.txt -r ${registry_fqdn}:8443

В результате должен получиться функционирующий Registry c образами, требуемыми для установки с воздушным зазором. Последняя команда выполняется продолжительное время.

Развертывание SUSE Rancher

Для первоначальной настройки и установки SUSE Rancher потребуется:

  • Развернуть 1 или 3 (для отказоустойчивости) виртуальные машины с Linux.
  • Установить на него (них) RKE2 (Kubernetes)
  • Развернуть Cert Manager
  • Развернуть SUSE Rancher

Установка Linux на Ваш сервер SUSE Rancher

  1. Использую получившийся шаблон разверните виртуальную машину. В данном руководстве мы используем 1 сервер для Rancher.

Не забудьте указать правильный размер ресурсов, увеличить предоставляемый жесткий диск и т.д.

При использовании шаблона и без cloud-init не произойдет изменение размеров раздела btrfs до размера всего диска, чтобы это сделать вручную, выполните команды ниже:

echo -e "quit\nY\n" | sfdisk /dev/sda --force
partprobe /dev/sda
echo 1 > /sys/block/sda/device/rescan
parted -s /dev/sda resize 3 100%
btrfs filesystem resize max /
  1. Настройте на Вашем сервере сеть в соответствии с выбранным IP адресом и именем заданным при получении render шаблона Rancher.
yast2 lan
  1. Настройте на Вашем сервере службу синхронизации времени (например chrony).
yast2 ntp-client

Установка RKE2 на Ваш сервер SUSE Rancher

  1. Копируйте (rke2.linux-amd64.tar.gz) на Ваш сервер Rancher и разархивируйте утилиту rke2 в папку /usr/local/bin/ . В примерах здесь и далее в качестве адреса сервера SUSE Rancher используется адрес 192.168.0.11 На Jump Host выполните:
scp rke2.linux-amd64.tar.gz [email protected]:/tmp/

Зайдите на консоль сервера SUSE Rancher и выполните:

tar xzf "/tmp/rke2.linux-amd64.tar.gz" -C "/usr/local"
  1. Сделайте доверенным сертификат Вашего сервера Registry. Копируйте файл /opt/certificates/cacert.pem с Jump Host на сервер SUSE Rancher:
scp /opt/certificates/cacert.pem [email protected]:/etc/pki/trust/anchors/rancher-stend.pem

Зайдите на консоль сервера SUSE Rancher и выполните:

update-ca-certificates && c_rehash
  1. Настройте используемый по умолчанию Registry Зайдите на консоль сервера SUSE Rancher и выполните (заменив на адрес Вашего Registry):
export registry_fqdn=192.168.0.10.sslip.io
export registry_uri="${registry_fqdn}:5000"
mkdir -p /etc/rancher/rke2
echo 'system-default-registry: "'${registry_uri}'"' > /etc/rancher/rke2/config.yaml
  1. Загрузите RKE2
systemctl enable rke2-server --now

Установка SUSE Rancher

В примерах ниже замените адрес 192.168.0.11 на адрес Вашего сервера Rancher. Скопируйте файл конфигурации kubectl на Ваш Jump Host

scp [email protected]:/etc/rancher/rke2/rke2.yaml kubeconfig-rancher.yaml

Замените в нем адрес подключения с 127.0.0.1 на 192.168.0.11

sed -i 's/127.0.0.1/192.168.0.11/' ./kubeconfig-rancher.yaml
Установите Cert Manager

Для этого Выполните следующие команды: Укажите где брать настройки kubectl

export KUBECONFIG=~/kubeconfig-rancher.yaml

Дождитесь старта Kuberntes, проконтролировать можно, например, командой:

kubectl get nodes

Создайте Name Space

kubectl create namespace cert-manager

Перейдите в папку с данными, скопированными с внешнего носителя и установите Cert Manager

kubectl apply -f cert-manager/cert-manager-crd.yaml
kubectl apply -R -f ./cert-manager
Установите Racnher

Укажите где брать настройки kubectl

export KUBECONFIG=~/kubeconfig-rancher.yaml

Перейдите в папку с данными скопированными с внешнего носителя и выполните:

kubectl create namespace cattle-system
kubectl -n cattle-system apply -R -f ./rancher

Результат: у Вас получится установить RKE2 (Kubernetes) и установить в него SUSE Rancher используя локальный Registry и без подключения к интернет

Развертывание Kubernetes (RKE2) с помощью SUSE Rancher.

Для развертывания RKE2 с помощью установленного сервера SUSE Rancher сделайте следующее:

  • Зайдите на web интерфейс установленного SUSE Rancher используя адрес указанный при render шаблона Rancher.
  • Создайте RKE2 кластер используя web интерфейс.
  • Убедитесь, что при создании у Вас указана настройка Registry.
  • Ноды кластера должны доверять Вашему Registry, поэтому требуется добавить на новых узлах CA сертификата в доверенные, в данной демонстрации мы сделаем это с помощью cloud-init

Cloud Init

В приведенном демо стенде мы используем cloud-init для настройки синхронизации времени (замените IP адрес, на адрес своего источника времени) и добавления CA в доверенные (Замените данными вашего CA - файл /opt/certificates/cacert.pem на Jump Host):

#cloud-config
write_files:
  - path: /etc/pki/trust/anchors/rancher-stend.pem
    content: |    
        -----BEGIN CERTIFICATE-----
        Данные Вашего сертификата.
        Незабудьте про отступы в этом файле
        -----END CERTIFICATE-----

runcmd:
  - systemctl disable firewalld --now
  - echo "pool 192.168.0.10 iburst" >> /etc/chrony.conf
  - systemctl restart chronyd
  - update-ca-certificates && c_rehash

Развертывание Kubernetes (RKE) с помощью SUSE Rancher.

Для развертывания RKE версии 1 с помощью установленного сервера SUSE Rancher сделайте следующее:

  • Зайдите на web интерфейс установленного SUSE Rancher используя адрес указанный при render шаблона Rancher.
  • Создайте RKE кластер используя web интерфейс.
  • Ноды кластера должны доверять Вашему Registry, поэтому требуется добавить на новых узлах CA сертификата в доверенные, в данной демонстрации мы сделаем это с помощью cloud-init

Cloud Init

В приведенном демо стенде мы используем cloud-init для настройки синхронизации времени (замените IP адрес, на адрес своего источника времени) и добавления CA в доверенные (Замените данными вашего CA - файл /opt/certificates/cacert.pem на Jump Host):

#cloud-config
write_files:
  - path: /etc/pki/trust/anchors/rancher-stend.pem
    content: |    
        -----BEGIN CERTIFICATE-----
        Данные Вашего сертификата.
        Незабудьте про отступы в этом файле
        -----END CERTIFICATE-----

runcmd:
  - path: /etc/sysctl.d/90-rancher.conf
    content: |    
        net.bridge.bridge-nf-call-iptables=1
        net.ipv6.conf.all.disable_ipv6=1
        net.ipv6.conf.default.disable_ipv6=1
        net.ipv6.conf.lo.disable_ipv6=1  

  - path: /etc/modules-load.d/modules-rancher.conf
    content: |    
        br_netfilter

runcmd:
  - swapoff -a
  - systemctl disable kdump --now
  - systemctl disable firewalld --now
  - usermod -aG docker root
  - chown root:docker /var/run/docker.sock
  - modprobe br_netfilter
  - sysctl net.bridge.bridge-nf-call-iptables=1
  - sysctl net.ipv6.conf.all.disable_ipv6=1
  - sysctl net.ipv6.conf.default.disable_ipv6=1
  - sysctl net.ipv6.conf.lo.disable_ipv6=1     
  - echo "pool 192.168.0.10 iburst" >> /etc/chrony.conf
  - systemctl restart chronyd
  - update-ca-certificates && c_rehash
  - systemctl enable docker --now

Файлы материалов

airgap-10.2022's People

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.