Установка ClearML Agent
Использование аутентификационного токена для установки ClearML Agent
Заголовок раздела «Использование аутентификационного токена для установки ClearML Agent»Для генерации пользовательского токена выполните следующие действия:
Аутентифицируйтесь на ClearML Server по адресу:
https://clearml-app.<userdomain>.ruили соответствующему адресу предоставленному клиентом.Войдите в меню Settings профиля пользователя и во вкладке Workspace нажмите на Create new credentials.
Получите и сохраните сгенерированные
Access keyиSecret key.В web-интерфейсе ClearML в разеделе Workers and Queues перейдите на вкладку Queues, выберите New Queue и создайте очередь с именем “k8s_scheduler”. В качестве шаблона используйте прилагаемый файл: clearml.conf.
Измените параметры для доступа к ClearML Server используя соответствующие токены
Access keyиSecret key.
Установка ClearML Agent на k8s worker nodes
Заголовок раздела «Установка ClearML Agent на k8s worker nodes»Для установки ClearML Agent на нодах Kubernetes измените настройки переменных для Helm chart и внесите соответствующие изменения в файл clearml-agent-myvalues.yaml для дальнейшего его использования при развертывании Helm chart. В качестве шаблона используйте прилагаемый файл: clearml.zip, clearml.tar.
Измените значения одним из способов: с помощью шаблона скрипта или выполните пошагово действия настройки.
Изменение значений с помощью шаблона скрипта
DOMAIN=new.<userdomain>.ruKEY=<key>SCRT=<secret>sed -i "s/<userdomain>.ru/$DOMAIN/g" clearml-agent-myvalues.yamlsed -i -E "s/agentk8sglueKey\s*:\s*\"[^\"]+\"/agentk8sglueKey: \"$KEY\"/g" clearml-agent-myvalues.yamlsed -i -E "s/agentk8sglueSecret\s*:\s*\"[^\"]+\"/agentk8sglueSecret: \"$SCRT\"/g" clearml-agent-myvalues.yamlsed -i -E "s/access_key\":\s*\"[^\"]+\"/access_key\": \"$KEY\"/g" clearml-agent-myvalues.yamlsed -i -E "s/secret_key\":\s*\"[^\"]+\"/secret_key\": \"$SCRT\"/g" clearml-agent-myvalues.yamlS3_HOST=0123456789.s3mts.ruS3_KEY=admin-0123456789S3_SCRT=s3_secretsed -i -E "s/[0-9]+\.s3mts.ru/$S3_HOST/g" clearml-agent-myvalues.yamlsed -i -E "s/admin-[0-9]+/$S3_KEY/g" clearml-agent-myvalues.yamlsed -i -E "s/secret:\s*\"[^\"]+\"/secret: \"$S3_SCRT\"/g" clearml-agent-myvalues.yamlИзменение значений пошагово
Измените значения
clearml.agentk8sglueKeyиclearml.agentk8sglueSecretна значенияAccess KeyиSecret Key, полученные на шаге Использование аутентификационного токена для установки ClearML Agent.bash # -- ClearMl generic configurationsclearml:# -- If this is set, chart will not generate a secret but will use what is defined hereexistingAgentk8sglueSecret: ""# -- Agent k8s Glue basic auth keyagentk8sglueKey: "<key>"# -- Agent k8s Glue basic auth secretagentk8sglueSecret: "<secret>"Измените в шаблоне значения всех переменных, указывающих на URL ClearML:
api.api_serverapi.web_serverapi.files_server
Измените значения
aws.s3.credentials:aws.s3.credentials.hostaws.s3.credentials.keyaws.s3.credentials.secret
Установите ClearML Agent в k8s кластер с помощью Helm:
bash helm install --generate-name allegroai/clearml-agent -f clearml-agent-myvalues.yaml --version 2.0.2NAME: clearml-agent-1674060515LAST DEPLOYED: Wed Jan 18 19:48:36 2023NAMESPACE: defaultSTATUS: deployedREVISION: 1TEST SUITE: NoneNOTES:Glue Agent deployed.
Установка ClearML Agent на виртуальные машины
Заголовок раздела «Установка ClearML Agent на виртуальные машины»Для установки ClearML Agent на виртуальные машины выполните следующие действия:
Войдите на виртуальную машину:
bash ssh -l user <vm_ip>Поднимите привилегии до
root:bash sudo -iУстановите python:
bash root@clearml-vm-node1:~# apt install python3Reading package lists... DoneBuilding dependency tree... DoneReading state information... Donepython3 is already the newest version (3.9.2-3).python3 set to manually installed.0 upgraded, 0 newly installed, 0 to remove and 0 not upgraded.root@clearml-vm-node1:~# python3 --versionPython 3.9.2Установите pip:
bash user@clearml-vm-node1:~$ sudo apt-get install python3-pipReading package lists... DoneBuilding dependency tree... DoneReading state information... Donepython3-pip is already the newest version (20.3.4-4+deb11u1).0 upgraded, 0 newly installed, 0 to remove and 0 not upgraded.dgxuser@clearml-vm-node1:~$ pip --versionpip 20.3.4 from /usr/lib/python3/dist-packages/pip (python 3.9)dgxuser@clearml-vm-node1:~$ pip3 --versionpip 20.3.4 from /usr/lib/python3/dist-packages/pip (python 3.9)Установите ClearML Agent:
bash user@clearml-vm-node1:~$ python3 -m pip install clearml-agentCollecting clearml-agentDownloading clearml_agent-1.5.1-py3-none-any.whl (397 kB)|████████████████████████████████| 397 kB 1.4 MB/sCollecting python-dateutil<2.9.0,>=2.4.2Downloading python_dateutil-2.8.2-py2.py3-none-any.whl (247 kB)|████████████████████████████████| 247 kB 25.3 MB/sCollecting pathlib2<2.4.0,>=2.3.0Downloading pathlib2-2.3.7.post1-py2.py3-none-any.whl (18 kB)Collecting virtualenv<21,>=16Downloading virtualenv-20.17.1-py3-none-any.whl (8.8 MB)|████████████████████████████████| 8.8 MB 38.3 MB/sRequirement already satisfied: six<1.17.0,>=1.13.0 in /usr/lib/python3/dist-packages (from clearml-agent) (1.16.0)Requirement already satisfied: urllib3<1.27.0,>=1.21.1 in /usr/lib/python3/dist-packages (from clearml-agent) (1.26.5)Collecting furl<2.2.0,>=2.0.0Downloading furl-2.1.3-py2.py3-none-any.whl (20 kB)Collecting pyparsing<3.1.0,>=2.0.3Downloading pyparsing-3.0.9-py3-none-any.whl (98 kB)|████████████████████████████████| 98 kB 11.1 MB/sRequirement already satisfied: attrs<23.0.0,>=18.0 in /usr/local/lib/python3.9/dist-packages (from clearml-agent) (22.1.0)Requirement already satisfied: PyYAML<6.1,>=3.12 in /usr/local/lib/python3.9/dist-packages (from clearml-agent) (6.0)Requirement already satisfied: jsonschema<5.0.0,>=2.6.0 in /usr/local/lib/python3.9/dist-packages (from clearml-agent) (4.17.0)Requirement already satisfied: requests<2.29.0,>=2.20.0 in /usr/lib/python3/dist-packages (from clearml-agent) (2.25.1)Collecting psutil<5.10.0,>=3.4.2Downloading psutil-5.9.4-cp36-abi3-manylinux_2_12_x86_64.manylinux2010_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl (280 kB)|████████████████████████████████| 280 kB 90.5 MB/sCollecting pyjwt<2.7.0,>=2.4.0Downloading PyJWT-2.6.0-py3-none-any.whl (20 kB)Collecting orderedmultidict>=1.0.1Downloading orderedmultidict-1.0.1-py2.py3-none-any.whl (11 kB)Requirement already satisfied: pyrsistent!=0.17.0,!=0.17.1,!=0.17.2,>=0.14.0 in /usr/local/lib/python3.9/dist-packages (from jsonschema<5.0.0,>=2.6.0->clearml-agent) (0.19.2)Collecting distlib<1,>=0.3.6Downloading distlib-0.3.6-py2.py3-none-any.whl (468 kB)|████████████████████████████████| 468 kB 79.7 MB/sCollecting filelock<4,>=3.4.1Downloading filelock-3.9.0-py3-none-any.whl (9.7 kB)Collecting platformdirs<3,>=2.4Downloading platformdirs-2.6.2-py3-none-any.whl (14 kB)Installing collected packages: platformdirs, orderedmultidict, filelock, distlib, virtualenv, python-dateutil, pyparsing, pyjwt, psutil, pathlib2, furl, clearml-agentWARNING: The script virtualenv is installed in '/home/dgxuser/.local/bin' which is not on PATH.Consider adding this directory to PATH or, if you prefer to suppress this warning, use --no-warn-script-location.WARNING: The script clearml-agent is installed in '/home/dgxuser/.local/bin' which is not on PATH.Consider adding this directory to PATH or, if you prefer to suppress this warning, use --no-warn-script-location.Successfully installed clearml-agent-1.5.1 distlib-0.3.6 filelock-3.9.0 furl-2.1.3 orderedmultidict-1.0.1 pathlib2-2.3.7.post1 platformdirs-2.6.2 psutil-5.9.4 pyjwt-2.6.0 pyparsing-3.0.9 python-dateutil-2.8.2 virtualenv-20.17.1Измените настройки PATH:
bash user@clearml-vm-node1:~$ grep PATH ~/.bashrcuser@clearml-vm-node1:~$ cp -av ~/.bashrc ~/.bashrc-'/home/user/.bashrc' -> '/home/user/.bashrc-'user@clearml-vm-node1:~$ echo 'export PATH=$PATH:/home/user/.local/bin' >> ~/.bashrcПроверьте версию ClearML Agent:
bash user@clearml-vm-node1:~$ source ~/.bashrcuser@clearml-vm-node1:~$ echo $PATH/usr/local/bin:/usr/bin:/bin:/usr/local/games:/usr/games:/home/user/.local/bin:/home/user/.local/binuser@clearml-vm-node1:~$ clearml-agent --versionCLEARML-AGENT version 1.5.1Для настройки параметров ClearML Agent скопируйте конфигурационный файл агента
clearml.confв домашнюю директорию пользователя.Запустите сессию агента в
shellвиртуальной машины:bash $ screen -d -m "clearml-agent daemon --queue default —foreground"
Установка стека Grafana-Prometheus
Заголовок раздела «Установка стека Grafana-Prometheus»Для развертывания системы мониторинга используется kube-prometheus stack, состоящий из коллекции манифестов Kubernetes, Grafana dashboards и Prometheus rules. Prometheus rules объединены с документацией и скриптами, которые упрощают мониторинг кластера Kubernetes с помощью Prometheus, использующих Prometheus Operator.
Используемая версия Helm chart: 45.2.0 (20 Feb, 2023).
Для установки стека Grafana-Prometheus выполните следующие действия:
Добавьте репозиторий prometheus-community:
bash helm repo add prometheus-community https://prometheus-community.github.io/helm-chartshelm repo updateПроверьте доступность репозитория:
bash helm search repo kube-prometheus-stackNAME CHART VERSION APP VERSION DESCRIPTIONprometheus-community/kube-prometheus-stack 45.2.0 v0.63.0 kube-prometheus-stack collects Kubernetes manif...Для установки стека мониторинга в k8s, в файле значений
grafana-myvalues.yamlдля helm charts в переменнойgrafana.ingress.hostsустановите имя хоста для Grafana server:bash hosts:- "clearml-grafana.cloud.mts.ru"Установите стек c помощью следующей команды:
bash helm install mon-prometheus-stack prometheus-community/kube-prometheus-stack --version 45.2.0 -f grafana-myvalues.yamlNAME: mon-prometheus-stackLAST DEPLOYED: Mon Feb 20 15:37:53 2023NAMESPACE: defaultSTATUS: deployedREVISION: 1NOTES:kube-prometheus-stack has been installed. Check its status by running:kubectl --namespace default get pods -l "release=mon-prometheus-stack"Visit https://github.com/prometheus-operator/kube-prometheus for instructions on how to create & configure Alertmanager and Prometheus instances using the Operator.Проверьте статус разворачиваемых
pods:bash helm-charts git:(main) kubectl --namespace default get pods -l "release=mon-prometheus-stack"NAME READY STATUS RESTARTS AGEmon-prometheus-stack-kube-operator-54659db86b-zfmgt 1/1 Running 0 75smon-prometheus-stack-kube-state-metrics-6cc6b8d6d8-zfkk2 1/1 Running 0 75smon-prometheus-stack-prometheus-node-exporter-z9dx8 1/1 Running 0 75sПроведите апгрейд настроек развернутой инсталляции ClearML Server в k8s:
bash helm upgrade clearml allegroai/clearml -f myvals.yaml --version 4.4.0
Установка сертификата TLS/SSL для Grafana
Заголовок раздела «Установка сертификата TLS/SSL для Grafana»Для установки сертификата TLS/SSL для Grafana выполните следующие действия:
В секции
tlsфайлаgrafana-myvalues.yamlв значениеsecretNameукажите имя созданного хранилища секретов, а в значенииhostsукажите имя хоста для которого будут применены настройки сертификата:bash tls:- secretName: "tls-secret-clearml-app"hosts:- "clearml-grafana.cloud.mts.ru"Произведите апгрейд настроек развернутой инсталляции Grafana в k8s помощью следующей команды:
bash helm upgrade mon-prometheus-stack prometheus-community/kube-prometheus-stack --version 45.2.0 -f grafana-myvalues.yamlRelease "mon-prometheus-stack" has been upgraded. Happy Helming!NAME: mon-prometheus-stackLAST DEPLOYED: Wed Feb 22 16:59:01 2023NAMESPACE: defaultSTATUS: deployedREVISION: 5NOTES:kube-prometheus-stack has been installed. Check its status by running:kubectl --namespace default get pods -l "release=mon-prometheus-stack"Visit https://github.com/prometheus-operator/kube-prometheus for instructions on how to create & configure Alertmanager and Prometheus instances using the Operator.
Проверка функционирования инсталляции
Заголовок раздела «Проверка функционирования инсталляции»Для проверки доступности приложения в web-интерфейсе ClearML в меню Workers and Queues проверьте наличие зарегистрированных workers.

