เดเตเดดเตโเดธเต เดคเตเดเดเตเดเตเดจเตเดจเดคเดฟเดจเตเดฑเต เดคเดฒเตเดจเตเดจเต เดคเดฏเตเดฏเดพเดฑเดพเดเตเดเดฟเดฏเดคเดพเดฃเต เดฒเตเดเดจเดคเตเดคเดฟเดจเตเดฑเต เดชเดฐเดฟเดญเดพเดท
เดเตเดฌเตผเดจเตเดฑเตเดฑเดธเตเดฎเดพเดฏเดฟ เดชเตเดฐเดตเตผเดคเตเดคเดฟเดเตเดเตเดฎเตเดชเตเตพ เดเตเดฒเตเดกเต เดเตเดฒเดตเต เดเดเตเดเดจเต เดฒเดพเดญเดฟเดเตเดเดพเด? เดถเดฐเดฟเดฏเดพเดฏ เดเดฐเต เดชเดฐเดฟเดนเดพเดฐเดตเตเดฎเดฟเดฒเตเดฒ, เดเดจเตเดจเดพเตฝ เดจเดฟเดเตเดเดณเตเดเต เดเดฑเดตเดฟเดเดเตเดเตพ เดเตเดเตเดคเตฝ เดซเดฒเดชเตเดฐเดฆเดฎเดพเดฏเดฟ เดเตเดเดพเดฐเตเดฏเด เดเตเดฏเตเดฏเดพเดจเตเด เดจเดฟเดเตเดเดณเตเดเต เดเตเดฒเตเดกเต เดเดฎเตเดชเตเดฏเตเดเตเดเดฟเดเดเต เดเตเดฒเดตเต เดเตเดฑเดฏเตเดเตเดเดพเดจเตเด เดธเดนเดพเดฏเดฟเดเตเดเตเดจเตเดจ เดจเดฟเดฐเดตเดงเดฟ เดเตเดณเตเดเตพ เด เดฒเตเดเดจเด เดตเดฟเดตเดฐเดฟเดเตเดเตเดจเตเดจเต.
AWS-เดจเดพเดฏเดฟ เดเตเดฌเตผเดจเตเดฑเตเดฑเดธเต เดฎเดจเดธเตเดธเดฟเตฝ เดตเตเดเตเดเดพเดฃเต เดเดพเตป เด เดฒเตเดเดจเด เดเดดเตเดคเดฟเดฏเดคเต, เดเดจเตเดจเดพเตฝ เดฎเดฑเตเดฑเต เดเตเดฒเตเดกเต เดฆเดพเดคเดพเดเตเดเตพเดเตเดเตเด เดเดคเต เดฌเดพเดงเดเดฎเดพเดเตเด (เดเดคเดพเดฃเตเดเต). เดจเดฟเดเตเดเดณเตเดเต เดเตเดฒเดธเตเดฑเตเดฑเตผ(เดเตพ) เดเดคเดฟเดจเดเด เดธเตเดตเดฏเดฎเตเดต เดธเตโเดเตเดฏเดฟเดฒเดฟเดเดเต เดเตเดฐเดฎเตเดเดฐเดฟเดเตเดเดฟเดเตเดเตเดฃเตเดเตเดจเตเดจเต เดเดพเตป เด
เดจเตเดฎเดพเดจเดฟเดเตเดเตเดจเตเดจเต (
เด เดฒเตเดเดจเด เดเตพเดชเตเดชเตเดเตเด:
- เดเดชเดฏเตเดเดฟเดเตเดเดพเดคเตเดค เดตเดฟเดญเดตเดเตเดเตพ เดตเตเดคเตเดคเดฟเดฏเดพเดเตเดเตเดจเตเดจเต (
เดเตเดฌเต-เดเดพเดจเดฟเดฑเตเดฑเตผ ) - เดเตเดฒเดฟ เดเตเดฏเตเดฏเดพเดคเตเดค เดธเดฎเดฏเดเตเดเดณเดฟเตฝ เดธเตเดเตเดฏเดฟเดฒเดฟเดเดเต เดเตเดฑเดฏเตเดเตเดเตเด (
kube-downscaler ) - เดนเตเดฑเดฟเดธเตเดฃเตเดเตฝ เดเดเตเดเตเดธเตโเดเตเดฒเดฟเดเดเต (HPA) เดเดชเดฏเตเดเดฟเดเตเดเต
- เด
เดฎเดฟเดคเดฎเดพเดฏ เดฑเดฟเดธเตผเดตเตเดทเตป เดเตเดฑเดฏเตเดเตเดเตฝ (
kube-resource-report , VPA) - เดธเตเดชเตเดเตเดเต เดธเดเดญเดตเดเตเดเตพ เดเดชเดฏเตเดเดฟเดเตเดเตเดจเตเดจเต
เดเดชเดฏเตเดเดฟเดเตเดเดพเดคเตเดค เดตเดฟเดญเดตเดเตเดเตพ เดตเตเดคเตเดคเดฟเดฏเดพเดเตเดเตเดจเตเดจเต
เดตเตเดเดคเดฏเตเดฑเดฟเดฏ เด
เดจเตเดคเดฐเตเดเตเดทเดคเตเดคเดฟเตฝ เดชเตเดฐเดตเตผเดคเตเดคเดฟเดเตเดเตเดจเตเดจเดคเต เดฎเดฟเดเดเตเดเดคเดพเดฃเต. เดเดเตเดเตพเดเตเดเต เดธเดพเดเตเดเตเดคเดฟเด เดธเตเดฅเดพเดชเดจเดเตเดเตพ เดตเตเดฃเด
(เดนเตเดจเตเดจเดฟเดเดเต เดเตเดเตเดเดฌเตเดธเต:
Zhiza:
(เดเดฆเตเดงเดฐเดฃเดฟเดเตพ) เดเตเดฑเดฟ เดเตเดตเดฟเตป:
เดฎเดฟเดฅเตเดฏเดพเดงเดพเดฐเดฃ: เดจเดฟเดเตเดเดณเตเดเต AWS เด
เดเตเดเตเดฃเตเดเต, เดจเดฟเดเตเดเตพเดเตเดเตเดณเตเดณ เดเดชเดฏเตเดเตเดคเดพเดเตเดเดณเตเดเต เดเดฃเตเดฃเดคเตเดคเดฟเดจเตเดฑเต เดชเตเดฐเดตเตผเดคเตเดคเดจเดฎเดพเดฃเต.
เดตเดธเตโเดคเตเดค: เดจเดฟเดเตเดเดณเตเดเต เดโเดกเดฌเตเดฒเตเดฏเตเดเดธเต เดธเตโเดเตเตผ เดจเดฟเดเตเดเตพเดเตเดเตเดณเตเดณ เดเดเตเดเดฟเดจเตเดฏเตผเดฎเดพเดฐเตเดเต เดเดฃเตเดฃเดคเตเดคเดฟเดจเตเดฑเต เดชเตเดฐเดตเตผเดคเตเดคเดจเดฎเดพเดฃเต.
เดเดตเดพเตป เดเตเตผเดจเตเดธเตเดตเต (เดชเตเดฐเดคเดฟเดเดฐเดฃเดคเตเดคเดฟเตฝ):
เดฏเดฅเดพเตผเดคเตเดฅ เดตเดธเตโเดคเตเดค: เดจเดฟเดเตเดเดณเตเดเต AWS เดธเตโเดเตเตผ เดเดจเตเดจเดคเต เดจเดฟเดเตเดเตพ เด
เดชเตเดฐเดพเดชเตโเดคเดฎเดพเดเตเดเดพเตป/เดเดฒเตเดฒเดพเดคเดพเดเตเดเดพเตป เดฎเดฑเดจเตเดจ เดเดพเดฐเตเดฏเดเตเดเดณเตเดเต เดเดฃเตเดฃเดฎเดพเดฃเต.)
- เดเตเดฒเดธเตเดฑเตเดฑเตผ-เดตเตเดกเต เดจเดฟเดฏเดฎเดเตเดเตพเดเตเดเต เดชเดฟเดเตผ/เดเตเดธเตเดฑเตเดฑเต เดตเดฟเดจเตเดฏเดพเดธเดเตเดเตพเดเตเดเดพเดฏเดฟ เดชเดฐเดฎเดพเดตเดงเดฟ เดธเดฎเดฏเด-เดเต-เดฒเตเดตเต (เดเดฟเดเดฟเดเตฝ) เดจเดฟเตผเดตเดเดฟเดเตเดเดพเดจเดพเดเตเด.
- 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). เดเดฐเต Kubernetes StatefulSet เดเดฒเตเดฒเดพเดคเดพเดเตเดเตเดจเตเดจเดคเต เด เดคเดฟเดจเตเดฑเต เดธเตเดฅเดฟเดฐเดฎเดพเดฏ เดตเตเดณเตเดฏเดเตเดเตพ เดเดฒเตเดฒเดพเดคเดพเดเตเดเดฟเดฒเตเดฒ (PVC - PersistentVolumeClaim). เดเดชเดฏเตเดเดฟเดเตเดเดพเดคเตเดค EBS เดตเตเดณเตเดฏเดเตเดเตพ เดเดณเตเดชเตเดชเดคเตเดคเดฟเตฝ เดชเตเดฐเดคเดฟเดฎเดพเดธเด เดจเตเดฑเตเดเดฃเดเตเดเดฟเดจเต เดกเตเดณเตผ เดเดฟเดฒเดตเดพเดเตเดเดฟเดฏเตเดเตเดเดพเด. เดเดชเดฏเตเดเดฟเดเตเดเดพเดคเตเดค เดชเดฟเดตเดฟเดธเดฟเดเตพ เดตเตเดคเตเดคเดฟเดฏเดพเดเตเดเดพเตป เดเตเดฌเตผเดจเตเดฑเตเดฑเดธเต เดเดพเดจเดฟเดฑเตเดฑเดฑเดฟเดจเต เดเดฐเต เดซเตเดเตเดเตผ เดเดฃเตเดเต. เดเดฆเดพเดนเดฐเดฃเดคเตเดคเดฟเดจเต, เดเดฐเต เดฎเตเดกเตเดฏเตเตพ เดฎเตเดฃเตเดเต เดเตเดฏเตเดฏเดพเดคเตเดคเดคเตเด StatefulSet เด เดฒเตเดฒเตเดเตเดเดฟเตฝ CronJob เดฑเดซเดฑเตปเดธเต เดเตเดฏเตเดฏเดพเดคเตเดคเดคเตเดฎเดพเดฏ เดเดฒเตเดฒเดพ PVC-เดเดณเตเด เด เดจเดฟเดฏเดฎเด เดจเตเดเตเดเด เดเตเดฏเตเดฏเตเด:
# ัะดะฐะปะธัั ะฒัะต 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
เดธเตเดเตเดฏเดฟเดฒเดฟเดเดเดฟเดจเดพเดฏเดฟ เดเดทเตโเดเดพเดจเตเดธเตเดค เดฎเตเดเตเดฐเดฟเดเตโเดธเต เดเดณเตเดชเตเดชเดคเตเดคเดฟเตฝ เดฌเดจเตเดงเดฟเดชเตเดชเดฟเดเตเดเตเดจเตเดจเดคเดฟเดจเต Zalando เดเดฐเต เดเดเดเด เดธเตเดทเตโเดเดฟเดเตเดเต:
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-เดฏเตโเดเตเดเตเดณเตเดณ เดถเตเดชเดพเตผเดถเดเดณเตเด เด
เดเดเตเดเดฟเดฏ เดเดฐเต เด
เดตเดคเดฐเดฃเด เดเดฃเตเดเต:
เดฑเดฟเดธเตเดดเตเดธเต เดเดตเตผเดฌเตเดเตเดเดฟเดเดเต เดเตเดฑเดฏเตเดเตเดเตเด
เดเตเดฌเตผเดจเตเดฑเตเดฑเดธเต เดตเตผเดเตเดเตเดฒเตเดกเตเดเตพ เด
เดตเดฐเตเดเต เดธเดฟเดชเดฟเดฏเต/เดฎเตเดฎเตเดฎเดฑเดฟ เดเดตเดถเตเดฏเดเดคเดเตพ "เดตเดฟเดญเดต เด
เดญเตเดฏเตผเดคเตเดฅเดจเดเตพ" เดตเดดเดฟ เดจเดฟเตผเดฃเตเดฃเดฏเดฟเดเตเดเตเดจเตเดจเต. เดธเดฟเดชเดฟเดฏเต เดเดฑเดตเดฟเดเดเตเดเตพ เดตเตเตผเดเตเดตเตฝ เดเตเดฑเตเดเดณเดฟเดฒเต เดธเดพเดงเดพเดฐเดฃเดฏเดพเดฏเดฟ "เดฎเดฟเดฒเตเดฒเดฟเดเตเตผ"เดเดณเดฟเดฒเต เด
เดณเดเตเดเตเดจเตเดจเต, เดเดฆเดพเดนเดฐเดฃเดคเตเดคเดฟเดจเต 500m เดเดจเตเดจเดคเต 50% vCPU เดธเตเดเดฟเดชเตเดชเดฟเดเตเดเตเดจเตเดจเต. เดฎเตเดฎเตเดฎเดฑเดฟ เดเดฑเดตเดฟเดเดเตเดเตพ เดฌเตเดฑเตเดฑเตเดเดณเดฟเตฝ เด
เดณเดเตเดเตเดจเตเดจเต, 500 เดฎเตเดเดพเดฌเตเดฑเตเดฑเต เดเดจเตเดจเตผเดคเตเดฅเด เดตเดฐเตเดจเตเดจ 500Mi เดชเตเดฒเตเดฏเตเดณเตเดณ เดชเตเดคเตเดตเดพเดฏ เดชเตเดฐเดคเตเดฏเดฏเดเตเดเตพ เดเดชเดฏเตเดเดฟเดเตเดเดพเด. เดตเตผเดเตเดเตผ เดจเตเดกเตเดเดณเดฟเตฝ เดฑเดฟเดธเตเดดเตโเดธเต เด
เดญเตเดฏเตผเดคเตเดฅเดจ "เดฒเตเดเตเดเต" เดเดชเตเดชเดพเดธเดฟเดฑเตเดฑเดฟ, เด
เดคเดพเดฏเดคเต 1000 vCPU-เดเดณเตเดณเตเดณ เดเดฐเต เดจเตเดกเดฟเตฝ 4m CPU เด
เดญเตเดฏเตผเดคเตเดฅเดจเดฏเตเดณเตเดณ เดชเตเดกเต เดฎเดฑเตเดฑเต เดชเตเดกเตเดเตพเดเตเดเต 3 vCPU-เดเตพ เดฎเดพเดคเตเดฐเดฎเต เดฒเดญเตเดฏเดฎเดพเดเต.
เดธเตเดฒเดพเดเตเดเต (เด
เดงเดฟเด เดเดฐเตเดคเตฝ) เด
เดญเตเดฏเตผเดคเตเดฅเดฟเดเตเด เดเดฑเดตเดฟเดเดเตเดเดณเตเด เดฏเดฅเดพเตผเดคเตเดฅ เดเดชเดฏเตเดเดตเตเด เดคเดฎเตเดฎเดฟเดฒเตเดณเตเดณ เดตเตเดฏเดคเตเดฏเดพเดธเดฎเดพเดฃเต. เดเดฆเดพเดนเดฐเดฃเดคเตเดคเดฟเดจเต, 2 GiB เดฎเตเดฎเตเดฎเดฑเดฟ เดเดตเดถเตเดฏเดชเตเดชเตเดเตเดจเตเดจ เดเดจเตเดจเดพเตฝ 200 MiB เดฎเดพเดคเตเดฐเด เดเดชเดฏเตเดเดฟเดเตเดเตเดจเตเดจ เดเดฐเต เดชเตเดกเดฟเดจเต ~1,8 GiB "เด
เดงเดฟเด" เดฎเตเดฎเตเดฎเดฑเดฟ เดเดฃเตเดเต. เด
เดงเดฟเดเดฎเดพเดฏเดพเตฝ เดชเดฃเด เดเดฟเดฒเดตเดพเดเตเด. 1 GiB เด
เดจเดพเดตเดถเตเดฏ เดฎเตเดฎเตเดฎเดฑเดฟเดเตเดเต เดชเตเดฐเดคเดฟเดฎเดพเดธเด ~$10 เดเดฟเดฒเดตเดพเดเตเด เดเดจเตเดจเต เดเดฐเดพเตพเดเตเดเต เดเดเดฆเตเดถเด เดเดฃเดเตเดเดพเดเตเดเดพเด.
CPU เด
เดญเตเดฏเตผเดคเตเดฅเดจ 3000m เตฝ เดจเดฟเดจเตเดจเต ~ 400m เดเดฏเดฟ เดเตเดฑเดฏเตเดเตเดเตเดจเตเดจเดคเต เดฎเดฑเตเดฑเต เดเตเดฒเดฟเดญเดพเดฐเดเตเดเตพเดเตเดเตเดณเตเดณ เดตเดฟเดญเดตเดเตเดเตพ เดธเตเดตเดคเดจเตเดคเตเดฐเดฎเดพเดเตเดเตเดเดฏเตเด เดเตเดฒเดธเตเดฑเตเดฑเตผ เดเตเดฑเตเดคเดพเดเดพเตป เด
เดจเตเดตเดฆเดฟเดเตเดเตเดเดฏเตเด เดเตเดฏเตเดฏเตเดจเตเดจเต.
"เดเดธเดฟ2 เดธเดเดญเดตเดเตเดเดณเตเดเต เดถเดฐเดพเดถเดฐเดฟ เดธเดฟเดชเดฟเดฏเต เดเดชเดฏเตเดเด เดชเดฒเดชเตเดชเตเดดเตเด เดเดฑเตเดฑ-เด
เดเตเด เดถเดคเดฎเดพเดจเด เดชเดฐเดฟเดงเดฟเดฏเดฟเดฒเดพเดฃเต"
เดเดจเตเดจเดพเตฝ YAML เดซเดฏเดฒเตเดเดณเดฟเตฝ เดเดณเตเดเตพ เดฎเตเดฒเตเดฏเดเตเดเตพ เดฎเดพเดฑเตเดฑเดฃเดฎเตเดจเตเดจเต เดเดเตเดเตพเดเตเดเต เดถเดฐเดฟเดเตเดเตเด เดเดตเดถเตเดฏเดฎเตเดฃเตเดเต? เดเดฒเตเดฒ, เดฏเดจเตเดคเตเดฐเดเตเดเตพเดเตเดเต เดเดคเต เดตเดณเดฐเต เดจเดจเตเดจเดพเดฏเดฟ เดเตเดฏเตเดฏเดพเตป เดเดดเดฟเดฏเตเด! เดเตเดฌเตเตผเดจเตเดฑเตเดฑเดธเต
เดเดพเตป เดเตเดฑเตเดคเดพเดฏเดฟ เดเดดเตเดคเดฟ
EC2 เดธเตเดชเตเดเตเดเต เดธเดเดญเดตเดเตเดเตพ เดเดชเดฏเตเดเดฟเดเตเดเตเดจเตเดจเต
เด
เดตเดธเดพเดจเดฎเดพเดฏเดฟ เดชเดเตเดทเต, เดเตเดฌเตเตผเดจเตเดฑเตเดฑเดธเต เดตเตผเดเตเดเตผ เดจเตเดกเตเดเดณเดพเดฏเดฟ เดธเตเดชเตเดเตเดเต เดธเดเดญเดตเดเตเดเตพ เดเดชเดฏเตเดเดฟเดเตเดเต AWS EC2 เดเตเดฒเดตเต เดเตเดฑเดฏเตเดเตเดเดพเดจเดพเดเตเด.
EC2 Spot-เตฝ Kubernetes เดเดเตเดเดจเต เดชเตเดฐเดตเตผเดคเตเดคเดฟเดชเตเดชเดฟเดเตเดเดพเด? เดเตเดฑเดเตเดเต เดเดชเตเดทเดจเตเดเตพ เดเดฃเตเดเต: SpotInst (เดเดชเตเดชเตเตพ "เดธเตเดชเตเดเตเดเต" เดเดจเตเดจเต เดตเดฟเดณเดฟเดเตเดเตเดจเตเดจเต, เดเดจเตเดคเตเดเตเดฃเตเดเตเดจเตเดจเต เดเดจเตเดจเตเดเต เดเตเดฆเดฟเดเตเดเดฐเตเดคเต) เดชเตเดฒเตเดณเตเดณ เดเดฐเต เดฎเตเดจเตเดจเดพเด เดเดเตเดทเดฟ เดธเตเดตเดจเด เดเดชเดฏเตเดเดฟเดเตเดเตเด เด เดฒเตเดฒเตเดเตเดเดฟเตฝ เดจเดฟเดเตเดเดณเตเดเต เดเตเดฒเดธเตเดฑเตเดฑเดฑเดฟเดฒเตเดเตเดเต เดเดฐเต Spot AutoScalingGroup (ASG) เดเตเตผเดเตเดเตเด. เดเดฆเดพเดนเดฐเดฃเดคเตเดคเดฟเดจเต, เดเดจเตเดจเดฟเดฒเดงเดฟเดเด เดเดฆเดพเดนเดฐเดฃ เดคเดฐเดเตเดเดณเตเดณเตเดณ "เดถเตเดทเดฟ-เดเดชเตเดฑเตเดฑเดฟเดฎเตเดธเต เดเตเดฏเตเดค" Spot 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"
เดเตเดฌเตผเดจเตเดฑเตเดฑเดฟเดจเตเดชเตเดชเด เดธเตเดชเตเดเตเดเต เดเดชเดฏเตเดเดฟเดเตเดเตเดจเตเดจเดคเดฟเดจเตเดเตเดเตเดฑเดฟเดเตเดเตเดณเตเดณ เดเดฟเดฒ เดเตเดฑเดฟเดชเตเดชเตเดเตพ:
- เดจเดฟเดเตเดเตพ เดธเตโเดชเตเดเตเดเต เดเตเตผเดฎเดฟเดจเตเดทเดจเตเดเตพ เดเตเดเดพเดฐเตเดฏเด เดเตเดฏเตเดฏเตเดฃเตเดเดคเตเดฃเตเดเต, เดเดฆเดพเดนเดฐเดฃเดคเตเดคเดฟเดจเต, เดเตปเดธเตโเดฑเตเดฑเตปเดธเต เดจเดฟเตผเดคเตเดคเตเดฎเตเดชเตเตพ เดจเตเดกเต เดฒเดฏเดฟเดชเตเดชเดฟเดเตเดเตเดเตเดฃเตเดเต
- Zalando เดเดชเดฏเตเดเดฟเดเตเดเตเดจเตเดจเต
เดจเดพเตฝเดเตเดเดตเดฒ เดจเตเดกเต เดชเตเตพ เดฎเตเตปเดเดฃเดจเดเดณเตเดณเตเดณ เดเดฆเตเดฏเตเดเดฟเด เดเตเดฒเดธเตเดฑเตเดฑเตผ เดเดเตเดเตเดธเตเดเตเดฒเดฟเดเดเต - เดธเตเดชเตเดเตเดเต เดจเตเดกเตเดเตพ
เดจเดฟเตผเดฌเดจเตเดงเดฟเดเตเดเดพเด เดธเตโเดชเตเดเตเดเดฟเตฝ เดชเตเดฐเดตเตผเดคเตเดคเดฟเดเตเดเดพเตป เดเตเดฒเดฟเดญเดพเดฐเดเตเดเดณเตเดเต "เดฐเดเดฟเดธเตโเดเตเดฐเตเดทเตป" เดธเตเดตเตเดเดฐเดฟเดเตเดเตเด
เดธเดเดเตเดฐเดนเด
เดจเดฟเดเตเดเดณเตเดเต เดเตเดฒเตเดกเต เดฌเดฟเตฝ เดเตเดฑเดฏเตเดเตเดเตเดจเตเดจเดคเดฟเดจเต เด
เดตเดคเดฐเดฟเดชเตเดชเดฟเดเตเด เดเดฟเดฒ เดเตเดณเตเดเตพ เดจเดฟเดเตเดเตพเดเตเดเต เดเดชเดฏเตเดเดชเตเดฐเดฆเดฎเดพเดฃเตเดจเตเดจเต เดเดพเตป เดชเตเดฐเดคเตเดเตเดทเดฟเดเตเดเตเดจเตเดจเต. เดฒเตเดเดจเดคเตเดคเดฟเดจเตเดฑเต เดฎเดฟเดเตเด เดเดณเตเดณเดเดเตเดเดเตเดเดณเตเด เดจเดฟเดเตเดเตพเดเตเดเต เดเดตเดฟเดเตเดฏเตเด เดเดฃเตเดเตเดคเตเดคเดพเดจเดพเดเตเด
Kubernetes-เตฝ เดเตเดฒเตเดกเต เดเตเดฒเดตเต เดฒเดพเดญเดฟเดเตเดเตเดจเตเดจเดคเดฟเดจเตเดณเตเดณ เดจเดฟเดเตเดเดณเตเดเต เดฎเดฟเดเดเตเด เดธเดฎเตเดชเตเดฐเดฆเดพเดฏเดเตเดเตพ เดเดคเดพเดฃเต? เดเดจเตเดจเดคเดฟเตฝ เดเดจเตเดจเต เด
เดฑเดฟเดฏเดฟเดเตเดเต
เด เดตเดฒเดเดฌเด: www.habr.com