En kubernetes, si deseo tener pods para una tarea específica que no siempre se requiere, ¿es posible hacer que el sistema active los pods para una tarea determinada cuando sea necesario? ¿Se puede administrar esto a través del código de back-end (en mi instancia de python)? ¿Es necesario definir los servicios de cierta manera por adelantado?
Encontré una API para la administración de Docker en Python , ¿funcionaría esto para Kubernetes?
Si he entendido correctamente, desea ejecutar los POD cuando sea necesario, no todo el tiempo.
en ese caso, puede usar la biblioteca de cliente python de Kubernetes y administrar los POD o las réplicas de implementación.
puede implementar su servicio con el recuento de réplicas cero y, una vez que sea necesario, puede escalar los pods utilizando el cliente tanto como sea necesario.
Cliente Python de Kubernetes: https://github.com/kubernetes-client/python
si su servicio ya se está ejecutando, puede usar esta API:
GET /apis/extensions/v1beta1/namespaces/{namespace}/deployments/{name}/scaleaquí usando solo curl también puedes girar las réplicas
API_URL="http://kubernetes:8080/apis/extensions/v1beta1/namespaces/{namespace}/deployments/{name}/scale" curl -H 'Accept: application/json' $API_URL > scale.json # edit scale.json curl -X PUT -d@scale.json -H 'Content-Type: application/json' $API_URLNo sé exactamente lo que quieres lograr porque no estás dando suficiente información. Aquí hay algunas herramientas que quizás desee verificar:
keda : escalador automático basado en eventos, puede reducirse a cero
trabajos k8s : ejecuta trabajos únicos
knative - puede reducirse a cero
También puede usar la biblioteca de cliente de python k8s para ejecutar un pod, hacer que haga lo que quiera y luego eliminarlo.