เบเบฒเบโเปเบโเบเบฒโเบชเบฒโเบเบญเบโเบเบปเบโเบเบงเบฒเบกโเปเบเปโเบเบทเบโเบเบฐโเบเบฝเบกโเปเบโเบชเบฐโเบกเบฒเบโเบชเบฐโเบกเบฒเบโเบเบญเบโเบเบฒเบโเปเบฅเบตเปเบกโเบเบปเปเบโเบเบญเบโเบงเบดโเบเบฒโเบเบฒเบ
เบงเบดเบเบตเบเบฒเบเบเบฐเบซเบเบฑเบเบเปเบฒเปเบเปเบเปเบฒเบเปเบเบเบฅเบฒเบงเปเบเปเบงเบฅเบฒเบเบตเปเปเบฎเบฑเบเบงเบฝเบเบเบฑเบ Kubernetes? เบเปเปเบกเบตเบเบฒเบเปเบเปเปเบเบเบตเปเบเบทเบเบเปเบญเบเบเบฝเบง, เปเบเปเบเบปเบเบเบงเบฒเบกเบเบตเปเบญเบฐเบเบดเบเบฒเบเปเบเบทเปเบญเบเบกเบทเบเปเบฒเบเบงเบเบซเบเบถเปเบเบเบตเปเบชเบฒเบกเบฒเบเบเปเบงเบเปเบซเปเบเปเบฒเบเบเบธเปเบกเบเบญเบเบเบฑเบเบเบฐเบเบฒเบเบญเบเบเบญเบเบเปเบฒเบเบขเปเบฒเบเบกเบตเบเบฐเบชเบดเบเบเบดเบเบฒเบเปเบฅเบฐเบซเบผเบธเบเบเปเบญเบเบเปเบฒเปเบเปเบเปเบฒเบเปเบเบเบญเบกเบเบดเบงเปเบเบตเปเบเบฑเบเบเบญเบเบเปเบฒเบ.
เบเปเบญเบเบเบฝเบเบเบปเบเบเบงเบฒเบกเบเบตเปเบเบฑเบ Kubernetes เบชเปเบฒเบฅเบฑเบ AWS เปเบเปเบ, เปเบเปเบกเบฑเบเบเบฐเบเปเบฒเปเบเป (เปเบเบทเบญเบ) เบเบทเบเบฑเบเบเบฑเบเบเบนเปเปเบซเปเบเปเบฅเบดเบเบฒเบเบเบฑเบเบญเบทเปเบเป. เบเปเบญเบเบชเบปเบกเบกเบธเบเบงเปเบฒเบเบธเปเบกเบเบญเบเปเบเบปเปเบฒเปเบเปเบกเบตเบเบฒเบเบเบฑเบเบเบฐเปเบฒเบเบญเบฑเบเบเบฐเปเบเบกเบฑเบเปเบฅเปเบง (
เบเบปเบเบเบงเบฒเบกเบเบตเปเบเบฐเบเบงเบกเปเบญเบปเบฒ:
- เบเปเบฒโเบเบงเบฒเบกโเบชเบฐโเบญเบฒเบโเบเบฑเบโเบเบฐโเบเบฒโเบเบญเบโเบเบตเปโเบเปเปโเปเบเปโเบเปเบฒโเปเบเป (
kube-janitor ) - เบซเบผเบธเบเบเบฒเบเบเบฑเบเบเบฐเปเบฒเบเปเบเปเบงเบฅเบฒเบเปเปเปเบฎเบฑเบเบงเบฝเบ (
kube-downscaler ) - เบเบฒเบโเบเปเบฒโเปเบเปโเบเบฒเบโเบเบฑเบโเบเบฐโเบซเบเบฒเบโเบญเบฑเบโเบเบฐโเปเบโเบกเบฑเบโเบเบฒเบกโเบฅเบงเบโเบเบญเบ (HPAโ)โ,
- เบเบฒเบเบซเบผเบธเบเบเปเบญเบเบเบฒเบเบเบญเบเบเบฑเบเบเบฐเบเบฒเบเบญเบเบซเบผเบฒเบเปเบเบตเบเปเบ (
kube-resource-report , VPA) - เบเบฒเบโเบเปเบฒโเปเบเป Spot เบเบปเบงโเบขเปเบฒเบโ
เปเบฎเบฑเบเบเบงเบฒเบกเบชเบฐเบญเบฒเบเบเบฑเบเบเบฐเบเบฒเบเบญเบเบเบตเปเบเปเปเปเบเปเปเบเป
เบเบฒเบเปเบฎเบฑเบเบงเบฝเบเปเบเบชเบฐเบเบฒเบเปเบงเบเบฅเปเบญเบกเบเบตเปเบกเบตเบเบงเบฒเบกเปเบงเปเบกเปเบเบเบตเบซเบผเบฒเบ. เบเบงเบเปเบฎเบปเบฒเบเปเบญเบเบเบฒเบเบญเบปเบเบเบฒเบเบเบฑเบเบเบฑเปเบเปเบเบฑเบเปเบเปเบฅเบขเบต
(Henning Jacobs:
Zhiza:
Corey Quinn:
Myth: เบเบฑเบเบเบต AWS เบเบญเบเบเปเบฒเบเปเบกเปเบเบซเบเปเบฒเบเบตเปเบเบญเบเบเปเบฒเบเบงเบเบเบนเปเปเบเปเบเบตเปเบเปเบฒเบเบกเบต.
เบเบงเบฒเบกเบเบดเบ: เบเบฐเปเบเบ AWS เบเบญเบเบเปเบฒเบเปเบกเปเบเบซเบเปเบฒเบเบตเปเบเบญเบเบเปเบฒเบเบงเบเบงเบดเบชเบฐเบงเบฐเบเบญเบเบเบตเปเบเปเบฒเบเบกเบต.
Ivan Kurnosov (เบเบญเบเปเบเป):
เบเบงเบฒเบกโเบเบดเบโเบเบตเปโเปเบเปโเบเบดเบโ: เบเบฐโเปเบเบ AWS เบเบญเบโเบเปเบฒเบโเปเบกเปเบโเบเบฒเบโเบเปเบฒโเบเบฒเบโเบเบญเบโเบเปเบฒโเบเบงเบโเบเบญเบโเบชเบดเปเบโเบเบตเปโเบเปเบฒเบโเบฅเบทเบกโเบเบดเบโเบเบฒเบโเบเปเบฒโเบเบฒเบ / เบฅเบถเบโ.
- เบเบปเบเบฅเบฐเบเบฝเบเบเบญเบเบเบธเปเบกเบชเบฒเบกเบฒเบเบเปเบฒเบเบปเบเปเบงเบฅเบฒเบชเบนเบเบชเบธเบเบเปเปเบเบตเบงเบดเบ (TTL) เบชเปเบฒเบฅเบฑเบเบเบฒเบเบเบฐเบเบดเบเบฑเบ PR/test.
- เบเบฑเบเบเบฐเบเบฒเบเบญเบเบชเปเบงเบเบเบธเบเบเบปเบเบชเบฒเบกเบฒเบเบเบทเบเบญเบฐเบเบดเบเบฒเบเบเปเบงเบ janitor/ttl, เบเบปเบงเบขเปเบฒเบเปเบเบทเปเบญเปเบญเบปเบฒ spike/prototype เบญเบฑเบเบเบฐเปเบเบกเบฑเบเบซเบผเบฑเบเบเบฒเบ 7 เบกเบทเป.
เบเบปเบเบฅเบฐเบเบฝเบเบเบปเปเบงเปเบเบเบทเบเบเปเบฒเบเบปเบเปเบงเปเปเบเปเบเบฅเป YAML. เปเบชเบฑเปเบเบเบฒเบเบเบญเบเบกเบฑเบเปเบกเปเบเบเปเบฒเบเบเบปเบงเบเปเบฒเบเบปเบเบเบฒเบ --rules-file
เปเบ kube-janitor. เบเบตเปเปเบกเปเบเบเบปเบเบฅเบฐเบเบฝเบเบเบปเบงเบขเปเบฒเบเบเบตเปเบเบฐเปเบญเบปเบฒ namespaces เบเบฑเบเบซเบกเบปเบเบญเบญเบเบเปเบงเบ -pr-
เปเบโเบเบทเปโเบซเบผเบฑเบโเบเบฒเบโเบชเบญเบโเบกเบทเปโ:
- id: cleanup-resources-from-pull-requests
resources:
- namespaces
jmespath: "contains(metadata.name, '-pr-')"
ttl: 2d
เบเบปเบงเบขเปเบฒเบเบเปเปเปเบเบเบตเปเบเบงเบเบเบธเบกเบเบฒเบเปเบเปเบเปเบฒเบเบเบณเบเบฑเบเบเบญเบเปเบญเบฑเบเบเบฅเบดเปเบเบเบฑเปเบเปเบเบดเบ Deployment and StatefulSet pods เบชเบณเบฅเบฑเบ Deployments/StatefulSets เปเปเปเบเบฑเบเปเบปเบเปเบเบเบต 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 เบเบฒเบเบตเปเบเบเบธเปเบกเบเบตเปเปเบฅเปเบ kube-janitor:
kubectl run nginx-demo --image=nginx
kubectl annotate deploy nginx-demo janitor/ttl=30m
เปเบซเบผเปเบเบเบญเบเบเปเบฒเปเบเปเบเปเบฒเบเบเบตเปเปเบเบตเปเบกเบเบถเปเบเบญเบตเบเบญเบฑเบเบซเบเบถเปเบเปเบกเปเบเบเบฐเบฅเบดเบกเบฒเบเบขเปเบฒเบเบเปเปเปเบเบทเปเบญเบ (AWS EBS). เบเบฒเบเบฅเบถเบ Kubernetes StatefulSet เบเปเปเปเบเปเบฅเบถเบเบเบฐเบฅเบดเบกเบฒเบเบเบตเปเบเบปเบเบเปเบฒเบเบเบญเบเบกเบฑเบ (PVC - PersistentVolumeClaim). เบเบฐเบฅเบดเบกเบฒเบ EBS เบเบตเปเบเปเปเปเบเปเปเบเปเบชเบฒเบกเบฒเบเปเบฎเบฑเบเปเบซเปเบเปเบฒเปเบเปเบเปเบฒเบเบซเบผเบฒเบเบฎเปเบญเบเปเบเบฅเบฒเบเปเปเปเบเบทเบญเบเปเบเปเบขเปเบฒเบเบเปเบฒเบเบเบฒเบ. Kubernetes Janitor เบกเบตเบเบธเบเบชเบปเบกเบเบฑเบเปเบเบเบฒเบเปเบฎเบฑเบเบเบงเบฒเบกเบชเบฐเบญเบฒเบ PVC เบเบตเปเบเปเปเปเบเปเปเบเป. เบเบปเบงเบขเปเบฒเบ, เบเบปเบเบฅเบฐเบเบฝเบเบเบตเปเบเบฐเปเบญเบปเบฒ PVCs เบเบฑเบเบซเบกเบปเบเบเบตเปเบเปเปเปเบเปเบเบดเบเบเบฑเปเบเปเบเบเปเบกเบเบนเบเปเบฅเบฐเบเบตเปเบเปเปเปเบเปเบญเปเบฒเบเบญเบตเบเปเบเบ StatefulSet เบซเบผเบท CronJob:
# ัะดะฐะปะธัั ะฒัะต PVC, ะบะพัะพััะต ะฝะต ัะผะพะฝัะธัะพะฒะฐะฝั ะธ ะฝะฐ ะบะพัะพััะต ะฝะต ัััะปะฐัััั StatefulSets
- id: remove-unused-pvcs
resources:
- persistentvolumeclaims
jmespath: "_context.pvc_is_not_mounted && _context.pvc_is_not_referenced"
ttl: 24h
Kubernetes Janitor เบชเบฒเบกเบฒเบเบเปเบงเบเบเปเบฒเบเบฎเบฑเบเบชเบฒเบเบธเปเบกเบเบญเบเบเปเบฒเบเปเบซเปเบชเบฐเบญเบฒเบ เปเบฅเบฐเบเปเบญเบเบเบฑเบเบเปเปเปเบซเปเบเปเบฒเปเบเปเบเปเบฒเบเบเบญเบเบเบญเบกเบเบดเบงเปเบเบตเปเบเบฅเบฒเบงเบกเบตเบเบถเปเบเบขเปเบฒเบเบเปเบฒเป. เบชเปเบฒเบฅเบฑเบเบเปเบฒเปเบเบฐเบเปเบฒเปเบเบเบฒเบเบเปเบฒเปเบเปเปเบฅเบฐเบเบฒเบเบเบฑเปเบเบเปเบฒ, เบเบฐเบเบดเบเบฑเบเบเบฒเบก
เบซเบผเบธเบเบเบฒเบเบเบฑเบเบเบฐเปเบฒเบเปเบเปเบงเบฅเบฒเบเปเปเปเบฎเบฑเบเบงเบฝเบ
เปเบเบเบเบปเปเบงเปเบเปเบฅเปเบงเบฅเบฐเบเบปเบเบเบฒเบเบเบปเบเบชเบญเบ เปเบฅเบฐเบเบฑเปเบเบเบญเบเปเบกเปเบเบเปเบญเบเบเบฒเบเปเบเบทเปเบญเปเบฎเบฑเบเบงเบฝเบเปเบเปเบงเบฅเบฒเปเบฎเบฑเบเบงเบฝเบเปเบเบปเปเบฒเบเบฑเปเบ. เบเบฒเบเบเปเบฒเบฎเปเบญเบเบชเบฐเบซเบกเบฑเบเบเบฒเบเบเบฐเบฅเบดเบ, เปเบเบฑเปเบ: เปเบเบทเปเบญเบเบกเบทเบเบฑเบเบเบทเบเปเบเบเปเบญเบเบซเปเบญเบเบเบฒเบ / admin, เบเบฑเบเบเปเบญเบเบเบฒเบเบเบฝเบเปเบเปเบกเบตเบเปเบฒเบเบฑเบเปเบฅเบฐเบญเบฒเบเบเบฐเบเบทเบเบเบดเบเบเบฒเบเปเบเปเบเบฒเบเปเบเบเบญเบเบเบฒเบเบเบทเบ.
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 nodes เบเบฐเบเบฑเบเบเบฒเบเปเบเปเบเบญเบเปเบฎเบฑเบเปเบซเปเบเบงเบฒเบกเปเบเบเบเปเบฒเบเบเบตเปเบชเบฑเบเปเบเบเปเบซเบฑเบเปเบเบเบฑเบเบเบตเบฅเบฒเบเบเบฒเบ AWS เบเบญเบเบเปเบฒเบ.
เปเบเปเบเบฐเปเบเบฑเบเปเบเบงเปเบเบเปเบฒเบเปเบญเบเบเปเบญเบเปเบฎเบฑเบเบงเบฝเบเปเบเบฅเบฐเบซเบงเปเบฒเบเบเบธเปเบก "downtime"? เบเบฒเบเบเบณเปเบเปเบเบฒเบเบญเบฑเบเบชเบฒเบกเบฒเบเบเบทเบเบเบปเบเปเบงเบฑเปเบเบขเปเบฒเบเบเบฒเบงเบญเบเบเบฒเบเบเบฒเบเบเบฑเบเบเบฐ เปเบฒเบ เปเบเบเบเบฒเบเปเบเบตเปเบกเบเบปเบงเบซเบผเบธเบ/เบเบปเบเปเบงเบฑเปเบ: เบเบณเบญเบฐเบเบดเบเบฒเบเบเบตเปเปเบเปเบเบดเบ. เบเบฒเบเบเบณเปเบเปเบชเบฒเบกเบฒเบเบเบทเบเบเบปเบเปเบงเบฑเปเบเบเบปเปเบงเบเบฒเบงเปเบเบเบเบฒเบเปเบเปเบเบปเบงเบซเบเปเป/exclude-เบเบปเบเบเปเบงเบฒ annotation เบเปเบงเบเบเบฒเบเบชเบฐเปเบเบกเปเบงเบฅเบฒเบขเปเบฒเบเปเบเปเบเบดเบเปเบเบฎเบนเบเปเบเบ YYYY-MM-DD HH:MM (UTC). เบเปเบฒเบเปเบฒเปเบเบฑเบ, เบเบธเปเบกเบเบฑเบเบซเบกเบปเบเบชเบฒเบกเบฒเบเบเบทเบเบเบฑเบเบเบฐเบซเบเบฒเบเบเบทเบเปเบเปเปเบเบเบเบฒเบเบเปเบฒเปเบเปเบเบฑเบเบเบตเปเบกเบตเบเปเบฒเบเบฑเบเบเบฒเบ downscaler/force-uptime
เบเบปเบงเบขเปเบฒเบ, เปเบเบเบเบฒเบเปเบเบตเบเบเบปเบง nginx blank:
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
เปเบเบดเปเบ
เปเบเปเบเบฒเบเบเบฑเบเบเบฐเปเบฒเบเบญเบฑเบเบเบฐเปเบเบกเบฑเบเบเบฒเบกเปเบเบงเบเบญเบ
เบเปเบฒเบฎเปเบญเบเบชเบฐเบซเบกเบฑเบ / เบเปเบฅเบดเบเบฒเบเบเปเบฒเบเบงเบเบซเบผเบฒเบเบเบฑเบเบเบฒเบเบเบฑเบเบฎเบนเบเปเบเบเบเบฒเบเปเบซเบผเบเปเบเบเปเบเบทเปเบญเบเปเบซเบง: เบเบฒเบเบเบฑเปเบเปเบกเบเบนเบเบเบญเบเบเบงเบเปเบเบปเบฒเบเปเปเปเบฎเบฑเบเบงเบฝเบ, เปเบฅเบฐเบเบฒเบเบเบฑเปเบเบเบงเบเบกเบฑเบเปเบฎเบฑเบเบงเบฝเบเปเบเบฑเบกเบเบตเป. เบเบฒเบเบเปเบฒเปเบเบตเบเบเบฒเบเบเบญเบเปเบฎเบทเบญเบเบฒเบงเบญเบเบเบญเบเบเบฑเบเปเบเบทเปเบญเบฎเบฑเบเบกเบทเบเบฑเบเบเบฒเบเปเบซเบผเบเบชเบนเบเบชเบธเบเปเบกเปเบเบเปเปเบเบฐเบซเบเบฑเบ. Kubernetes เบฎเบญเบเบฎเบฑเบเบเบฒเบเบเบฑเบเบเบฐเปเบฒเบเบญเบฑเบเบเบฐเปเบเบกเบฑเบเบเบฒเบกเบฅเบงเบเบเบญเบเปเบเบเบปเปเบงเบเบฑเบเบเบฐเบเบฒเบเบญเบ
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 เปเบเปเบชเปเบฒเบเบญเบปเบเบเบฐเบเบญเบเปเบเบทเปเบญเปเบเบทเปเบญเบกเบเปเป metrics เปเบเบเบเปเบฒเบเบปเบเปเบญเบเปเบเปเบขเปเบฒเบเบเปเบฒเบเบเบฒเบเบชเปเบฒเบฅเบฑเบเบเบฒเบเบเบฑเบเบเบฐเบซเบเบฒเบ:
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โ:
เบซเบผเบธเบเบเปเบญเบเบเบฒเบเบเบญเบเบเบฑเบเบเบฐเบเบฒเบเบญเบเบซเบผเบฒเบเปเบเบตเบเปเบ
เบเบฐเบฅเบดเบกเบฒเบเบงเบฝเบ Kubernetes เบเปเบฒเบเบปเบเบเบงเบฒเบกเบเปเบญเบเบเบฒเบ CPU / เบซเบเปเบงเบเบเบงเบฒเบกเบเปเบฒเบเบญเบเปเบเบปเบฒเปเบเบปเปเบฒเปเบเบเบเปเบฒเบ "เบเบฒเบเบฎเปเบญเบเบเปเบเบฑเบเบเบฐเบเบฒเบเบญเบ." เบเบฑเบเบเบฐเบเบฒเบเบญเบ CPU เปเบกเปเบเบเบทเบเบงเบฑเบเปเบเบเปเบเบฑเบเปเบเบ virtual เบซเบผเบทเบซเบผเบฒเบเบเบงเปเบฒเบเบปเปเบงเปเบเปเบ "millicores", เบเบปเบงเบขเปเบฒเบ 500m เบซเบกเบฒเบเปเบเบดเบ 50% vCPU. เบเบฑเบเบเบฐเบเบฒเบเบญเบเบเบงเบฒเบกเบเบปเบเบเปเบฒเบเบทเบเบงเบฑเบเปเบเบเปเบเบฑเบ bytes, เปเบฅเบฐเบเปเบฒเบเปเปเบเปเบฒเบเบเบปเปเบงเปเบเบชเบฒเบกเบฒเบเบเปเบฒเปเบเปเปเบเป, เปเบเบฑเปเบ: 500Mi, เบเบถเปเบเบซเบกเบฒเบเบเบงเบฒเบกเบงเปเบฒ 500 megabytes. เบเบฒเบเบฎเปเบญเบเบเปเบเบฑเบเบเบฐเบเบฒเบเบญเบ "lock" เบเบงเบฒเบกเบญเบฒเบเบชเบฒเบกเบฒเบเปเบ nodes เบเบฐเบเบฑเบเบเบฒเบ, เบเบถเปเบเบซเบกเบฒเบเบเบงเบฒเบกเบงเปเบฒ pod เบเบตเปเบกเบตเบเบฒเบเบฎเปเบญเบเบเป CPU 1000m เปเบ node เบเบตเปเบกเบต 4 vCPUs เบเบฐเบเปเบญเบเปเบซเปเบเบฝเบเปเบเป 3 vCPUs เบชเบฒเบกเบฒเบเปเบเปเปเบเปเบเบฑเบ pods เบญเบทเปเบเป.
Slack (เบชเบฐเบซเบเบงเบเปเบเบตเบ) เปเบกเปเบเบเบงเบฒเบกเปเบเบเบเปเบฒเบเบฅเบฐเบซเบงเปเบฒเบเบเบฑเบเบเบฐเบเบฒเบเบญเบเบเบตเปเบฎเปเบญเบเบเปเปเบฅเบฐเบเบฒเบเบเปเบฒเปเบเปเบเบปเบงเบเบดเบ. เบเบปเบงเบขเปเบฒเบ, เบเบฑเบเบเบตเปเบฎเปเบญเบเบเป 2 GiB เบเบญเบเบซเบเปเบงเบเบเบงเบฒเบกเบเปเบฒเปเบเปเปเบเปเบเบฝเบเปเบเป 200 MiB เบกเบต ~ 1,8 GiB เบเบญเบเบซเบเปเบงเบเบเบงเบฒเบกเบเปเบฒ "เปเบเบตเบ". เปเบเบดเบเปเบเบตเบเบเปเบฒเปเบเปเบเปเบฒเบ. เบซเบเบถเปเบเบชเบฒเบกเบฒเบเบเบฒเบเบเบฐเปเบเปเบเปเบเบฐเบกเบฒเบเบงเปเบฒ 1 GiB เบเบญเบเบซเบเปเบงเบเบเบงเบฒเบกเบเปเบฒเบเปเปเบฒเบเปเบญเบเบกเบตเบเปเบฒเปเบเปเบเปเบฒเบ ~ $10 เบเปเปเปเบเบทเบญเบ.
เบเบฒเบเบซเบผเบธเบเบเปเบญเบเบเบฒเบเบฎเปเบญเบเบเป CPU เบเบฒเบ 3000m เบซเบฒ ~ 400m เบเบปเบเบเปเบญเบเบเบฑเบเบเบฐเบเบฒเบเบญเบเบชเปเบฒเบฅเบฑเบเบงเบฝเบเบญเบทเปเบเปเปเบฅเบฐเบญเบฐเบเบธเบเบฒเบเปเบซเปเบเบธเปเบกเบเบฐเบซเบเบฒเบเบเปเบญเบเบเบงเปเบฒ.
"เบเบฒเบเปเบเป CPU เปเบเบเบชเบฐเปเบฅเปเบเบเบญเบเบเบปเบงเบขเปเบฒเบ EC2 เบกเบฑเบเบเบฐเบขเบนเปเปเบเบเบญเบเปเบเบเบญเบฑเบเบเบฒเบชเปเบงเบเบเบปเบงเปเบฅเบเบเบฝเบง,"
เปเบเปเบเบงเบเปเบฎเบปเบฒเบเปเบญเบเบเบฒเบเปเบซเปเบเบปเบเบเปเบฝเบเปเบเบเบเปเบฒเปเบเปเบเบฅเป YAML เปเบเปเปเบเป? เบเปเป, เปเบเบทเปเบญเบเบเบฑเบเบชเบฒเบกเบฒเบเปเบฎเบฑเบเปเบเปเบเบตเบเบงเปเบฒเบซเบผเบฒเบ! Kubernetes
เบเปเบญเบเบเบฝเบเบเปเบญเบเป
เบเบฒเบเปเบเป EC2 Spot Instances
เบชเบธเบเบเปเบฒเบเปเบเปเบเปเปเปเบเปเบขเปเบฒเบเบซเบเปเบญเบ, เบเปเบฒเปเบเปเบเปเบฒเบ AWS EC2 เบชเบฒเบกเบฒเบเบซเบผเบธเบเบฅเบปเบเปเบเปเปเบเบเบเบฒเบเปเบเป Spot instances เปเบเบฑเบ Kubernetes worker nodes
เบงเบดเบเบตเบเบฒเบเปเบฅเปเบ Kubernetes เปเบ EC2 Spot? เบกเบตเบซเบฅเบฒเบเบเบฒเบเปเบฅเบทเบญเบ: เปเบเปเบเปเบฅเบดเบเบฒเบเบเบฒเบเบชเปเบงเบเบเบตเบชเบฒเบกเปเบเบฑเปเบ SpotInst (เบเบฐเบเบธเบเบฑเบเปเบญเบตเปเบเบงเปเบฒ "Spot", เบขเปเบฒเบเบฒเบกเบเปเบญเบเบงเปเบฒเปเบเบฑเบเบซเบเบฑเบ), เบซเบผเบทเบเบฝเบเปเบเปเปเบเบตเปเบก Spot AutoScalingGroup (ASG) เปเบเบปเปเบฒเปเบเบเบธเปเบกเบเบญเบเบเปเบฒเบ. เบเบปเบงเบขเปเบฒเบ, เบเบตเปเปเบกเปเบ CloudFormation snippet เบชเปเบฒเบฅเบฑเบ "capacity-optimized" Spot ASG เบเบตเปเบกเบตเบซเบผเบฒเบเบเบฐเปเบเบเบเบปเบงเบขเปเบฒเบ:
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"
เบเบฑเบเบเบถเบเบเบฒเบเบญเบฑเบเบเปเบฝเบงเบเบฑเบเบเบฒเบเปเบเป Spot เบเบฑเบ Kubernetes:
- เบเปเบฒเบเบเปเบฒเปเบเบฑเบเบเปเบญเบเบเบฑเบเบเบฒเบ Spot terminations, เบเบปเบงเบขเปเบฒเบเปเบเบเบเบฒเบเบฅเบงเบก node เปเบกเบทเปเบญ instance เบเบทเบเบขเบธเบ
- Zalando เปเบเป
เบชเปเบญเบก autoscaling cluster เบขเปเบฒเบเปเบเบฑเบเบเบฒเบเบเบฒเบเบเบฑเบ node pool เบเบนเบฅเบดเบกเบฐเบชเบดเบ - เบเบธเบเบเบธเบ
เบชเบฒเบกเบฒเบเบเบฑเบเบเบฑเบ เบเบญเบกเบฎเบฑเบ "เบเบฒเบเบฅเบปเบเบเบฐเบเบฝเบ" เบเบญเบเบงเบฝเบเบเบตเปเบเบฐเบเปเบฒเปเบเบตเบเบเบฒเบเปเบ Spot
Summary
เบเปเบญเบเบซเบงเบฑเบเบงเปเบฒเปเบเบปเปเบฒเบเบฐเบเบปเบเปเบซเบฑเบเบเบฒเบเปเบเบทเปเบญเบเบกเบทเบเบตเปเบเปเบฒเบชเบฐเปเบซเบเบตเบเบตเปเปเบเบฑเบเบเบฐเปเบซเบเบเปเบเบเบฒเบเบซเบผเบธเบเบเปเบญเบเบเบฑเบเบเบตเบฅเบฒเบเบเบฒเบเบเบฑเบเบเบญเบเปเบเบปเปเบฒ. เบเปเบฒเบเบชเบฒเบกเบฒเบเบเบญเบเบซเบฒเปเบเบทเปเบญเปเบเบเบญเบเบเบปเบเบเบงเบฒเบกเบชเปเบงเบเปเบซเบเปเปเบเปเบขเบนเป
เบเบฒเบเบเบฐเบเบดเบเบฑเบเบเบตเปเบเบตเบเบตเปเบชเบธเบเบเบญเบเบเปเบฒเบเบชเปเบฒเบฅเบฑเบเบเบฒเบเบเบฐเบซเบเบฑเบเบเปเบฒเปเบเปเบเปเบฒเบเปเบเบเบฅเบฒเบงเบขเบนเปเปเบ Kubernetes เปเบกเปเบเบซเบเบฑเบ? เบเบฐเบฅเบธเบเบฒเปเบเปเบเปเบซเปเบเปเบญเบเบเบฒเบเบเบตเป
เปเบซเบผเปเบเบเปเปเบกเบนเบ: www.habr.com