DevOps на Openshift: Проверка автоскалирования pod из Jenkins pipeline - DevOps на Openshift: Проверка автоскалирования pod из Jenkins pipeline
Блоги
Навигационные полоски
Эта статья является продолжением цикла DevOps на Openshift. В ней будет рассмотрена проверка автоматического горизонтального масштабирования приложений, проводимая прямо внутри Jenkins pipeline.
В этом демонстрационном проекте используется приложение openshift-tasks, в котором есть веб-интерфейс и REST API. Один из методов REST API данного приложения позволяет искусственно, на время, увеличить нагрузку CPU в контейнере с запущенным приложением. Этим мы и воспользуемся. Сперва необходимо создать горизонтальный автоскейлер (HorizontalPodAutoscaler):
sh "oc autoscale dc/tasks --min 1 --max 2 --cpu-percent=30 -n ${env.DEV_PROJECT}"
Далее делаем вызов REST API:
sh "curl -X GET http://${devHost}/ws/demo/load/120"
Следующим шагом проверяем, в ограниченном по-времени цикле, увеличение количества pod:
def dc = openshift.selector("dc", "tasks")
def count = 1
while (count < 40) {
if (count > 30) {
error "Pipeline aborted due to Integration tests fail"
}
if (dc.object().spec.replicas < 2) {
echo "Sleep....."
sleep 10
count++;
} else {
break;
}
}
и ещё одним циклом делаем проверку запуска приложения:
count = 1
while (count < 40) {
if (count > 30) {
error "Pipeline aborted due to Integration tests fail"
}
sh "oc get dc tasks '-o=go-template={{ .status.readyReplicas }}' -n ${env.DEV_PROJECT} > devReplicas"
def devReplicas = readFile('devReplicas').trim()
println("devReplicas = ${devReplicas}")
if (devReplicas != "2") {
echo "Sleep....."
sleep 10
count++;
} else {
break;
}
}
Итогом работы этого функционала является автоматизированная проверка работы запуска второго контейнера при увеличении утилизации CPU.
Полное описание примера и код можно подсмотреть вот тут.
Дальше - больше...
- 6.2 (12)
- 7.0 (12)
- activiti (14)
- apache camel (6)
- camel (11)
- devcon (6)
- devops (5)
- emdev (9)
- emdev limited (9)
- entaxy (13)
- esb (10)
- fuse (5)
- gartner (7)
- google apps (6)
- jboss (5)
- liferay (143)
- liferay 7.1 (11)
- liferay dxp (11)
- liferay7 (12)
- openshift (8)
- osgi (5)
- redhat (15)
- rest (6)
- wso2 (70)
- wso2 api-m (10)
- wso2 ei (8)
- wso2ei (5)
- wso2esb (7)
- wso2is (8)
- емдев (11)
Сайт использует файлы cookie. Они позволяют узнавать вас и получать информацию о вашем пользовательском опыте. Это нужно, чтобы улучшать сайт. Посещая страницы сайта и предоставляя свои данные, вы позволяете нам предоставлять их сторонним партнерам. Если вы согласны, продолжайте пользоваться сайтом. Если нет – установите специальные настройки в браузере или обратитесь в техподдержку.