เจฒเฉเจ เจฆเจพ เจ
เจจเฉเจตเจพเจฆ เจเฉเจฐเจธ เจฆเฉ เจธเจผเฉเจฐเฉเจเจค เจฆเฉ เจชเฉเจฐเจต เจธเฉฐเจงเจฟเจ 'เจคเฉ เจคเจฟเจเจฐ เจเฉเจคเจพ เจเจฟเจ เจธเฉ
เจเฉเจฌเจฐเจจเฉเจเจธ เจจเจพเจฒ เจเฉฐเจฎ เจเจฐเจฆเฉ เจธเจฎเฉเจ เจเจฒเจพเจเจก เจเจฐเจเจฟเจเจ เจจเฉเฉฐ เจเจฟเจตเฉเจ เจฌเจเจพเจเจ เจเจพเจตเฉ? เจเฉฑเจฅเฉ เจเฉเจ เจตเฉ เจธเจนเฉ เจนเฉฑเจฒ เจจเจนเฉเจ เจนเฉ, เจชเจฐ เจเจน เจฒเฉเจ เจเจ เจธเจพเจงเจจเจพเจ เจฆเจพ เจตเจฐเจฃเจจ เจเจฐเจฆเจพ เจนเฉ เจเฉ เจคเฉเจนเจพเจกเฉ เจธเจฐเฉเจคเจพเจ เจจเฉเฉฐ เจตเจงเฉเจฐเฉ เจชเฉเจฐเจญเจพเจตเจธเจผเจพเจฒเฉ เจขเฉฐเจ เจจเจพเจฒ เจชเฉเจฐเจฌเฉฐเจงเจจ เจเจฐเจจ เจ
เจคเฉ เจคเฉเจนเจพเจกเฉ เจเจฒเจพเจเจก เจเฉฐเจชเจฟเจเจเจฟเฉฐเจ เจเจฐเจเจฟเจเจ เจจเฉเฉฐ เจเจเจพเจเจฃ เจตเจฟเฉฑเจ เจคเฉเจนเจพเจกเฉ เจฎเจฆเจฆ เจเจฐ เจธเจเจฆเฉ เจนเจจเฅค
เจฎเฉเจ เจเจน เจฒเฉเจ AWS เจฒเจ Kubernetes เจจเฉเฉฐ เจงเจฟเจเจจ เจตเจฟเฉฑเจ เจฐเฉฑเจเจฆเฉ เจนเฉเจ เจฒเจฟเจเจฟเจ เจธเฉ, เจชเจฐ เจเจน เจฆเฉเจเฉ เจเจฒเจพเจเจก เจชเฉเจฐเจฆเจพเจคเจพเจตเจพเจ 'เจคเฉ (เจฒเจเจญเจ) เจฌเจฟเจฒเจเฉเจฒ เจเจธเฉ เจคเจฐเฉเจนเจพเจ เจฒเจพเจเฉ เจนเฉเจตเฉเจเจพเฅค เจฎเฉเจ เจเจน เจฎเฉฐเจจ เจฐเจฟเจนเจพ/เจฐเจนเฉ เจนเจพเจ เจเจฟ เจคเฉเจนเจพเจกเฉ เจเจฒเฉฑเจธเจเจฐ เจชเจนเจฟเจฒเจพเจ เจนเฉ เจเจเฉเจธเจเฉเจฒเจฟเฉฐเจ เจเฉเจเจซเจฟเจเจฐ เจเฉเจคเฉ เจนเฉเจ เจนเจจ (
เจเจน เจฒเฉเจ เจเจตเจฐ เจเจฐเฉเจเจพ:
- เจจเจพ เจตเจฐเจคเฉ เจธเจฐเฉเจคเจพเจ เจจเฉเฉฐ เจธเจพเจซเจผ เจเจฐเจจเจพ (
เจเฉเจฌเฉ-เจฆเจฐเจฌเจพเจฐ ) - เจเฉเจฐ-เจเฉฐเจฎ เจฆเฉ เจเฉฐเจเจฟเจเจ เจฆเฉเจฐเจพเจจ เจธเจเฉเจฒเจฟเฉฐเจ เจเจเจพเจ (
kube-downscaler ) - เจนเจฐเฉเจเฉเจเจเจฒ เจเจเฉเจธเจเฉเจฒเจฟเฉฐเจ (HPA) เจฆเฉ เจตเจฐเจคเฉเจ เจเจฐเจฆเฉ เจนเฉเจ,
- เจฌเจนเฉเจค เจเจผเจฟเจเจฆเจพ เจธเจฐเฉเจค เจฐเจฟเจเจผเจฐเจตเฉเจธเจผเจจ เจฆเฉ เจเจฎเฉ (
kube-resource-report , VPA) - เจธเจชเฉเจ เจเจฆเจพเจนเจฐเจจเจพเจ เจฆเฉ เจตเจฐเจคเฉเจ เจเจฐเจฆเฉ เจนเฉเจ
เจจเจพ เจตเจฐเจคเฉ เจธเจฐเฉเจคเจพเจ เจจเฉเฉฐ เจธเจพเจซเจผ เจเจฐเจจเจพ
เจเฉฑเจ เจคเฉเจเจผ เจฐเจซเจผเจคเจพเจฐ เจตเจพเจฒเฉ เจฎเจพเจนเฉเจฒ เจตเจฟเฉฑเจ เจเฉฐเจฎ เจเจฐเจจเจพ เจฌเจนเฉเจค เจตเจงเฉเจ เจนเฉ. เจ
เจธเฉเจ เจคเจเจจเฉเจเฉ เจธเฉฐเจธเจฅเจพเจตเจพเจ เจเจพเจนเฉเฉฐเจฆเฉ เจนเจพเจ
(เจนเฉเจจเจฟเฉฐเจ เจเฉเจเจฌเจธ:
Zhiza:
(เจนเจตเจพเจฒเฉ) เจเฉเจฐเฉ เจเฉเจเจจ:
เจฎเจฟเฉฑเจฅ: เจคเฉเจนเจพเจกเจพ AWS เจเจพเจคเจพ เจคเฉเจนเจพเจกเฉ เจเฉเจฒ เจเจชเจญเฉเจเจคเจพเจตเจพเจ เจฆเฉ เจธเฉฐเจเจฟเจ เจฆเจพ เจเฉฑเจ เจซเฉฐเจเจธเจผเจจ เจนเฉเฅค
เจคเฉฑเจฅ: เจคเฉเจนเจพเจกเจพ AWS เจธเจเฉเจฐ เจคเฉเจนเจพเจกเฉ เจเฉเจฒ เจเฉฐเจเฉเจจเฉเจ
เจฐเจพเจ เจฆเฉ เจธเฉฐเจเจฟเจ เจฆเจพ เจเฉฑเจ เจเจพเจฐเจ เจนเฉเฅค
เจเจตเจพเจจ เจเฉเจฐเจจเฉเจธเฉเจต (เจเจตเจพเจฌ เจตเจฟเฉฑเจ):
เจ
เจธเจฒ เจคเฉฑเจฅ: เจคเฉเจนเจพเจกเจพ AWS เจธเจเฉเจฐ เจเจนเจจเจพเจ เจเฉเจเจผเจพเจ เจฆเฉ เจธเฉฐเจเจฟเจ เจฆเจพ เจเฉฑเจ เจซเฉฐเจเจธเจผเจจ เจนเฉ เจเฉ เจคเฉเจธเฉเจ เจ
เจฏเฉเจ/เจฎเจฟเจเจพเจเจฃเจพ เจญเฉเฉฑเจฒ เจเจ เจนเฉเฅค)
- เจเจฒเฉฑเจธเจเจฐ-เจตเจฟเจเจชเจ เจจเจฟเจฏเจฎ PR/เจเฉเจธเจ เจคเฉเจจเจพเจคเฉเจเจ เจฒเจ เจตเฉฑเจง เจคเฉเจ เจตเฉฑเจง เจเจพเจเจฎ-เจเฉ-เจฒเจพเจเจต (TTL) เจจเฉเฉฐ เจชเจฐเจฟเจญเจพเจธเจผเจฟเจค เจเจฐ เจธเจเจฆเฉ เจนเจจเฅค
- เจตเจฟเจ เจเจคเฉเจเจค เจธเจฐเฉเจคเจพเจ เจจเฉเฉฐ janitor/ttl เจจเจพเจฒ เจเจจเฉเจเฉเจ เจเฉเจคเจพ เจเจพ เจธเจเจฆเจพ เจนเฉ, เจเจฆเจพเจนเจฐเจจ เจฒเจ 7 เจฆเจฟเจจเจพเจ เจฌเจพเจ เจฆ เจธเจชเจพเจเจ/เจชเฉเจฐเฉเจเฉเจเจพเจเจช เจจเฉเฉฐ เจเจชเจฃเฉ เจเจช เจนเจเจพเจเจฃ เจฒเจเฅค
เจเจฎ เจจเจฟเจฏเจฎ YAML เจซเจพเจเจฒ เจตเจฟเฉฑเจ เจชเจฐเจฟเจญเจพเจธเจผเจฟเจค เจเฉเจคเฉ เจเจ เจนเจจเฅค เจเจธ เจฆเจพ เจฎเจพเจฐเจ เจชเฉเจฐเจพเจฎเฉเจเจฐ เจตเจฟเฉฑเจเฉเจ เจฒเฉฐเจเจฆเจพ เจนเฉ --rules-file
เจเฉเจฌเฉ-เจฆเจฐเจฌเจพเจฐ เจตเจฟเจเฅค เจเฉฑเจฅเฉ เจธเจพเจฐเฉ เจจเฉเจฎเจธเจชเฉเจธ เจจเฉเฉฐ เจนเจเจพเจเจฃ เจฒเจ เจเฉฑเจ เจเจฆเจพเจนเจฐเจจ เจจเจฟเจฏเจฎ เจนเฉ -pr-
เจฆเฉ เจฆเจฟเจจเจพเจ เจฌเจพเจ
เจฆ เจจเจพเจฎ เจตเจฟเฉฑเจ:
- id: cleanup-resources-from-pull-requests
resources:
- namespaces
jmespath: "contains(metadata.name, '-pr-')"
ttl: 2d
เจจเจฟเจฎเจจเจฒเจฟเจเจค เจเจฆเจพเจนเจฐเจจ 2020 เจตเจฟเฉฑเจ เจธเจพเจฐเฉเจเจ เจจเจตเฉเจเจ เจคเฉเจจเจพเจคเฉเจเจ/เจธเจเฉเจเจซเฉเจฒเจธเฉเฉฑเจเจพเจ เจฒเจ เจกเจฟเจชเจฒเจพเจเจฎเฉเจเจ เจ เจคเฉ เจธเจเฉเจเจซเฉเจฒเจธเฉเฉฑเจ เจชเฉเจกเจพเจ 'เจคเฉ เจเจชเจฒเฉเจเฉเจธเจผเจจ เจฒเฉเจฌเจฒ เจฆเฉ เจตเจฐเจคเฉเจ เจจเฉเฉฐ เจจเจฟเจฏเฉฐเจคเฉเจฐเจฟเจค เจเจฐเจฆเฉ เจนเฉ, เจชเจฐ เจเจธเฉ เจธเจฎเฉเจ เจเฉฑเจ เจนเจซเจผเจคเฉ เจฒเจ เจเจธ เจฒเฉเจฌเจฒ เจคเฉเจ เจฌเจฟเจจเจพเจ เจเฉเจธเจเจพเจ เจจเฉเฉฐ เจฒเจพเจเฉ เจเจฐเจจ เจฆเฉ เจเจเจฟเจ เจฆเจฟเฉฐเจฆเฉ เจนเฉ:
- id: require-application-label
# ัะดะฐะปะธัั deployments ะธ statefulsets ะฑะตะท ะผะตัะบะธ "application"
resources:
- deployments
- statefulsets
# ัะผ. http://jmespath.org/specification.html
jmespath: "!(spec.template.metadata.labels.application) && metadata.creationTimestamp > '2020-01-01'"
ttl: 7d
30 เจฎเจฟเฉฐเจเจพเจ เจฒเจ เจเฉฑเจ เจธเจฎเจพเจ-เจธเฉเจฎเจค เจกเฉเจฎเฉ เจเจฒเจพเจ เจเฉฑเจ เจเจฒเฉฑเจธเจเจฐ เจเฉฑเจฒ เจฐเจนเฉ เจเฉเจฌเฉ-เจเฉเจจเฉเจเจฐ เจเฉฑเจคเฉ:
kubectl run nginx-demo --image=nginx
kubectl annotate deploy nginx-demo janitor/ttl=30m
เจตเจงเจฆเฉ เจฒเจพเจเจค เจฆเจพ เจเฉฑเจ เจนเฉเจฐ เจธเจฐเฉเจค เจธเจฅเจพเจ เจตเจพเจฒเฉเจ เจฎ (AWS EBS) เจนเฉเฅค เจเฉเจฌเจฐเจจเฉเจเจธ เจธเจเฉเจเจซเฉเจฒเจธเฉเจ เจจเฉเฉฐ เจฎเจฟเจเจพเจเจฃ เจจเจพเจฒ เจเจธ เจฆเฉ เจจเจฟเจฐเฉฐเจคเจฐ เจตเฉเจฒเจฏเฉเจฎ (เจชเฉเจตเฉเจธเฉ - เจชเจฐเจธเจฟเจธเจเฉเจเจเจตเฉเจฒเจฏเฉเจฎ เจเจฒเฉเจฎ) เจจเจนเฉเจ เจฎเจฟเจเจฆเฉ เจนเจจเฅค เจ เจฃเจตเจฐเจคเฉ EBS เจตเจพเจฒเฉเจ เจฎ เจเจธเจพเจจเฉ เจจเจพเจฒ เจชเฉเจฐเจคเฉ เจฎเจนเฉเจจเจพ เจธเฉเจเจเฉเฉ เจกเจพเจฒเจฐ เจฆเฉ เจฒเจพเจเจค เจฆเฉ เจจเจคเฉเจเฉ เจตเจเฉเจ เจนเฉ เจธเจเจฆเฉ เจนเจจเฅค เจเฉเจฌเจฐเจจเฉเจเจธ เจเฉเจจเฉเจเจฐ เจเฉเจฒ เจจเจพ เจตเจฐเจคเฉ เจเจ เจชเฉเจตเฉเจธเฉ เจจเฉเฉฐ เจธเจพเจซเจผ เจเจฐเจจ เจฆเฉ เจตเจฟเจธเจผเฉเจธเจผเจคเจพ เจนเฉเฅค เจเจฆเจพเจนเจฐเจจ เจฒเจ, เจเจน เจจเจฟเจฏเจฎ เจเจนเจจเจพเจ เจธเจพเจฐเฉ PVCs เจจเฉเฉฐ เจนเจเจพ เจฆเฉเจตเฉเจเจพ เจเฉ เจเฉฑเจ เจฎเฉเจกเฉเจเจฒ เจฆเฉเจเจฐเจพ เจฎเจพเจเจเจ เจจเจนเฉเจ เจเฉเจคเฉ เจเจ เจนเจจ เจ เจคเฉ เจเจฟเจนเจจเจพเจ เจฆเจพ เจเฉฑเจ เจธเจเฉเจเจซเฉเจฒเจธเฉเฉฑเจ เจเจพเจ เจเฉเจฐเฉเจจเจเฉเจฌ เจฆเฉเจเจฐเจพ เจนเจตเจพเจฒเจพ เจจเจนเฉเจ เจฆเจฟเฉฑเจคเจพ เจเจฟเจ เจนเฉ:
# ัะดะฐะปะธัั ะฒัะต PVC, ะบะพัะพััะต ะฝะต ัะผะพะฝัะธัะพะฒะฐะฝั ะธ ะฝะฐ ะบะพัะพััะต ะฝะต ัััะปะฐัััั StatefulSets
- id: remove-unused-pvcs
resources:
- persistentvolumeclaims
jmespath: "_context.pvc_is_not_mounted && _context.pvc_is_not_referenced"
ttl: 24h
Kubernetes Janitor เจคเฉเจนเจพเจกเฉ เจเจฒเฉฑเจธเจเจฐ เจจเฉเฉฐ เจธเจพเจซเจผ เจฐเฉฑเจเจฃ เจ
เจคเฉ เจเจฒเจพเจเจก เจเฉฐเจชเจฟเจเจเจฟเฉฐเจ เจฒเจพเจเจคเจพเจ เจจเฉเฉฐ เจนเฉเจฒเฉ เจนเฉเจฒเฉ เจตเจงเจฃ เจคเฉเจ เจฐเฉเจเจฃ เจตเจฟเฉฑเจ เจคเฉเจนเจพเจกเฉ เจฎเจฆเจฆ เจเจฐ เจธเจเจฆเจพ เจนเฉเฅค เจคเฉเจจเจพเจคเฉ เจ
เจคเฉ เจธเฉฐเจฐเจเจจเจพ เจจเจฟเจฐเจฆเฉเจธเจผเจพเจ เจฒเจ, เจชเจพเจฒเจฃเจพ เจเจฐเฉ
เจเฉเจฐ-เจเฉฐเจฎ เจฆเฉ เจเฉฐเจเจฟเจเจ เจฆเฉเจฐเจพเจจ เจธเจเฉเจฒเจฟเฉฐเจ เจจเฉเฉฐ เจเจเจพเจ
เจเฉเจธเจ เจ เจคเฉ เจธเจเฉเจเจฟเฉฐเจ เจธเจฟเจธเจเจฎ เจเจฎ เจคเฉเจฐ 'เจคเฉ เจเฉฐเจฎเจเจพเจเฉ เจเฉฐเจเจฟเจเจ เจฆเฉเจฐเจพเจจ เจนเฉ เจเฉฐเจฎ เจเจฐเจจ เจฒเจ เจฒเฉเฉเฉเจเจฆเฉ เจนเฉเฉฐเจฆเฉ เจนเจจเฅค เจเฉเจ เจเจคเจชเจพเจฆเจจ เจเจชเจฒเฉเจเฉเจธเจผเจจเจพเจ, เจเจฟเจตเฉเจ เจเจฟ เจฌเฉเจ เจเจซเจฟเจธ/เจเจกเจฎเจฟเจจ เจเฉเจฒเจธ, เจฒเจ เจตเฉ เจธเจฟเจฐเจซ เจธเฉเจฎเจค เจเจชเจฒเจฌเจงเจคเจพ เจฆเฉ เจฒเฉเฉ เจนเฉเฉฐเจฆเฉ เจนเฉ เจ เจคเฉ เจฐเจพเจคเฉ-เจฐเจพเจค เจ เจฏเฉเจ เจนเฉ เจธเจเจฆเฉ เจนเจจเฅค
image: hjacobs/kube-downscaler:20.4.3
args:
- --interval=30
# ะฝะต ะพัะบะปััะฐัั ะบะพะผะฟะพะฝะตะฝัั ะธะฝััะฐััััะบัััั
- --exclude-namespaces=kube-system,infra
# ะฝะต ะพัะบะปััะฐัั kube-downscaler, ะฐ ัะฐะบะถะต ะพััะฐะฒะธัั Postgres Operator, ััะพะฑั ะธัะบะปััะตะฝะฝัะผะธ ะะ ะผะพะถะฝะพ ะฑัะปะพ ัะฟัะฐะฒะปััั
- --exclude-deployments=kube-downscaler,postgres-operator
- --default-uptime=Mon-Fri 08:00-20:00 Europe/Berlin
- --include-resources=deployments,statefulsets,stacks,cronjobs
- --deployment-time-annotation=deployment-time
เจเฉฑเจฅเฉ เจตเฉเจเจเจเจก 'เจคเฉ เจเจฒเฉฑเจธเจเจฐ เจตเจฐเจเจฐ เจจเฉเจกเจธ เจจเฉเฉฐ เจธเจเฉเจฒเจฟเฉฐเจ เจเจฐเจจ เจฒเจ เจเฉฑเจ เจเฉเจฐเจพเจซ เจนเฉ:
~ 13 เจคเฉเจ 4 เจตเจฐเจเจฐ เจจเฉเจกเจธ เจจเฉเฉฐ เจเจเจพเจเจฃ เจจเจพเจฒ เจคเฉเจนเจพเจกเฉ AWS เจฌเจฟเฉฑเจฒ เจตเจฟเฉฑเจ เจจเจฟเจธเจผเจเจค เจคเฉเจฐ 'เจคเฉ เจงเจฟเจเจจ เจฆเฉเจฃ เจฏเฉเจ เจซเจฐเจ เจชเฉเจเจฆเจพ เจนเฉเฅค
เจชเจฐ เจเฉ เจเฉ เจฎเฉเจจเฉเฉฐ เจเจฒเฉฑเจธเจเจฐ "เจกเจพเจเจจเจเจพเจเจฎ" เจฆเฉเจฐเจพเจจ เจเฉฐเจฎ เจเจฐเจจ เจฆเฉ เจฒเฉเฉ เจนเฉ? เจเฉเจ เจคเฉเจจเจพเจคเฉเจเจ เจจเฉเฉฐ เจธเจฅเจพเจ เจคเฉเจฐ 'เจคเฉ เจกเจพเจเจจเจธเจเฉเจฒเจฐ/เจเจเจธเจเจฒเฉเจก: เจธเจนเฉ เจเจจเฉเจเฉเจธเจผเจจ เจเฉเฉ เจเฉ เจธเจเฉเจฒเจฟเฉฐเจ เจคเฉเจ เจฌเจพเจนเจฐ เจฐเฉฑเจเจฟเจ เจเจพ เจธเจเจฆเจพ เจนเฉเฅค เจคเฉเจจเจพเจคเฉเจเจ เจจเฉเฉฐ YYYY-MM-DD HH:MM (UTC) เจซเจพเจฐเจฎเฉเจ เจตเจฟเฉฑเจ เจเฉฑเจ เจชเฉเจฐเจจ เจเจพเจเจฎเจธเจเฉเจเจช เจฆเฉ เจจเจพเจฒ เจกเจพเจเจจเจธเจเฉเจฒเจฐ/เจเจเจธเจเจฒเฉเจก-เจเจฆเฉเจ เจคเฉฑเจ เจเจจเฉเจเฉเจธเจผเจจ เจฆเฉ เจตเจฐเจคเฉเจ เจเจฐเจเฉ เจ
เจธเจฅเจพเจ เจคเฉเจฐ 'เจคเฉ เจฌเจพเจนเจฐ เจฐเฉฑเจเจฟเจ เจเจพ เจธเจเจฆเจพ เจนเฉเฅค เจเฉเจเจฐ เจฒเฉเฉ เจนเฉเจตเฉ, เจคเจพเจ เจชเฉเจฐเฉ เจเจฒเฉฑเจธเจเจฐ เจจเฉเฉฐ เจเจจเฉเจเฉเจธเจผเจจ เจฆเฉ เจจเจพเจฒ เจเฉฑเจ เจชเฉเจก เจฒเจเจพ เจเฉ เจตเจพเจชเจธ เจธเจเฉเจฒ เจเฉเจคเจพ เจเจพ เจธเจเจฆเจพ เจนเฉ downscaler/force-uptime
, เจเจฆเจพเจนเจฐเจจ เจฒเจ, nginx เจเจพเจฒเฉ เจธเจผเฉเจฐเฉ เจเจฐเจเฉ:
kubectl run scale-up --image=nginx
kubectl annotate deploy scale-up janitor/ttl=1h # ัะดะฐะปะธัั ัะฐะทะฒะตัััะฒะฐะฝะธะต ัะตัะตะท ัะฐั
kubectl annotate pod $(kubectl get pod -l run=scale-up -o jsonpath="{.items[0].metadata.name}") downscaler/force-uptime=true
เจตเฉเจเฉ
เจนเจฐเฉเจเฉฑเจเจฒ เจเจเฉเจธเจเฉเจฒเจฟเฉฐเจ เจฆเฉ เจตเจฐเจคเฉเจ เจเจฐเฉ
เจฌเจนเฉเจค เจธเจพเจฐเฉเจเจ เจเจชเจฒเฉเจเฉเจธเจผเจจเจพเจ/เจธเฉเจตเจพเจตเจพเจ เจเฉฑเจ เจเจคเฉเจธเจผเฉเจฒ เจฒเฉเจกเจฟเฉฐเจ เจชเฉเจเจฐเจจ เจจเจพเจฒ เจจเจเจฟเฉฑเจ เจฆเฉเจเจ เจนเจจ: เจเจ เจตเจพเจฐ เจเจนเจจเจพเจ เจฆเฉ เจฎเฉเจกเฉเจเจฒ เจตเจฟเจนเจฒเฉ เจนเฉเฉฐเจฆเฉ เจนเจจ, เจ
เจคเฉ เจเจ เจตเจพเจฐ เจเจน เจชเฉเจฐเฉ เจธเจฎเจฐเฉฑเจฅเจพ เจจเจพเจฒ เจเฉฐเจฎ เจเจฐเจฆเฉ เจนเจจเฅค เจตเฉฑเจง เจคเฉเจ เจตเฉฑเจง เจชเฉเจ เจฒเฉเจก เจจเจพเจฒ เจธเจฟเฉฑเจเจฃ เจฒเจ เจชเฉเจกเจพเจ เจฆเฉ เจธเจฅเจพเจ เจซเจฒเฉเจ เจจเฉเฉฐ เจเจฒเจพเจเจฃเจพ เจเจฟเจซเจผเจพเจเจคเฉ เจจเจนเฉเจ เจนเฉเฅค เจเฉเจฌเจฐเจจเฉเจเจธ เจเฉฑเจ เจธเจฐเฉเจค เจตเจฟเฉฑเจ เจนเจฐเฉเจเฉฑเจเจฒ เจเจเฉ-เจธเจเฉเจฒเจฟเฉฐเจ เจฆเจพ เจธเจฎเจฐเจฅเจจ เจเจฐเจฆเจพ เจนเฉ
apiVersion: autoscaling/v2beta2
kind: HorizontalPodAutoscaler
metadata:
name: my-app
spec:
scaleTargetRef:
apiVersion: apps/v1
kind: Deployment
name: my-app
minReplicas: 3
maxReplicas: 10
metrics:
- type: Resource
resource:
name: cpu
target:
averageUtilization: 100
type: Utilization
เจเจผเจฒเฉเจเจกเฉ เจจเฉ เจธเจเฉเจฒเจฟเฉฐเจ เจฒเจ เจเจธเจเจฎ เจฎเฉเจเฉเจฐเจฟเจเจธ เจจเฉเฉฐ เจเจธเจพเจจเฉ เจจเจพเจฒ เจเฉเฉเจจ เจฒเจ เจเฉฑเจ เจญเจพเจ เจฌเจฃเจพเจเจ เจนเฉ:
apiVersion: autoscaling/v2beta2
kind: HorizontalPodAutoscaler
metadata:
name: myapp-hpa
annotations:
# metric-config.<metricType>.<metricName>.<collectorName>/<configKey>
metric-config.pods.requests-per-second.json-path/json-key: "$.http_server.rps"
metric-config.pods.requests-per-second.json-path/path: /metrics
metric-config.pods.requests-per-second.json-path/port: "9090"
spec:
scaleTargetRef:
apiVersion: apps/v1
kind: Deployment
name: myapp
minReplicas: 1
maxReplicas: 10
metrics:
- type: Pods
pods:
metric:
name: requests-per-second
target:
averageValue: 1k
type: AverageValue
HPA เจจเจพเจฒ เจนเจฐเฉเจเฉฑเจเจฒ เจเจเฉเจธเจเฉเจฒเจฟเฉฐเจ เจจเฉเฉฐ เจธเฉฐเจฐเจเจฟเจค เจเจฐเจจเจพ เจธเจเฉเจเจฒเฉเฉฑเจธ เจธเฉเจตเจพเจตเจพเจ เจฒเจ เจเฉเจธเจผเจฒเจคเจพ เจจเฉเฉฐ เจฌเจฟเจนเจคเจฐ เจฌเจฃเจพเจเจฃ เจฒเจ เจกเจฟเจซเฉเจฒเจ เจเจพเจฐเจตเจพเจเจเจ เจตเจฟเฉฑเจเฉเจ เจเฉฑเจ เจนเฉเจฃเจพ เจเจพเจนเฉเจฆเจพ เจนเฉเฅค Spotify เจเฉเจฒ เจเจนเจจเจพเจ เจฆเฉ เจคเจเจผเจฐเจฌเฉ เจ
เจคเฉ HPA เจฒเจ เจธเจฟเจซเจผเจพเจฐเจธเจผเจพเจ เจฆเฉ เจจเจพเจฒ เจเฉฑเจ เจชเฉเจธเจผเจเจพเจฐเฉ เจนเฉ:
เจธเจฐเฉเจค เจเจตเจฐเจฌเฉเจเจฟเฉฐเจ เจจเฉเฉฐ เจเจเจพเจ
เจเฉเจฌเจฐเจจเฉเจเจธ เจตเจฐเจเจฒเฉเจก "เจธเจฐเฉเจค เจฌเฉเจจเจคเฉเจเจ" เจฆเฉเจเจฐเจพ เจเจนเจจเจพเจ เจฆเฉเจเจ CPU/เจฎเฉเจฎเฉเจฐเฉ เจฒเฉเฉเจพเจ เจจเฉเฉฐ เจจเจฟเจฐเจงเจพเจฐเจค เจเจฐเจฆเฉ เจนเจจเฅค CPU เจธเจฐเฉเจคเจพเจ เจจเฉเฉฐ เจตเจฐเจเฉเจ
เจฒ เจเฉเจฐ เจตเจฟเฉฑเจ เจเจพเจ เจเจฎ เจคเฉเจฐ 'เจคเฉ "เจฎเจฟเจฒเฉเจเฉเจฐเจธ" เจตเจฟเฉฑเจ เจฎเจพเจชเจฟเจ เจเจพเจเจฆเจพ เจนเฉ, เจเจฆเจพเจนเจฐเจจ เจฒเจ 500m เจฆเจพ เจฎเจคเจฒเจฌ 50% vCPU เจนเฉเฅค เจฎเฉเจฎเฉเจฐเฉ เจธเจฐเฉเจคเจพเจ เจจเฉเฉฐ เจฌเจพเจเจเจพเจ เจตเจฟเฉฑเจ เจฎเจพเจชเจฟเจ เจเจพเจเจฆเจพ เจนเฉ, เจ
เจคเฉ เจเจฎ เจชเจฟเจเฉเจคเจฐ เจตเจฐเจคเฉ เจเจพ เจธเจเจฆเฉ เจนเจจ, เจเจฟเจตเฉเจ เจเจฟ 500Mi, เจเจฟเจธเจฆเจพ เจฎเจคเจฒเจฌ เจนเฉ 500 เจฎเฉเจเจพเจฌเจพเจเจเฅค เจธเจฐเฉเจค เจฌเฉเจจเจคเฉเจเจ เจตเจฐเจเจฐ เจจเฉเจกเจพเจ 'เจคเฉ "เจฒเจพเจ" เจธเจฎเจฐเฉฑเจฅเจพ, เจญเจพเจต 1000 vCPUs เจตเจพเจฒเฉ เจจเฉเจก 'เจคเฉ 4m CPU เจฌเฉเจจเจคเฉ เจตเจพเจฒเจพ เจเฉฑเจ เจชเฉเจก เจนเฉเจฐ เจชเฉเจกเจพเจ เจฒเจ เจธเจฟเจฐเจซเจผ 3 vCPUs เจจเฉเฉฐ เจนเฉ เจเฉฑเจก เจฆเฉเจตเฉเจเจพเฅค
เจขเจฟเฉฑเจฒ (เจตเจพเจงเฉ เจฐเจฟเจเจผเจฐเจต) เจฌเฉเจจเจคเฉ เจเฉเจคเฉ เจธเจฐเฉเจคเจพเจ เจ
เจคเฉ เจ
เจธเจฒ เจตเจฐเจคเฉเจ เจตเจฟเฉฑเจ เจ
เฉฐเจคเจฐ เจนเฉเฅค เจเจฆเจพเจนเจฐเจจ เจฒเจ, เจเฉฑเจ เจชเฉเจก เจเฉ 2 GiB เจฎเฉเจฎเฉเจฐเฉ เจฆเฉ เจฌเฉเจจเจคเฉ เจเจฐเจฆเจพ เจนเฉ เจชเจฐ เจธเจฟเจฐเจซเจผ 200 MiB เจฆเฉ เจตเจฐเจคเฉเจ เจเจฐเจฆเจพ เจนเฉ, เจตเจฟเฉฑเจ ~ 1,8 GiB "เจตเฉฑเจง" เจฎเฉเจฎเฉเจฐเฉ เจนเฉเฉฐเจฆเฉ เจนเฉเฅค เจตเจพเจงเฉ เจชเฉเจธเฉ เจเจฐเจเจฆเฉ เจนเจจเฅค เจเฉเจ เจ
เฉฐเจฆเจพเจเจผเจพ เจฒเจเจพ เจธเจเจฆเจพ เจนเฉ เจเจฟ 1 GiB เจฌเฉเจฒเฉเฉเฉ เจฎเฉเจฎเฉเจฐเฉ เจชเฉเจฐเจคเฉ เจฎเจนเฉเจจเจพ ~ $10 เจเจฐเจ เจเจฐเจฆเฉ เจนเฉเฅค
CPU เจฌเฉเจจเจคเฉ เจจเฉเฉฐ 3000m เจคเฉเจ ~400m เจคเฉฑเจ เจเจเจพเจเจฃเจพ เจนเฉเจฐ เจตเจฐเจเจฒเฉเจกเจพเจ เจฒเจ เจธเจฐเฉเจคเจพเจ เจจเฉเฉฐ เจเจพเจฒเฉ เจเจฐเจฆเจพ เจนเฉ เจ
เจคเฉ เจเจฒเฉฑเจธเจเจฐ เจจเฉเฉฐ เจเฉเจเจพ เจนเฉเจฃ เจฆเจฟเฉฐเจฆเจพ เจนเฉเฅค
"EC2 เจฎเฉเจเจฟเจเจ เจฆเฉ เจเจธเจค CPU เจตเจฐเจคเฉเจ เจ
เจเจธเจฐ เจธเจฟเฉฐเจเจฒ-เจ
เฉฐเจ เจชเฉเจฐเจคเฉเจธเจผเจค เจธเฉเจฎเจพ เจตเจฟเฉฑเจ เจเฉเฉฐเจฎเจฆเฉ เจนเฉ,"
เจชเจฐ เจเฉ เจ
เจธเฉเจ เจ
เจธเจฒ เจตเจฟเฉฑเจ เจเจพเจนเฉเฉฐเจฆเฉ เจนเจพเจ เจเจฟ เจฒเฉเจ YAML เจซเจพเจเจฒเจพเจ เจตเจฟเฉฑเจ เจฎเฉเฉฑเจฒ เจฌเจฆเจฒ เจฐเจนเฉ เจนเจจ? เจจเจนเฉเจ, เจฎเจธเจผเฉเจจเจพเจ เจเจน เจฌเจนเฉเจค เจตเจงเฉเจ เจเจฐ เจธเจเจฆเฉเจเจ เจนเจจ! เจเฉเจฌเจฐเจจเฉเจเจธ
เจฎเฉเจ เจเฉฑเจ เจเฉเจเจพ เจเจฟเจนเจพ เจฒเจฟเจเจฟเจ
EC2 เจธเจชเจพเจ เจเจฆเจพเจนเจฐเจจเจพเจ เจฆเฉ เจตเจฐเจคเฉเจ เจเจฐเจจเจพ
เจเจเจฐเฉ เจชเจฐ เจเฉฑเจเฉ-เจเฉฑเจ เจจเจนเฉเจ, เจเฉเจฌเจฐเจจเฉเจเจธ เจตเจฐเจเจฐ เจจเฉเจกเจธ เจฆเฉ เจคเฉเจฐ 'เจคเฉ เจธเจชเฉเจ เจเจฆเจพเจนเจฐเจจเจพเจ เจฆเฉ เจตเจฐเจคเฉเจ เจเจฐเจเฉ AWS EC2 เจฒเจพเจเจคเจพเจ เจจเฉเฉฐ เจเจเจพเจเจ เจเจพ เจธเจเจฆเจพ เจนเฉเฅค
EC2 เจธเจชเจพเจ 'เจคเฉ เจเฉเจฌเจฐเจจเฉเจเจธ เจจเฉเฉฐ เจเจฟเจตเฉเจ เจเจฒเจพเจเจฃเจพ เจนเฉ? เจเฉฑเจฅเฉ เจเจ เจตเจฟเจเจฒเจช เจนเจจ: เจเฉฑเจ เจคเฉเจเฉ เจงเจฟเจฐ เจฆเฉ เจธเฉเจตเจพ เจฆเฉ เจตเจฐเจคเฉเจ เจเจฐเฉ เจเจฟเจตเฉเจ เจเจฟ SpotInst (เจนเฉเจฃ "Spot" เจเจฟเจนเจพ เจเจพเจเจฆเจพ เจนเฉ, เจฎเฉเจจเฉเฉฐ เจเจฟเจเจ เจจเจพ เจชเฉเฉฑเจเฉ), เจเจพเจ เจฌเจธ เจเจชเจฃเฉ เจเจฒเฉฑเจธเจเจฐ เจตเจฟเฉฑเจ เจเฉฑเจ Spot AutoScalingGroup (ASG) เจธเจผเจพเจฎเจฒ เจเจฐเฉเฅค เจเจฆเจพเจนเจฐเจจ เจฒเจ, เจเฉฑเจฅเฉ เจเฉฑเจ "เจธเจฎเจฐเฉฑเจฅเจพ-เจ เจจเฉเจเฉเจฒเจฟเจค" เจธเจชเจพเจ ASG เจฒเจ เจเฉฑเจ CloudFormation เจธเจจเจฟเฉฑเจชเจ เจนเฉ เจเจฟเจธ เจตเจฟเฉฑเจ เจฎเจฒเจเฉเจชเจฒ เจเจฆเจพเจนเจฐเจจ เจเจฟเจธเจฎเจพเจ เจนเจจ:
MySpotAutoScalingGroup:
Properties:
HealthCheckGracePeriod: 300
HealthCheckType: EC2
MixedInstancesPolicy:
InstancesDistribution:
OnDemandPercentageAboveBaseCapacity: 0
SpotAllocationStrategy: capacity-optimized
LaunchTemplate:
LaunchTemplateSpecification:
LaunchTemplateId: !Ref LaunchTemplate
Version: !GetAtt LaunchTemplate.LatestVersionNumber
Overrides:
- InstanceType: "m4.2xlarge"
- InstanceType: "m4.4xlarge"
- InstanceType: "m5.2xlarge"
- InstanceType: "m5.4xlarge"
- InstanceType: "r4.2xlarge"
- InstanceType: "r4.4xlarge"
LaunchTemplate:
LaunchTemplateId: !Ref LaunchTemplate
Version: !GetAtt LaunchTemplate.LatestVersionNumber
MinSize: 0
MaxSize: 100
Tags:
- Key: k8s.io/cluster-autoscaler/node-template/label/aws.amazon.com/spot
PropagateAtLaunch: true
Value: "true"
เจเฉเจฌเจฐเจจเฉเจเจธ เจจเจพเจฒ เจธเจชเจพเจ เจฆเฉ เจตเจฐเจคเฉเจ เจเจฐเจจ เจฌเจพเจฐเฉ เจเฉเจ เจจเฉเจ:
- เจคเฉเจนเจพเจจเฉเฉฐ เจธเจชเจพเจ เจธเจฎเจพเจชเจคเฉ เจจเฉเฉฐ เจธเฉฐเจญเจพเจฒเจฃ เจฆเฉ เจฒเฉเฉ เจนเฉ, เจเจฆเจพเจนเจฐเจจ เจฒเจ เจจเฉเจก เจจเฉเฉฐ เจฎเจฟเจฒเจพ เจเฉ เจเจฆเฉเจ เจเจฆเจพเจนเจฐเจจ เจฌเฉฐเจฆ เจนเฉ เจเจพเจเจฆเฉ เจนเฉ
- เจเจผเจฒเฉเจเจกเฉ เจตเจฐเจคเจฆเจพ เจนเฉ
เจเจพเจเจเจพ เจจเฉเจก เจชเฉเจฒ เจคเจฐเจเฉเจนเจพเจ เจฆเฉ เจจเจพเจฒ เจ เจงเจฟเจเจพเจฐเจค เจเจฒเฉฑเจธเจเจฐ เจเจเฉเจธเจเฉเจฒเจฟเฉฐเจ - เจธเจชเจพเจ เจจเฉเจกเจธ
เจฎเจเจฌเฉเจฐ เจเฉเจคเจพ เจเจพ เจธเจเจฆเจพ เจนเฉ เจธเจชเจพเจ เจตเจฟเฉฑเจ เจเฉฑเจฒเจฃ เจฒเจ เจตเจฐเจเจฒเฉเจก เจฆเฉเจเจ "เจฐเจเจฟเจธเจเฉเจฐเฉเจธเจผเจจเจพเจ" เจจเฉเฉฐ เจธเจตเฉเจเจพเจฐ เจเจฐเฉ
เจธเฉฐเจเฉเจช
เจฎเฉเจ เจเจฎเฉเจฆ เจเจฐเจฆเจพ เจนเจพเจ เจเจฟ เจคเฉเจนเจพเจจเฉเฉฐ เจคเฉเจนเจพเจกเฉ เจเจฒเจพเจเจก เจฌเจฟเฉฑเจฒ เจจเฉเฉฐ เจเจเจพเจเจฃ เจฒเจ เจชเฉเจธเจผ เจเฉเจคเฉ เจเจ เจเฉเจ เจธเจพเจงเจจ เจเจชเจฏเฉเจเฉ เจฒเฉฑเจเฉ เจนเฉเจฃเจเฉเฅค เจคเฉเจธเฉเจ เจฒเฉเจ เจฆเฉเจเจ เจเจผเจฟเจเจฆเจพเจคเจฐ เจธเจฎเฉฑเจเจฐเฉเจเจ เจจเฉเฉฐ เจเฉฑเจฅเฉ เจตเฉ เจฒเฉฑเจญ เจธเจเจฆเฉ เจนเฉ
เจเฉเจฌเจฐเจจเฉเจเจธ 'เจคเฉ เจเจฒเจพเจเจก เจเจฐเจเจฟเจเจ เจจเฉเฉฐ เจฌเจเจพเจเจฃ เจฒเจ เจคเฉเจนเจพเจกเฉ เจธเจญ เจคเฉเจ เจตเจงเฉเจ เจ
เจญเจฟเจเจธ เจเฉ เจนเจจ? เจเจฟเจฐเจชเจพ เจเจฐเจเฉ เจฎเฉเจจเฉเฉฐ 'เจคเฉ เจฆเฉฑเจธเฉ
เจธเจฐเฉเจค: www.habr.com