Установите istio-1.6.0
и прейдите в данную директорию:
sudo curl -sL https://istio.io/downloadIstio | ISTIO_VERSION=1.6.0 sh -
sudo chmod +x ./istio-1.6.0
sudo mv ./istio-1.6.0 /usr/local/bin/istio-1.6.0
export ISTIOPATH=/usr/local/bin/istio-1.6.0
export PATH=$ISTIOPATH/bin:$PATH
Установите kubectl
:
sudo curl -LO https://storage.googleapis.com/kubernetes-release/release/`curl -s https://storage.googleapis.com/kubernetes-release/release/stable.txt`/bin/linux/amd64/kubectl
sudo chmod +x ./kubectl
sudo mv ./kubectl /usr/local/bin/kubectl
- Скачайте и запустите MADT:
cd ~
git clone --recursive https://github.com/dltcspbu/madt/
mkdir ~/madt/labs && export MADT_LABS_DIR=$HOME/madt/labs
mkdir ~/madt/sockets && export MADT_LABS_SOCKETS_DIR=$HOME/madt/sockets
cd madt
sudo pip3 install -r ./requirements.txt
sudo make && sudo make install
sudo -HE env PYTHONPATH=$HOME/madt:$PYTHONPATH SSH_PWD=demo python3 madt_ui/main.py 80
- Перейдите в директорию
./tutorials
, склонируйте данный проект, соберите образ и запустите lab.py:
#open new terminal window
cd ~/madt/tutorials
git clone https://github.com/IvPod/Madt_Kind.git
docker build -t madt/kind .
python3 ./lab.py
- Перейдите на 127.0.0.1:80, для login используйте:
demo:demo
- Выберите сеть kind и нажмите кнопку
restart
- Далее создайте 2 новых окна терминала и зайдите в них под root
sudo -s
- Далее мы зайдем в каждый из созданных нами контейнеров и выполним команды по пулу образа kind, сбору кластеров и применению сервисов ISTIO:
#in new terminal №1
docker exec -it MADT_kind_Node0 /bin/bash
wrapdocker
bash scripts/pull_image.sh
kind create cluster --image kindest/node:v1.18.2 --config=/configs/config_cluster1.yaml --name kind-1
cd $ISTIOPATH
bash /scripts/cluster1.sh
#in new terminal №2
docker exec -it MADT_kind_Node1 /bin/bash
wrapdocker
bash scripts/pull_image.sh
kind create cluster --image kindest/node:v1.18.2 --config=/configs/config_cluster2.yaml --name kind-2
cd $ISTIOPATH
bash /scripts/cluster2.sh
- Скопируем конфиги из наших контейнеров в хост, для этого откроем еще одно окно терминала и перейдем в директорию с данным проектом:
bash copy_configs.sh
- Проверяем работоспособность:
# in terminal with MADT_kind_Node0
bash /scripts/finalize.sh
Убедитесь, что у Вас собран образ madt/kind
(если нет, см. выше). Перейдите в директорию ISTIOPATH
:
cd $ISTIOPATH
- Создадим сеть:
docker network create --subnet=15.0.0.0/29 PRIVATENET
- Создадим 2 контейнера:
docker run -it --net=PRIVATENET --privileged -p 8008:8008 -p 9080:9080 --name MADT_kind_Node0 -d madt/kind
docker run -it --net=PRIVATENET --privileged -p 8009:8009 --name MADT_kind_Node1 -d madt/kind
- Для каждого контейнера, пульнуть образ kindest/node:v1.18.2 из DockerHub'a используя скрипт
docker exec MADT_kind_Node0 scripts/pull_image.sh
docker exec MADT_kind_Node1 scripts/pull_image.sh
- Создать кластер в каждом контейнере (с помощью
docker exec
илиdocker attach
в отдельных окнах):
kind create cluster --image kindest/node:v1.18.2 --config=/configs/config_cluster1.yaml --name kind-1
kind create cluster --image kindest/node:v1.18.2 --config=/configs/config_cluster2.yaml --name kind-2
- Дождитесь окончания сборки кластеров. После успешного окнчания, скопируйте конфиг файл кластера из каждого контейнера используя следующий скрипт:
bash copy_config
- Перейдите в директорию
./scripts
и установите в каждый из кластеров свои сервисы используя следующие скрипты:
cd scripts
bash cluster1.sh
bash cluster2.sh
- Настройте ingress gateway для приложения и проверьте работоспособность с помощью следующего скрипта:
bash finalize.sh