Материалы к вебинару установки SUSE Rancher Airgap
- Установка Rancher Air-Gap
- Установка RKE2 Air-Gap
- Установка K3S Air-Gap
- Air Gap установка Rancher/RKE2 для запуска SAP Data Intelligence 3.1
Для установки RKE/RKE2/K3S и Rancher в инфраструктуре с воздушным зазором нам потребуется:
- Выделенная машина с доступом в интернет, которая скачает все необходимые для установки данные.
- Сервер Registry внутри безопасного контура на котором разместятся данные требуемые для развертывание инфраструктуры.
- Jump Host с помощью которого мы будем управлять развертываемыми серверами.
- Хосты на которые мы будем производить установку.
рис.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
В тестовом варианте мы можем совместить ряд ролей (Например Registry и Jump Host, роли серверов Kubernetes) В нашем вебинаре мы будем использовать следующий стек продуктов и роли.
- Сервер с доступом в интернет на базе SUSE Linux Enterprise Server.
- Данный пример использует в качестве среды виртуализации VMware vSphere, но Вы можете использовать любую другую, создав необходимый шаблон виртуальной машины и подключив нужные модули в Rancher, если требуется его интеграция.
- Template для узлов в VMware vSphere (который мы создадим чуть позже), а также преднастроенные узлы и сетевой сегмент для развертывание.
- Jump Host, с помощью которого будет производиться настройка узлов сети и на котором будет размещен Docker Registry
- В Вашей обособленной сети должна быть доступна служба DNS, если ее нет, Вы можете для тестов воспользоваться sslip.io для реализации простого DNS доступа.
- В Вашей обособленной сети должен быть настроен DHCP. Вы можете использовать только статические адреса для Ваших стендов, но тема интеграции VMware vSphere с SUSE Rancher для использования только статических адресов и автоматического развертывания кластеров RKE выходит за рамки этого вебинара, но если она Вам интересна некоторый пример и ссылку на описание как это сделать Вы можете найти здесь.
- В Вашей обособленной сети должна быть настроена служба синхронизации времени NTP. (например Chrony)
- Узел для развертывания Rancher (В отказоустойчивой конфигурации Вам потребуются 3 узла, но для демонстрации концепции достаточно одного).
- Три узла для развертывания управляемого кластера (будут созданы 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 без разбиения.
- Установить и запустить 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
Для установки docker выполните:
sudo zypper in -y docker
sudo usermod -aG docker root
sudo systemctl enable --now docker
sudo chown root:docker /var/run/docker.sock
- Установка 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
- Найдите и скачайте файлы требуемой версии 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
- Получите список образов cert-manager (менеджер сертификатов) При установке Kubernetes если Вы выберете использование самоподписные сертификаты (default self-signed TLS certificates) Вам требуется добавить список образов в файл rancher-images.txt.
- Получите 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
- Отсортируйте список и оставьте только уникальные записи:
sort -u rancher-images.txt -o rancher-images.txt
-
Получите список образов RKE2
-
Перейдите на страницу releases page, Найдите RKE2 release который планируете установить и нажмите Assets. В секции Assets скачайте следующий файл со списком образов, требуемых для установки RKE2 в инфраструктуре с воздушным зазором: rke2-images-all.linux-amd64.txt
-
Добавьте образы 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
- Отсортируйте и оставьте только уникальные записи:
sort -u rancher-images.txt -o rancher-images.txt
- Сохраните образы на Вашу рабочую станцию
- сделайте rancher-save-images.sh исполняемым:
chmod +x rancher-save-images.sh
- Запустите 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.
- Добавьте репозиторий Rancher Helm Chart
helm repo add rancher-stable https://releases.rancher.com/server-charts/stable
helm fetch rancher-stable/rancher --version=v2.6.8
- Получите 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
- Скачайте 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
- Получите 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
- Скачайте утилиты 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
- Получите образы 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
-
Скачайте с сайта suse.com образ SLES 15 SP4 full ISO (SLE-15-SP4-Full-x86_64-GM-Media1.iso) Для этого не требуется ключ активации, только регистрация на сайте.
-
Сделайте копию всех полученных данных на внешний носитель, для копирования в сегмент без доступа в интернет:
- 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
- Скачайте установочный образ 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.
- На 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
- Скопируйте каталог с настройками образа.
cp -r /usr/share/kiwi/image/suse-SLE15-Enterprise-Minimal ~/kiwi-SLES-template
- Замените в каталоге ~/kiwi-SLES-template/config.sh на файл config.sh
- Замените шаблон ~/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>
- Скачайте, если не сделали этого раньше, SUSE Linux Enterprise Server 15SP4 (full iso) SLE-15-SP4-Full-x86_64-GM-Media1.iso
- Создайте каталог /media/suse
sudo mkdir -p /media/suse
- Подключите iso к каталогу.
sudo mount SLE-15-SP4-Full-x86_64-GM-Media1.iso /media/suse/
- Запустите следующую команду, чтобы создать образ:
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
- Получившийся образ диска загрузить в хранилище VMware vSphere и использовать его для создание виртуальной машины используемой в дальнейшем как шаблон при развертывании узлов Rancher и RKE2.
Если Вы установили 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 для размещения образов, но Вы можете воспользоваться любым подходящим используемым Вами решением. Если Вы настраиваете Registry на своем Jump Host убедитесь, пожалуйста, что у Вас открыты порты 8443 и 5000 в Вашем firewall или деактивируйте его
В этом проекте приложен скрипт для создания сертификатов для 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
Копируйте с внешнего носителя файлы:
- 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
Скопируйте подготовленные Вами на внешнем носителе данные на 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 потребуется:
- Развернуть 1 или 3 (для отказоустойчивости) виртуальные машины с Linux.
- Установить на него (них) RKE2 (Kubernetes)
- Развернуть Cert Manager
- Развернуть SUSE Rancher
- Использую получившийся шаблон разверните виртуальную машину. В данном руководстве мы используем 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 /
- Настройте на Вашем сервере сеть в соответствии с выбранным IP адресом и именем заданным при получении render шаблона Rancher.
yast2 lan
- Настройте на Вашем сервере службу синхронизации времени (например chrony).
yast2 ntp-client
- Копируйте (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"
- Сделайте доверенным сертификат Вашего сервера 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
- Настройте используемый по умолчанию 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
- Загрузите RKE2
systemctl enable rke2-server --now
В примерах ниже замените адрес 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
Для этого Выполните следующие команды: Укажите где брать настройки 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
Укажите где брать настройки kubectl
export KUBECONFIG=~/kubeconfig-rancher.yaml
Перейдите в папку с данными скопированными с внешнего носителя и выполните:
kubectl create namespace cattle-system
kubectl -n cattle-system apply -R -f ./rancher
Результат: у Вас получится установить RKE2 (Kubernetes) и установить в него SUSE Rancher используя локальный Registry и без подключения к интернет
Для развертывания RKE2 с помощью установленного сервера SUSE Rancher сделайте следующее:
- Зайдите на web интерфейс установленного SUSE Rancher используя адрес указанный при render шаблона Rancher.
- Создайте RKE2 кластер используя web интерфейс.
- Убедитесь, что при создании у Вас указана настройка Registry.
- Ноды кластера должны доверять Вашему Registry, поэтому требуется добавить на новых узлах CA сертификата в доверенные, в данной демонстрации мы сделаем это с помощью 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
Для развертывания RKE версии 1 с помощью установленного сервера SUSE Rancher сделайте следующее:
- Зайдите на web интерфейс установленного SUSE Rancher используя адрес указанный при render шаблона Rancher.
- Создайте RKE кластер используя web интерфейс.
- Ноды кластера должны доверять Вашему Registry, поэтому требуется добавить на новых узлах CA сертификата в доверенные, в данной демонстрации мы сделаем это с помощью 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