In this live optimization, the goal is to minimize the cost of a Kubernetes deployment with a single replica while matching, some performance-related constraints (e.g. the response time).
Notice that the workload selection refers to the service throughput metric provided by Istio.
Copy name: Optimize a Kubernetes Container
system: My Deployment
workflow: workflow
goal:
objective: minimize
function:
formula: container.cost
constraints:
absolute:
- name: response-time-slo
formula: shippingservice_istio.istio_incoming_response_time_90_ms:max <= 10
- name: shippingservice-restart-slo
formula: shippingservice_pod.k8s_pod_container_restarts:max == 0
- name: shippingservice-failures-slo
formula: shippingservice_istio.istio_incoming_failed_transactions / shippingservice_istio.istio_incoming_success_transactions <= 0.1
workloadsSelection:
- name: shippingservice_istio.istio_incoming_service_throughput
optimizerOptions:
onlineMode: RECOMMEND
experimentsWithBeta: 0
windowing:
type: trim
trim: [1m, 0s]
task: Test
parametersSelection:
- name: shippingservice.cpu_request
domain: [10, 600]
- name: shippingservice.memory_request
domain: [64, 512]
parameterConstraints:
- name: limits_over_cpu_usage_bsl
formula: shippingservice.cpu_request >= 11
steps:
- name: baseline
type: baseline
numberOfTrials: 14
values:
shippingservice.cpu_request: 200
shippingservice.memory_request: 128
- name: optimize
type: optimize
numberOfTrials: 14
numberOfExperiments: 1000
numberOfInitExperiments: 0
maxFailedExperiments: 1000