Самый простой способ - свернуть конечную точку REST /load
. Вот способ сделать это:
Определение Pod, которое я использовал в качестве замены для вашего приложения (в целях тестирования):
apiVersion: v1
kind: Pod
metadata:
name: myapp-pod
labels:
app: myapp
spec:
containers:
- name: myapp-container
image: mendhak/http-https-echo
Я использовал это изображение, потому что он отправляет различные свойства HTTP-запроса обратно клиенту.
Создание службы для pod :
apiVersion: v1
kind: Service
metadata:
name: myapp-service
spec:
selector:
app: myapp the selector
ports:
- protocol: TCP
port: 80 #Port that service is available on
targetPort: 80 #Port that app listens on
Создание CronJob:
apiVersion: batch/v1beta1
kind: CronJob
metadata:
name: curljob
spec:
jobTemplate:
metadata:
name: curljob
spec:
template:
metadata:
spec:
containers:
- command:
- curl
- http://myapp-service:80/load
image: curlimages/curl
imagePullPolicy: Always
name: curljobt
restartPolicy: OnFailure
schedule: '*/1 * * * *'
В качестве альтернативы вы можете использовать команду для его запуска:
kubectl create cronjob --image curlimages/curl curljob -oyaml --schedule "*/1 * * * *" -- curl http://myapp-service:80/load
Когда "*/1 * * * *"
будет указывать, как часто будет запускаться CronJob
. Я настроил его запускать каждую минуту. Подробнее о настройке задания cron здесь и здесь
Здесь приведены результаты журналов kubectl из одного модуля работы :
{
"path": "/load",
"headers": {
"host": "myapp-service",
"user-agent": "curl/7.68.0-DEV",
"accept": "*/*"
},
"method": "GET",
"body": "",
"fresh": false,
"hostname": "myapp-service",
"ip": "::ffff:192.168.197.19",
"ips": [],
"protocol": "http",
"query": {},
"subdomains": [],
"xhr": false,
"os": {
"hostname": "myapp-pod"
Как видите, приложение получает GET
запрос с путем: /load
.
Дайте мне знать, если это поможет.