èšäºã®ç¿»èš³ã¯ã³ãŒã¹éå§åå€ã«æºåãããŸãã .

Kubernetes ã䜿çšãããšãã«ã¯ã©ãŠãã®ã³ã¹ããç¯çŽããã«ã¯ã©ãããã°ããã§ãã? åäžã®é©åãªãœãªã¥ãŒã·ã§ã³ã¯ãããŸãããããã®èšäºã§ã¯ããªãœãŒã¹ããã广çã«ç®¡çããã¯ã©ãŠã ã³ã³ãã¥ãŒãã£ã³ã°ã®ã³ã¹ããåæžããã®ã«åœ¹ç«ã€ããã€ãã®ããŒã«ã«ã€ããŠèª¬æããŸãã
ãã®èšäºã¯ AWS ã® Kubernetes ã念é ã«çœ®ããŠæžããŸããããä»ã®ã¯ã©ãŠã ãããã€ããŒã«ã (ã»ãŒ) ãŸã£ããåãããã«é©çšã§ããŸãã ã¯ã©ã¹ã¿ãŒã«ã¯ãã§ã«èªåã¹ã±ãŒãªã³ã°ãæ§æãããŠãããšä»®å®ããŸã (ïŒã ãªãœãŒã¹ãåé€ããŠãããã€ã¡ã³ããã¹ã±ãŒã«ããŠã³ãããšãã¯ãŒã«ãŒ ããŒã (EC2 ã€ã³ã¹ã¿ã³ã¹) ã®ããªãŒããåæžãããå Žåã«ã®ã¿è²»çšãç¯çŽãããŸãã
ãã®èšäºã§ã¯ã次ã®å 容ã«ã€ããŠèª¬æããŸãã
- æªäœ¿çšã®ãªãœãŒã¹ãã¯ãªãŒã³ã¢ãããã ()
- å€åæéå€ã®ã¹ã±ãŒãªã³ã°ãæžãã ()
- æ°Žå¹³èªåã¹ã±ãŒãªã³ã° (HPA) ã䜿çšãã
- éå°ãªãªãœãŒã¹äºçŽã®åæž (ãVPA)
- ã¹ãããã€ã³ã¹ã¿ã³ã¹ã®äœ¿çš
æªäœ¿çšã®ãªãœãŒã¹ã®ã¯ãªãŒã³ã¢ãã
ããŒã¹ã®éãç°å¢ã§åãã®ã¯çŽ æŽãããããšã§ãã ç§ãã¡ã¯ãã¯ãããžãŒçµç¹ãæãã§ããŸã ã ãœãããŠã§ã¢é ä¿¡ã®é«éåã¯ãPR å°å ¥ããã¬ãã¥ãŒç°å¢ããããã¿ã€ããåæãœãªã¥ãŒã·ã§ã³ã®å¢å ãæå³ããŸãã ãã¹ãŠã Kubernetes äžã«ãããã€ãããŸãã ãã¹ãå±éãæåã§ã¯ãªãŒã³ã¢ããããæéã誰ã«ããã§ãããã? XNUMX é±éåã®å®éšãåé€ããããšã¯å¿ããããã¡ã§ãã ã¯ã©ãŠãã®è«æ±é¡ã¯ãéãå¿ãããã®ãåå ã§æçµçã«äžæããããšã«ãªããŸãã

(ããã³ã°ã»ãžã§ã€ã³ãã¹:
ãžã¶:
(åŒçš) ã³ãŒãªãŒã»ã¯ã€ã³:
誀解: AWS ã¢ã«ãŠã³ãã¯ãææãããŠãŒã¶ãŒã®æ°ã«ãã£ãŠæ±ºãŸããŸãã
äºå®: AWS ã¹ã³ã¢ã¯ãæ±ããŠãããšã³ãžãã¢ã®æ°ã®é¢æ°ã§ãã
ã€ã¯ã³ã»ã¯ã«ããœãïŒè¿çïŒïŒ
å®é: AWS ã¹ã³ã¢ã¯ãç¡å¹å/åé€ãå¿ãããã®ã®æ°ã®é¢æ°ã§ãã)
(kube-janitor) ã¯ã¯ã©ã¹ã¿ãŒã®ã¯ãªãŒã³ã¢ããã«åœ¹ç«ã¡ãŸãã 管çè ã®æ§æã¯ãã°ããŒãã«ãšããŒã«ã«ã®äž¡æ¹ã§äœ¿çšã§ããããã«æè»ã§ãã
- ã¯ã©ã¹ã¿ãŒå šäœã®ã«ãŒã«ã«ãããPR/ãã¹ãå±éã®æå€§åç¶æé (TTL) ãå®çŸ©ã§ããŸãã
- åã ã®ãªãœãŒã¹ã« janitor/ttl ã®æ³šéãä»ããããšãã§ããŸããããšãã°ã7 æ¥åŸã«ã¹ãã€ã¯/ãããã¿ã€ããèªåçã«åé€ããŸãã
äžè¬çãªã«ãŒã«ã¯ YAML ãã¡ã€ã«ã§å®çŸ©ãããŸãã ãã®ãã¹ã¯ãã©ã¡ãŒã¿ãéããŠæž¡ãããŸã --rules-file kube-管ç人ã§ã ãã¹ãŠã®åå空éãåé€ããã«ãŒã«ã®äŸã次ã«ç€ºããŸãã -pr- XNUMXæ¥åŸã®ååã§:
- id: cleanup-resources-from-pull-requests
resources:
- namespaces
jmespath: "contains(metadata.name, '-pr-')"
ttl: 2d次ã®äŸã§ã¯ã2020 幎ã®ãã¹ãŠã®æ°ãã Deployment/StatefulSet ã® Deployment ãããããã³ StatefulSet ãããã§ã®ã¢ããªã±ãŒã·ã§ã³ ã©ãã«ã®äœ¿çšãèŠå¶ããŸãããåæã«ãã®ã©ãã«ã䜿çšããªããã¹ãã®å®è¡ã XNUMX é±éèš±å¯ããŸãã
- 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: 7dkube-janitor ãå®è¡ããŠããã¯ã©ã¹ã¿ãŒã§æéå¶éä»ãã®ãã¢ã 30 åéå®è¡ããŸãã
kubectl run nginx-demo --image=nginx
kubectl annotate deploy nginx-demo janitor/ttl=30mã³ã¹ãå¢å ã®ãã XNUMX ã€ã®åå ã¯ãæ°žç¶ããªã¥ãŒã (AWS EBS) ã§ãã Kubernetes StatefulSet ãåé€ããŠãããã®æ°žç¶ããªã¥ãŒã (PVC - Persistent VolumeClaim) ã¯åé€ãããŸããã æªäœ¿çšã® EBS ããªã¥ãŒã ã«ãããæãããæ°çŸãã«ã®ã³ã¹ããç°¡åã«çºçããå¯èœæ§ããããŸãã Kubernetes Janitor ã«ã¯ãæªäœ¿çšã® PVC ãã¯ãªãŒã³ã¢ããããæ©èœããããŸãã ããšãã°ããã®ã«ãŒã«ã¯ãã¢ãžã¥ãŒã«ã«ãã£ãŠããŠã³ããããŠããããStatefulSet ãŸã㯠CronJob ã«ãã£ãŠåç §ãããŠããªããã¹ãŠã® PVC ãåé€ããŸãã
# ÑЎалОÑÑ Ð²Ñе PVC, кПÑПÑÑе Ме ÑЌПМÑОÑÐŸÐ²Ð°ÐœÑ Ðž Ма кПÑПÑÑе Ме ÑÑÑлаÑÑÑÑ StatefulSets
- id: remove-unused-pvcs
resources:
- persistentvolumeclaims
jmespath: "_context.pvc_is_not_mounted && _context.pvc_is_not_referenced"
ttl: 24hKubernetes Janitor ã¯ãã¯ã©ã¹ã¿ãŒãã¯ãªãŒã³ãªç¶æ ã«ä¿ã¡ãã¯ã©ãŠã ã³ã³ãã¥ãŒãã£ã³ã°ã®ã³ã¹ããåŸã ã«å¢å€§ããã®ãé²ãã®ã«åœ¹ç«ã¡ãŸãã å°å ¥ãšæ§æã®æé ã«ã€ããŠã¯ã次ã®ãšããã§ãã .
å€åæéå€ã®ã¹ã±ãŒãªã³ã°ãåæžãã
ãã¹ãããã³ã¹ããŒãžã³ã° ã·ã¹ãã ã¯ãéåžžãå¶æ¥æéå ã«ã®ã¿åäœããå¿ èŠããããŸãã ããã¯ãªãã£ã¹/管çããŒã«ãªã©ã®äžéšã®å®çšŒåã¢ããªã±ãŒã·ã§ã³ããéãããå¯çšæ§ããå¿ èŠãšãããäžæ©ã§ç¡å¹ã«ãªãå¯èœæ§ããããŸãã
(kube-downscaler) ã䜿çšãããšããŠãŒã¶ãŒãšãªãã¬ãŒã¿ãŒã¯å€åæéå€ã«ã·ã¹ãã ãã¹ã±ãŒã«ããŠã³ã§ããŸãã ãããã€ã¡ã³ããš StatefulSet ã¯ã¬ããªã«ããŒãã«ã¹ã±ãŒã«ã§ããŸãã CronJob ãäžæåæ¢ãããå¯èœæ§ããããŸãã Kubernetes Downscaler ã¯ãã¯ã©ã¹ã¿ãŒå šäœãXNUMX ã€ä»¥äžã®åå空éããŸãã¯åã ã®ãªãœãŒã¹ã«å¯ŸããŠæ§æãããŸãã ãã¢ã€ãã«æéããèšå®ããããšããéã«ãäœæ¥æéããèšå®ããããšãã§ããŸãã ããšãã°ãå€éã鱿«ã®ã¹ã±ãŒãªã³ã°ãã§ããã ãæžããã«ã¯ã次ã®ããã«ããŸãã
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 ã®è«æ±é¡ã«é¡èãªéããçããŸãã
ããããã¯ã©ã¹ã¿ãŒã®ãããŠã³ã¿ã€ã ãäžã«äœæ¥ããå¿
èŠãããå Žåã¯ã©ãããã°ããã§ãããã? downscaler/exclude: true ã¢ãããŒã·ã§ã³ã远å ããããšã§ãç¹å®ã®ãããã€ã¡ã³ããã¹ã±ãŒãªã³ã°ããæ°žä¹
ã«é€å€ã§ããŸãã 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èŠãŸã å°å ¥æé ãšè¿œå ãªãã·ã§ã³ã«èå³ãããå Žåã¯ã
æ°Žå¹³æ¹åã®èªåã¹ã±ãŒãªã³ã°ã䜿çšãã
å€ãã®ã¢ããªã±ãŒã·ã§ã³/ãµãŒãã¹ã¯åçãªèªã¿èŸŒã¿ãã¿ãŒã³ã«å¯Ÿå¿ããŠãããã¢ãžã¥ãŒã«ãã¢ã€ãã«ç¶æ ã®å Žåãããã°ããã«çšŒåã§åäœããå ŽåããããŸãã æå€§ããŒã¯è² è·ã«å¯ŸåŠããããã«ãããã®æ°žç¶çãªããªãŒããéçšããããšã¯çµæžçã§ã¯ãããŸããã Kubernetes ã¯ãªãœãŒã¹å šäœã«ãããæ°Žå¹³èªåã¹ã±ãŒãªã³ã°ããµããŒãããŸã (HPA)ã CPU 䜿çšçã¯ãå€ãã®å Žåãã¹ã±ãŒãªã³ã°ã®è¯ãææšãšãªããŸãã
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: UtilizationZalando ã¯ãã¹ã±ãŒãªã³ã°ã®ããã«ã«ã¹ã¿ã ã¡ããªã¯ã¹ãç°¡åã«æ¥ç¶ããããã®ã³ã³ããŒãã³ããäœæããŸããã (kube-metrics-adapter) ã¯ããããã®æ°Žå¹³èªåã¹ã±ãŒãªã³ã°çšã®ã«ã¹ã¿ã ã¡ããªã¯ã¹ãšå€éšã¡ããªã¯ã¹ãåéããŠæäŸã§ãããKubernetes ã®æ±çšã¡ããªã¯ã¹ ã¢ããã¿ã§ãã Prometheus ã¡ããªã¯ã¹ãSQS ãã¥ãŒããã®ä»ã®èšå®ã«åºã¥ããã¹ã±ãŒãªã³ã°ããµããŒãããŸãã ããšãã°ãã¢ããªã±ãŒã·ã§ã³èªäœã«ãã£ãŠ /metrics å ã® JSON ãšããŠè¡šãããã«ã¹ã¿ã ã¡ããªãã¯ã«ãããã€ã¡ã³ããæ¡åŒµããã«ã¯ã次ã䜿çšããŸãã
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: AverageValueHPA ã䜿çšããæ°Žå¹³èªåã¹ã±ãŒãªã³ã°ã®æ§æã¯ãã¹ããŒãã¬ã¹ ãµãŒãã¹ã®å¹çãåäžãããããã®ããã©ã«ã ã¢ã¯ã·ã§ã³ã® XNUMX ã€ã§ããå¿ èŠããããŸãã Spotify ã¯ãHPA ã«é¢ããçµéšãšæšå¥šäºé ã玹ä»ãããã¬ãŒã³ããŒã·ã§ã³ãè¡ã£ãŠããŸãã .
ãªãœãŒã¹ã®ãªãŒããŒãããã³ã°ãåæžãã
Kubernetes ã¯ãŒã¯ããŒãã¯ãããªãœãŒã¹ ãªã¯ãšã¹ãããéã㊠CPU/ã¡ã¢ãªã®ããŒãºã決å®ããŸãã CPU ãªãœãŒã¹ã¯ä»®æ³ã³ã¢ããŸãã¯ããäžè¬çã«ã¯ãããªã³ã¢ãã§æž¬å®ãããŸããããšãã°ã500m 㯠50% ã® vCPU ãæå³ããŸãã ã¡ã¢ãª ãªãœãŒã¹ã¯ãã€ãåäœã§æž¬å®ããã500 ã¡ã¬ãã€ããæå³ãã 500Mi ãªã©ã®äžè¬çãªãµãã£ãã¯ã¹ã䜿çšã§ããŸãã ãªãœãŒã¹ ãªã¯ãšã¹ãã¯ã¯ãŒã«ãŒ ããŒãã®å®¹éããããã¯ãããŸããã€ãŸãã1000 ã€ã® vCPU ãåããããŒãäžã§ 4m CPU ãªã¯ãšã¹ããæã€ãããã¯ãä»ã®ãããã䜿çšã§ãã vCPU ã 3 ã€ã ãæ®ããŸãã
ã¹ã©ãã¯ïŒè¶ éäºåïŒ èŠæ±ããããªãœãŒã¹ãšå®éã®äœ¿çšéã®å·®ã§ãã ããšãã°ã2 GiB ã®ã¡ã¢ãªãèŠæ±ããªãã 200 MiB ãã䜿çšããªããããã«ã¯ãçŽ 1,8 GiB ã®ãéå°ãã¡ã¢ãªããããŸãã éå°ã«ã¯ãéãããããŸãã 1 GiB ã®åé·ã¡ã¢ãªã«ã¯æãããçŽ 10 ãã«ã®è²»çšãããããšå€§ãŸãã«èŠç©ããããšãã§ããŸãã
(kube-resource-report) ã«ã¯è¶ éäºçŽã衚瀺ãããç¯çŽã®å¯èœæ§ã倿ããã®ã«åœ¹ç«ã¡ãŸãã

ã¢ããªã±ãŒã·ã§ã³ããã³ã³ãã³ãããšã«éèšãããè¶
éã瀺ããŸãã ããã«ããããªãœãŒã¹ã®éèŠãåæžã§ããå ŽæãèŠã€ããããšãã§ããŸãã çæããã HTML ã¬ããŒãã¯ããªãœãŒã¹äœ¿çšéã®ã¹ãããã·ã§ããã®ã¿ãæäŸããŸãã é©åãªãªãœãŒã¹èŠæ±ã倿ããã«ã¯ãé·æã«ããã CPU/ã¡ã¢ãªäœ¿çšéã確èªããå¿
èŠããããŸãã ããã¯ããå
žåçãªãCPU è² è·ã®é«ããµãŒãã¹ã® Grafana ã°ã©ãã§ãããã¹ãŠã®ãããã䜿çšããŠããã®ã¯ãèŠæ±ããã 3 ã€ã® CPU ã³ã¢ããã倧å¹
ã«å°ãªãã§ãã

CPU ãªã¯ãšã¹ãã 3000m ããçŽ 400m ã«åæžãããšãä»ã®ã¯ãŒã¯ããŒãçšã®ãªãœãŒã¹ãè§£æŸãããã¯ã©ã¹ã¿ãŒãå°ããã§ããŸãã
ãEC2 ã€ã³ã¹ã¿ã³ã¹ã®å¹³å CPU 䜿çšçã¯ãå€ãã®å ŽåãXNUMX æ¡ã®ããŒã»ã³ãç¯å²ã§æšç§»ããŠããŸããã ã EC2ã®å Žå YAML ãã¡ã€ã«å ã®äžéšã® Kubernetes ãªãœãŒã¹ ã¯ãšãªã®å€æŽã¯ç°¡åã§ãå€§å¹ ãªç¯çŽãå¯èœã§ãã
ããããYAML ãã¡ã€ã«ã®å€ã倿Žããããšãæ¬åœã«æãã§ããã§ãããã? ããããæ©æ¢°ãªããã£ãšããŸãã§ããŸãã Kubernetes (VPA) ã¯ãŸãã«ãããè¡ããŸããã¯ãŒã¯ããŒãã«å¿ããŠãªãœãŒã¹ã®èŠæ±ãšå¶çŽã調æŽããŸãã ããã¯ãVPA ã«ãã£ãŠæéã®çµéãšãšãã«é©å¿ããã Prometheus CPU ãªã¯ãšã¹ã (现ãéãç·) ã®ã°ã©ãã®äŸã§ãã

ã€ã³ãã©ã¹ãã©ã¯ãã£ã³ã³ããŒãã³ãçšã éèŠã§ãªãã¢ããªã±ãŒã·ã§ã³ã§ã VPA ã䜿çšã§ããŸãã
Fairwind ã®ããŒã«ã¯ãããŒã ã¹ããŒã¹å ã®å±éããšã« VPA ãäœæããããã·ã¥ããŒãã« VPA ã®æšå¥šäºé ã衚瀺ããŸãã ããã¯ãéçºè ãã¢ããªã±ãŒã·ã§ã³ã«é©å㪠CPU/ã¡ã¢ãª ãªã¯ãšã¹ããèšå®ããã®ã«åœ¹ç«ã¡ãŸãã

ã¡ãã£ãšããããšãæžããŸãã 2019幎ããããŠæè¿ã§ã¯ .
EC2 ã¹ãããã€ã³ã¹ã¿ã³ã¹ã®äœ¿çš
æåŸã«éèŠãªããšã§ãããã¹ããã ã€ã³ã¹ã¿ã³ã¹ã Kubernetes ã¯ãŒã«ãŒ ããŒããšããŠäœ¿çšããããšã§ãAWS EC2 ã®ã³ã¹ããåæžã§ããŸãã ã ã¹ããã ã€ã³ã¹ã¿ã³ã¹ã¯ããªã³ããã³ãäŸ¡æ Œãšæ¯èŒããŠæå€§ 90% å²åŒã§ãå©çšããã ããŸãã EC2 ã¹ãããã§ Kubernetes ãå®è¡ããã®ã¯è¯ãçµã¿åããã§ããå¯çšæ§ãé«ããã«ã¯ãè€æ°ã®ç°ãªãã€ã³ã¹ã¿ã³ã¹ ã¿ã€ããæå®ããå¿ èŠããããŸããã€ãŸããåãäŸ¡æ ŒãŸãã¯ããäœãäŸ¡æ Œã§ãã倧ããªããŒããå ¥æã§ããå¢å ãã容éãã³ã³ããåããã Kubernetes ã¯ãŒã¯ããŒãã§äœ¿çšã§ããŸãã
EC2 ã¹ãããã§ Kubernetes ãå®è¡ããã«ã¯ã©ãããã°ããã§ãã? ããã€ãã®ãªãã·ã§ã³ããããŸãã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"Kubernetes ã§ Spot ã䜿çšããå Žåã®æ³šæç¹:
- ã€ã³ã¹ã¿ã³ã¹ã®åæ¢æã«ããŒããããŒãžãããªã©ããŠãã¹ãããçµäºãåŠçããå¿ èŠããã
- ã¶ã©ã³ãã䜿çšãã ããŒãããŒã«ã®åªå é äœã䜿çšããå ¬åŒã¯ã©ã¹ã¿ãŒã®èªåã¹ã±ãŒãªã³ã°
- ã¹ãããããŒã ã¹ãããã§å®è¡ããã¯ãŒã¯ããŒãã®ãç»é²ããåãå ¥ãã
ãŸãšã
ããã§ç޹ä»ããããŒã«ã®ããã€ããã¯ã©ãŠãæéã®åæžã«åœ¹ç«ã€ããšãé¡ã£ãŠããŸãã èšäºã®å 容ã®ã»ãšãã©ã¯æ¬¡ã®å Žæã§ãèŠã€ããããšãã§ããŸãã .
Kubernetes ã§ã¯ã©ãŠã ã³ã¹ããç¯çŽããããã®ãã¹ã ãã©ã¯ãã£ã¹ã¯äœã§ãã? ãŸã§ãç¥ãããã ããã .
å®éãäºçŽãããã·ã¹ãã ãªãœãŒã¹ã«ãã£ãŠããŒãã®ã¹ã«ãŒããããäœäžããããã䜿çšå¯èœãª vCPU 㯠3 ã€æªæºã«ãªããŸãã Kubernetes ã¯ãç©çããŒãã®å®¹éãšãããããžã§ãã³ã°ãããããªãœãŒã¹ãåºå¥ããŸã ().
èšç®äŸ: 5 GiB ã®ã¡ã¢ãªãåãã 8 ã€ã® m84.large ã€ã³ã¹ã¿ã³ã¹ã¯ãæé¡ ~1 ãã« (eu-central-1ããªã³ããã³ã)ãã€ãŸã8/10 ããŒãã®ããããã³ã°ã¯æé¡çŽ $XNUMX ã§ãã
ãªã¶ãŒããã€ã³ã¹ã¿ã³ã¹ãSavings Plan ãªã©ãEC2 ã®è«æ±é¡ãåæžããæ¹æ³ã¯ä»ã«ããããããããŸããããã§ã¯ãããã®ãããã¯ã«ã€ããŠã¯èª¬æããŸãããããã²èª¿ã¹ãŠãã ããã
åºæïŒ habr.com
