ãµãŠã¹ããªããž ãœãªã¥ãŒã·ã§ã³ ã¢ãŒããã¯ãã§ãããSlurm æåž«ã§ãã Pavel Selivanov æ°ããDevOpsConf 2019 ã§ãã¬ãŒã³ããŒã·ã§ã³ãè¡ããŸããããã®è¬æŒã¯ãKubernetes ã®è©³çŽ°ã³ãŒã¹ãSlurm Megaãã®ãããã¯ã® XNUMX ã€ã§ãã
ã«ããã®äžã¯ã¬ããŒãã®è»¢åã§ãã
åæ¥è ã®çæ§ããããŠåœŒãã«å ±æããŠãã ããçæ§ãããã«ã¡ã¯ã ä»æ¥ã¯å®å šæ§ã«ã€ããŠã話ããŸãã
ä»æ¥ã¯ããŒã«ã«èŠåå¡ãããããããããã ã ç§ãã»ãã¥ãªãã£ã®äžçã®çšèªã䜿çšããå Žåãã客æ§ã®æ £ç¿ãšãŸã£ããç°ãªãå Žåã¯ãããããããè©«ã³ç³ãäžããŸãã
ããŸããŸãçŽ XNUMX ãæåã«ããããªã㯠Kubernetes ã¯ã©ã¹ã¿ãŒã XNUMX ã€èŠã€ããŸããã ãããªãã¯ãšã¯ãn çªç®ã®åå空éãååšããããšãæå³ãããããã®åå空éã«ã¯ãåå空éå ã§åé¢ããããŠãŒã¶ãŒãååšããŸãã ãããã®ãŠãŒã¶ãŒã¯ãã¹ãŠç°ãªãäŒç€Ÿã«å±ããŠããŸãã ããŠããã®ã¯ã©ã¹ã¿ãŒã¯ CDN ãšããŠäœ¿çšãããããšãæ³å®ãããŠããŸããã ã€ãŸããã¯ã©ã¹ã¿ãŒãæäŸãããããã«ãŠãŒã¶ãŒãæäŸãããããã«ããåå空éã«ç§»åããŠãããã³ãããããã€ããŸãã
ç§ã®åã®äŒç€Ÿã¯ãã®ãããªãµãŒãã¹ã販売ããããšããŠããŸããã ãããŠããã®ãœãªã¥ãŒã·ã§ã³ãé©åãã©ããã確èªããããã«ã¯ã©ã¹ã¿ãŒã調æ»ããããã«äŸé ŒãããŸããã
ãã®ã¯ã©ã¹ã¿ãŒã«æ¥ãŸããã ç§ã«äžããããæš©éãšåå空éã¯éãããŠããŸããã ããã«ãã人ãã¡ã¯å®å šãšã¯äœããç解ããŠããŸããã 圌ãã¯ãKubernetes ã®ããŒã«ããŒã¹ã®ã¢ã¯ã»ã¹å¶åŸ¡ (RBAC) ã«ã€ããŠèªã¿ãŸããããããŠããããã€ã¡ã³ããšã¯å¥ã«ããããèµ·åã§ããªãããã«ããããããæ²ããŸããã ãããã€ã¡ã³ããªãã§ããããèµ·åããããšã§è§£æ±ºããããšããŠããåé¡ã¯èŠããŠããŸããããæ¬åœã«ãããã ããèµ·åãããã£ãã®ã§ãã 幞éãç¥ã£ãŠãã¯ã©ã¹ã¿ãŒå ã§èªåã«ã©ã®ãããªæš©éãããã®ãââãäœãã§ããã®ããäœãã§ããªãã®ããã¯ã©ã¹ã¿ãŒã§äœãå°ç¡ãã«ãªã£ãŠããã®ãã確èªããããšã«ããŸããã åæã«ãRBAC ã§äœãééã£ãŠèšå®ãããŠãããã«ã€ããŠã説æããŸãã
ããŸããŸãXNUMX å以å ã«ã¯ã©ã¹ã¿ãŒã®ç®¡çè ãåãåããé£æ¥ãããã¹ãŠã®åå空éã調ã¹ããã§ã«ãµãŒãã¹ãè³Œå ¥ããŠå±éããŠããäŒæ¥ã®çšŒåäžã®éçšããã³ãã確èªããŸããã ç§ã¯èª°ãã®åã«è¡ããã¡ã€ã³ããŒãžã«æªå£ãèŒããã®ããããããŠæ¢ããããŸããã§ããã
ç§ãã©ã®ããã«ãããè¡ã£ããããããŠãããã身ãå®ãæ¹æ³ãäŸãæããŠèª¬æããŸãã
ã§ããã®åã«ãèªå·±çŽ¹ä»ããããŠãã ããã ç§ã®ååã¯ããã«ã»ã»ãªãããã§ãã ç§ã¯ãµãŠã¹ããªããžã®å»ºç¯å®¶ã§ãã ç§ã¯ KubernetesãDevOpsããã®ä»ããããçš®é¡ã®é«åºŠãªããšãç解ããŠããŸãã ãµãŠã¹ããªããžã®ãšã³ãžãã¢ãšç§ã¯ããããã¹ãŠãæ§ç¯ããŠãããç§ã¯ã³ã³ãµã«ãã£ã³ã°ãè¡ã£ãŠããŸãã
ç§ãã¡ã®äž»ãªæŽ»åã«å ããŠãæè¿ã§ã¯ Slurms ãšãããããžã§ã¯ããç«ã¡äžããŸããã ç§ãã¡ã¯ãKubernetes ã䜿çšããèœåãäžè¬ã®äººã«å°ãã§ãæäŸããK8 ã䜿çšããæ¹æ³ãä»ã®äººã«æããããšããŠããŸãã
ä»æ¥ã¯äœã«ã€ããŠè©±ããŸããããïŒ ã¬ããŒãã®ããŒãã¯æããã§ããKubernetes ã¯ã©ã¹ã¿ãŒã®ã»ãã¥ãªãã£ã«é¢ãããã®ã§ãã ãããããã®ãããã¯ã¯éåžžã«å€§ããªãã®ã§ãããããç§ã絶察ã«è©±ããªãããšãããã«æ確ã«ããããšæããŸãã ã€ã³ã¿ãŒãããäžã§ãã§ã«äœçŸåã䜿çšãããŠããé³è ãªçšèªã«ã€ããŠã¯è©±ããŸããã ããããçš®é¡ã® RBAC ãšèšŒææžã
Kubernetes ã¯ã©ã¹ã¿ãŒã®ã»ãã¥ãªãã£ã«é¢ããŠç§ãšååãèŠããã§ããããšã«ã€ããŠè©±ããŸãã ãããã®åé¡ã¯ãKubernetes ã¯ã©ã¹ã¿ãŒãæäŸãããããã€ããŒã®éã§ããåœç€Ÿã«æ¥ãã¯ã©ã€ã¢ã³ãã®éã§ãçºçããŠããŸãã ããã«ã¯ãä»ã®ã³ã³ãµã«ãã£ã³ã°ç®¡çäŒç€Ÿããåœç€Ÿã«ãã£ãŠæ¥ãã¯ã©ã€ã¢ã³ããããåæ§ã§ãã ã€ãŸããæ²åã®èŠæš¡ã¯å®éã«ã¯éåžžã«å€§ããã®ã§ãã
ä»æ¥ã話ããããã€ã³ãã¯æåéã次㮠XNUMX ã€ã§ãã
- ãŠãŒã¶ãŒæš©éãšãããæš©éã ãŠãŒã¶ãŒæš©éãšãããæš©éã¯åããã®ã§ã¯ãããŸããã
- ã¯ã©ã¹ã¿ãŒã«é¢ããæ å ±ãåéããŸãã ãã®ã¯ã©ã¹ã¿ãŒã«å¯Ÿããç¹å¥ãªæš©éããªããŠããã¯ã©ã¹ã¿ãŒããå¿ èŠãªæ å ±ããã¹ãŠåéã§ããããšã瀺ããŸãã
- ã¯ã©ã¹ã¿ãŒã«å¯Ÿãã DoS æ»æã æ å ±ãéãŸããªãå Žåã¯ãããã«ããŠãã¯ã©ã¹ã¿ãŒãå ¥ããããšã«ãªããŸãã ã¯ã©ã¹ã¿å¶åŸ¡èŠçŽ ã«å¯Ÿãã DoS æ»æã«ã€ããŠèª¬æããŸãã
ç§ãèšåãããã XNUMX ã€ã®äžè¬çãªããšã¯ãç§ãããããã¹ãŠããã¹ãããçµæã§ããããã¹ãŠãæ©èœããããšã¯ééããªãèšããŸãã
Kubespray ã䜿çšãã Kubernetes ã¯ã©ã¹ã¿ãŒã®ã€ã³ã¹ããŒã«ãåºæ¬ãšããŸãã ç¥ããªã人ããããããããŸããããããã¯å®éã«ã¯ Ansible ã®ããŒã«ã®ã»ããã§ãã ç§ãã¡ã¯ä»äºã§åžžã«ããã䜿çšããŠããŸãã è¯ãç¹ã¯ãã©ãã«ã§ã転ãããããšã§ããéçã®äžãé²ã®ã©ããã«è»¢ããããšãã§ããŸãã ååãšããŠãXNUMX ã€ã®ã€ã³ã¹ããŒã«æ¹æ³ããã¹ãŠã«é©çšãããŸãã
ãã®ã¯ã©ã¹ã¿ãŒã«ã¯ Kubernetes v1.14.5 ãå«ãŸããŸãã ããããèå¯ãã Cube ã¯ã©ã¹ã¿ãŒå šäœã¯åå空éã«åå²ãããååå空éã¯å¥åã®ããŒã ã«å±ãããã®ããŒã ã®ã¡ã³ããŒã¯ååå空éã«ã¢ã¯ã»ã¹ã§ããŸãã ç°ãªãåå空éã«ç§»åããããšã¯ã§ãããèªåèªèº«ã®åå空éã«ã®ã¿ç§»åããŸãã ãã ããã¯ã©ã¹ã¿ãŒå šäœã«å¯Ÿããæš©éãæã€ç¹å®ã®ç®¡çè ã¢ã«ãŠã³ããååšããŸãã
æåã«ã¯ã©ã¹ã¿ãŒã«å¯Ÿãã管çè æš©éãååŸããããšãçŽæããŸããã Kubernetes ã¯ã©ã¹ã¿ãŒãç Žå£ããããã«ç¹å¥ã«æºåãããããããå¿ èŠã§ãã å¿ èŠãªã®ã¯ãããã Kubernetes ã¯ã©ã¹ã¿ãŒã«é©çšããããšã ãã§ãã
kubectl apply -f pod.yaml
ãã®ãããã¯ãKubernetes ã¯ã©ã¹ã¿ãŒã®ãã¹ã¿ãŒã® 98 ã€ã«å°çããŸãã ãã®åŸãã¯ã©ã¹ã¿ãŒã¯ admin.conf ãšãããã¡ã€ã«ãåãã§è¿ããŸãã Cube ã§ã¯ããã®ãã¡ã€ã«ã«ãã¹ãŠã®ç®¡çè 蚌ææžãä¿åãããåæã«ã¯ã©ã¹ã¿ãŒ API ãæ§æãããŸãã ããã«ãããKubernetes ã¯ã©ã¹ã¿ãŒã® XNUMX% ã«ç®¡çè ã¢ã¯ã»ã¹ãååŸããããšãããã«ç°¡åã«ãªãããããããŸãã
ç¹°ãè¿ããŸããããã®ãããã¯ã¯ã©ã¹ã¿ãŒå ã® XNUMX 人ã®éçºè ã«ãã£ãŠäœæããããã®éçºè ã¯èªåã®ææ¡ã XNUMX ã€ã®å°ããªåå空éã«ãããã€ããã¢ã¯ã»ã¹æš©ãæã¡ããã¹ãŠ RBAC ã«ãã£ãŠå¶éãããŠããŸãã 圌ã«ã¯äœã®æš©å©ããããŸããã§ããã ããããããã§ã蚌ææžã¯è¿éãããŸããã
ãããŠä»åºŠã¯ç¹å¥ã«æºåããããããã«ã€ããŠã§ãã ä»»æã®ç»åã«å¯ŸããŠå®è¡ããŸãã debian:jessie ãäŸã«ããŠã¿ãŸãããã
ãããªãã®ããããŸãã
tolerations:
- effect: NoSchedule
operator: Exists
nodeSelector:
node-role.kubernetes.io/master: ""
å¯å®¹ãšã¯äœã§ããïŒ Kubernetes ã¯ã©ã¹ã¿ãŒå ã®ãã¹ã¿ãŒã¯éåžžããã€ã³ããšåŒã°ãããã®ã§ããŒã¯ãããŸãã ãããŠããã®ãææãã®æ¬è³ªã¯ããããããã¹ã¿ãŒããŒãã«å²ãåœãŠãããšãã§ããªããšããããšã§ãã ãããããããã«ãææãã«å¯Ÿããèæ§ãããããšããããã瀺ã人ã¯èª°ãããŸããã 蚱容ã»ã¯ã·ã§ã³ã§ã¯ãäžéšã®ããŒãã« NoSchedule ãããå Žåããã®ããŒãã¯ãã®ãããªææã«å¯ŸããŠèæ§ããããåé¡ã¯ãªããšè¿°ã¹ãŠããã ãã§ãã
ããã«ãç§ãã¡ã®ã¢ã³ããŒã¯å¯å®¹ã§ããã ãã§ãªãããã¹ã¿ãŒãç¹ã«ã¿ãŒã²ããã«ããããšèããŠãããšèšããŸãã ãªããªãããã¹ã¿ãŒã¯ç§ãã¡ãå¿ èŠãšããæããããããã®ãã€ãŸããã¹ãŠã®èšŒææžãæã£ãŠããããã§ãã ãããã£ãŠãnodeSelector ãšåŒã³ãŸãããã¹ã¿ãŒã«ã¯æšæºã©ãã«ããããã¯ã©ã¹ã¿ãŒå ã®ãã¹ãŠã®ããŒããããã¹ã¿ãŒã§ããããŒããæ£ç¢ºã«éžæã§ããŸãã
ãã®XNUMXã€ã®ã»ã¯ã·ã§ã³ã§åœŒã¯ééããªããã¹ã¿ãŒã«å°éããŸãã ãããŠåœŒã¯ããã«äœãããšãèš±ãããã§ãããã
ããããç§ãã¡ã¯ãã¹ã¿ãŒã®ãšããã«æ¥ãã ãã§ã¯ååã§ã¯ãããŸããã ããã§ã¯äœãåŸãããŸããã 次ã«ã次㮠XNUMX ã€ã®ããšã説æããŸãã
hostNetwork: true
hostPID: true
èµ·åããããããã«ãŒãã«åå空éããããã¯ãŒã¯åå空éãããã³ PID åå空éã«ååšããããšãæå®ããŸãã ãããããã¹ã¿ãŒäžã§èµ·åããããšããã®ããŒãã®å®éã®ã©ã€ã ã€ã³ã¿ãŒãã§ã€ã¹ããã¹ãŠè¡šç€ºãããã¹ãŠã®ãã©ãã£ãã¯ããªãã¹ã³ãããã¹ãŠã®ããã»ã¹ã® PID ã確èªã§ããããã«ãªããŸãã
ããããããã¯å°ããªããšã®åé¡ã§ãã etcd ã䜿çšããŠãå¿ èŠãªãã®ãèªã¿åã£ãŠãã ããã
æãèå³æ·±ãã®ã¯ãããã©ã«ãã§ååšãããã® Kubernetes æ©èœã§ãã
volumeMounts:
- mountPath: /host
name: host
volumes:
- hostPath:
path: /
type: Directory
name: host
ãããŠãã®æ¬è³ªã¯ããã®ã¯ã©ã¹ã¿ãŒã«å¯Ÿããæš©éããªããŠããèµ·åãããããå ã§ãhostPath ã¿ã€ãã®ããªã¥ãŒã ãäœæããããšèšããããšã§ãã ããã¯ãèµ·åãããã¹ããããã¹ãååŸãããããããªã¥ãŒã ãšããŠååŸããããšãæå³ããŸãã ãããŠããããããã¹ãããšããååã«ããŸãã ãã® hostPath å šäœããããå ã«ããŠã³ãããŸãã ãã®äŸã§ã¯ã/host ãã£ã¬ã¯ããªã«ç§»åããŸãã
ããäžåºŠç¹°ãè¿ããŸãã ãããã«ããã¹ã¿ãŒã«æ¥ãŠããã㧠hostNetwork ãš hostPID ãååŸãããã¹ã¿ãŒã®ã«ãŒãå šäœããã®ãããå ã«ããŠã³ãããããã«æ瀺ããŸããã
Debian ã§ã¯ bash ãå®è¡ãããŠããããã® bash 㯠root ã§å®è¡ãããããšãããããŸãã ã€ãŸããKubernetes ã¯ã©ã¹ã¿ãŒå ã§æš©éãæããã«ããã¹ã¿ãŒäžã§ root ãååŸããã ãã§ãã
次ã«ãå šäœã®ã¿ã¹ã¯ã¯ããµããã£ã¬ã¯ã㪠/host /etc/kubernetes/pki ã«ç§»åããããã«ããã¯ã©ã¹ã¿ãŒã®ãã¹ãŠã®ãã¹ã¿ãŒèšŒææžãååŸããããã«å¿ããŠã¯ã©ã¹ã¿ãŒç®¡çè ã«ãªãããšã§ãã
ãã®ããã«èŠããšããŠãŒã¶ãŒãã©ã®ãããªæš©éãæã£ãŠãããã«é¢ä¿ãªãããããã¯ãããã«ãããæãå±éºãªæš©éã®äžéšã§ãã
ã¯ã©ã¹ã¿ãŒã®äžéšã®åå空éã§ããããå®è¡ããæš©éãããå Žåããã®ãããã«ã¯ããã©ã«ãã§ãããã®æš©éãäžããããŸãã ç¹æš©ä»ãããããå®è¡ã§ããŸãããããã¯éåžžãããŒãäžã®ãã¹ãŠã®æš©éã§ãããäºå®äž root ã§ãã
ç§ã®ãæ°ã«å ¥ãã¯RootãŠãŒã¶ãŒã§ãã ãããŠãKubernetes ã«ã¯ãã®ãéã«ãŒããšããŠå®è¡ããªãã·ã§ã³ããããŸãã ããã¯ããã«ãŒããã®ä¿è·ã®äžçš®ã§ãã ãã¢ã«ããã¢ãŠã€ã«ã¹ãã£ãŠãåç¥ã§ããïŒ ããããªããçªç¶ããã«ãŒã«ãªã£ãŠç§ã® Kubernetes ã¯ã©ã¹ã¿ãŒã«æ¥ããšããããç§ãã¡äžæãªç®¡çè ã¯æ¬¡ã®ããã«å°ããŸãã ããããªããšããããå ã®ããã»ã¹ã root ã§å®è¡ããããšã«ãªããç°¡åã«ç§ããããã³ã°ããŠããŸãããšã«ãªããŸãã èªåã®èº«ã¯èªåã§å®ã£ãŠãã ãããã
ç§ã®èãã§ã¯ããã¹ã ãã¹ã®ããªã¥ãŒã ã¯ãKubernetes ã¯ã©ã¹ã¿ãŒããæãŸããçµæãåŸãæãéãæ¹æ³ã§ãã
ãããããããã©ãããã°ããã®ã§ããããïŒ
Kubernetes ã«åºäŒã£ãæ®éã®ç®¡çè
ã¯æ¬¡ã®ãããªèããæ±ãã¯ãã§ããããããèšã£ãã§ããããKubernetes ã¯æ©èœããŸããã ç©Žã空ããŠããŸãã ãããŠãã¥ãŒãå
šäœã¯ã§ãããã ãã å®éãããã¥ã¡ã³ããšãããã®ãããããããèŠããšã次ã®ã»ã¯ã·ã§ã³ããããŸãã
ãã㯠yaml ãªããžã§ã¯ãã§ããKubernetes ã¯ã©ã¹ã¿ãŒå ã«äœæã§ããŸããããã¯ãç¹ã«ãããã®èª¬æã§ã»ãã¥ãªãã£ã®åŽé¢ãå¶åŸ¡ããŸãã ã€ãŸããå®éã«ã¯ãèµ·åæã«ãããå ã«ããä»»æã® hostNetworkãhostPIDãç¹å®ã®ããªã¥ãŒã ã¿ã€ãã䜿çšããæš©éãå¶åŸ¡ããŸãã ããã ã»ãã¥ãªã㣠ããªã·ãŒãå©çšãããšãããããã¹ãŠã説æã§ããŸãã
ããã ã»ãã¥ãªã㣠ããªã·ãŒã§æãèå³æ·±ãç¹ã¯ãKubernetes ã¯ã©ã¹ã¿ãŒã§ã¯ããã¹ãŠã® PSP ã€ã³ã¹ããŒã©ãŒããŸã£ããèšè¿°ãããŠããªãã ãã§ãªããåã«ããã©ã«ãã§ç¡å¹ã«ãªã£ãŠãããšããããšã§ãã ããã ã»ãã¥ãªã㣠ããªã·ãŒã¯ãã¢ãããã·ã§ã³ ãã©ã°ã€ã³ã䜿çšããŠæå¹ã«ãªããŸãã
ããŠãããã ã»ãã¥ãªã㣠ããªã·ãŒãã¯ã©ã¹ã¿ãŒã«ãããã€ããŸããããåå空éã«ç®¡çè ã®ã¿ãã¢ã¯ã»ã¹ã§ããããã€ãã®ãµãŒãã¹ ãããããããšããŸãã ãã以å€ã®å Žåã¯ãã¹ãŠããããã®æš©éãå¶éãããŠãããšããŸãã ã»ãšãã©ã®å Žåãéçºè ã¯ã¯ã©ã¹ã¿ãŒå ã§ç¹æš©ä»ãããããå®è¡ããå¿ èŠããªãããã§ãã
ãããŠãç§ãã¡ã«ãšã£ãŠã¯ãã¹ãŠãããŸããã£ãŠããããã§ãã ãããŠãKubernetes ã¯ã©ã¹ã¿ãŒã¯ XNUMX åã§ãããã³ã°ãããããšã¯ãããŸããã
åé¡ããããŸãã Kubernetes ã¯ã©ã¹ã¿ãŒã䜿çšããŠããå Žåã¯ãã¯ã©ã¹ã¿ãŒã«ã¢ãã¿ãªã³ã°ãã€ã³ã¹ããŒã«ãããŠããå¯èœæ§ããããŸãã ç§ã¯ãã¯ã©ã¹ã¿ãŒã«ã¢ãã¿ãªã³ã°æ©èœãããå Žåããã®ã¯ã©ã¹ã¿ãŒã¯ Prometheus ãšåŒã°ããã ãããšããäºæ³ããŸãã
ããããã話ãããããšã¯ãPrometheus ãªãã¬ãŒã¿ãŒãšçŽç²ãªåœ¢åŒã§æäŸããã Prometheus ã®äž¡æ¹ã«åœãŠã¯ãŸããŸãã åé¡ã¯ã管çè ãã¯ã©ã¹ã¿ãŒã«ããã«åå ãããããšãã§ããªãå Žåã¯ãããã«èª¿æ»ããå¿ èŠãããããšãæå³ãããšããããšã§ãã ããªãã®ç£èŠã®å©ããåããŠæ€çŽ¢ããããšãã§ããŸãã
ããããå šå¡ã Habré ã«é¢ããåãèšäºãèªãã§ãããã¢ãã¿ãªã³ã°ã¯ã¢ãã¿ãªã³ã°åå空éã«é 眮ãããŠããŸãã ãã«ã ãã£ãŒãã¯ã誰ã«ãšã£ãŠãã»ãŒåãããã«åŒã°ããŸãã Helm install stack/prometheus ãå®è¡ãããšãã»ãŒåãååã«ãªããšæããŸãã ãããŠãããããã¯ã©ã¹ã¿ãŒå ã® DNS åãæšæž¬ããå¿ èŠãããããŸããã ããã¯æšæºã ããã§ãã
次ã«ãç¹å®ã®ããããå®è¡ã§ããç¹å®ã® dev ns ããããŸãã ãããŠããã®ããããã次ã®ãããªããšãè¡ãã®ã¯éåžžã«ç°¡åã§ãã
$ curl http://prometheus-kube-state-metrics.monitoring
prometheus-kube-state-metrics ã¯ãKubernetes API èªäœããã¡ããªã¯ã¹ãåéãã Prometheus ãšã¯ã¹ããŒã¿ãŒã® XNUMX ã€ã§ãã ããã«ã¯ãã¯ã©ã¹ã¿ãŒå ã§äœãå®è¡ãããŠããããã¯ã©ã¹ã¿ãŒã§ã©ã®ãããªåé¡ãçºçããŠããããªã©ã倧éã®ããŒã¿ããããŸãã
ç°¡åãªäŸãšããŠ:
kube_pod_container_info{namespace=âkube-systemâ,pod=âkube-apiserver-k8s-1â³,container=âkube-apiserverâ,image=
ãgcr.io/google-containers/kube-apiserver:v1.14.5ã
,image_id=»docker-pullable://gcr.io/google-containers/kube- apiserver@sha256:e29561119a52adad9edc72bfe0e7fcab308501313b09bf99df4a96 38ee634989â³,container_id=»docker://7cbe7b1fea33f811fdd8f7e0e079191110268f2 853397d7daf08e72c22d3cf8b»} 1
ç¹æš©ã®ãªããããããåçŽãªcurlãªã¯ãšã¹ããè¡ãããšã§ã次ã®æ å ±ãååŸã§ããŸãã å®è¡ããŠãã Kubernetes ã®ããŒãžã§ã³ãããããªãå Žåã§ããç°¡åã«æããŠããããŸãã
ãããŠæãèå³æ·±ãã®ã¯ãkube-state-metrics ã«ã¢ã¯ã»ã¹ããã ãã§ãªããPrometheus èªäœã«ãåæ§ã«ç°¡åã«çŽæ¥ã¢ã¯ã»ã¹ã§ããããšã§ãã ããããã¡ããªã¯ã¹ãåéã§ããŸãã ããããã¡ããªã¯ã¹ãæ§ç¯ããããšãã§ããŸãã çè«äžã§ããPrometheus ã®ã¯ã©ã¹ã¿ãŒãããã®ãããªã¯ãšãªãæ§ç¯ããããšãã§ããåã«ã¯ãšãªããªãã«ããã ãã§ãã ãããŠãã¯ã©ã¹ã¿ãŒããã®ç£èŠã¯å®å šã«åæ¢ããŸãã
ãããŠããã§ãå€éšã¢ãã¿ãªã³ã°ãããªãã®ã¢ãã¿ãªã³ã°ãç£èŠããŠãããã©ãããšããçåãçããŸãã ç§èªèº«ã«åœ±é¿ãäžããããšãªããKubernetes ã¯ã©ã¹ã¿ãŒã§éçšããæ©äŒãåŸãŸããã ããç£èŠããªãã®ã§ãç§ãããã§æŽ»åããŠããããšããæ°ã¥ããªãã§ãããã
PSP ãšåãããã«ãKubernetes ã Prometheus ãªã©ã®æŽŸæãªãã¯ãããžããã¹ãŠæ©èœãããç©Žã ããã§ããããšãåé¡ã®ããã«æããããŸãã ããŸãã
ãããªããšãããã§ããïœ
ããªããæ®éã®ç®¡çè ã§ããã°ããããã¯ãŒã¯ ããªã·ãŒã«ã€ããŠã¯ããããåãªãå¥ã® yaml ã§ãããã¯ã©ã¹ã¿ãŒå ã«ãã§ã«å€æ°ååšããããšãç¥ã£ãŠããã§ãããã ãŸããäžéšã®ãããã¯ãŒã¯ ããªã·ãŒã¯æããã«å¿ èŠãããŸããã ãŸãããããã¯ãŒã¯ ããªã·ãŒãäœã§ããããèªãã ãšããŠãããã㯠Kubernetes ã® yaml ãã¡ã€ã¢ãŠã©ãŒã«ã§ãããåå空ééããããéã®ã¢ã¯ã»ã¹æš©ãå¶éã§ãããããKubernetes ã® yaml 圢åŒã®ãã¡ã€ã¢ãŠã©ãŒã«ã¯æ¬¡ã®æœè±¡åã«åºã¥ããŠãããšç¢ºä¿¡ã§ããŸãã ...ãããããããã ããã¯çµ¶å¯Ÿã«å¿ èŠãããŸããã
ããšãã»ãã¥ãªãã£å°é家ã«ãKubernetes ã䜿çšãããšéåžžã«ç°¡åã§ã·ã³ãã«ãªãã¡ã€ã¢ãŠã©ãŒã«ãæ§ç¯ã§ããããšããããŠéåžžã«è©³çŽ°ãªãã¡ã€ã¢ãŠã©ãŒã«ãæ§ç¯ã§ããããšãäŒããŠããªãã£ããšããŠãã§ãã 圌ããããããŸã ç¥ãããããªãã«è¿·æããããªãå Žåã¯ãããŸããã¡ããã ããã¡ããã ãâŠããšãªããŸããããããã«ãããã¯ã©ã¹ã¿ãŒããååŸã§ããããã€ãã®ãµãŒãã¹ ãã¬ãŒã¹ãžã®ã¢ã¯ã»ã¹ããããã¯ãããããã¯ãŒã¯ ããªã·ãŒãå¿ èŠã§ããäœã®èš±å¯ããªãã«ã
äžèšã®äŸã®ããã«ãæš©éããªããŠããKubernetes ã¯ã©ã¹ã¿ãŒå ã®ä»»æã®åå空éãã kube ç¶æ ã¡ããªã¯ã¹ãååŸã§ããŸãã ãããã¯ãŒã¯ ããªã·ãŒã«ãããä»ã®ãã¹ãŠã®åå空éããç£èŠåå空éãžã®ã¢ã¯ã»ã¹ãé®æãããŠããŸããããã ãã§ããã¢ã¯ã»ã¹ããªããŠãåé¡ã¯ãããŸããã æšæºã® Prometheus ãšãªãã¬ãŒã¿ãŒã«ãã Prometheus ã®äž¡æ¹ã«ååšãããã¹ãŠã®ãã£ãŒãã«ã¯ãhelm å€ã«åçŽã«ãããã¯ãŒã¯ ããªã·ãŒãæå¹ã«ãããªãã·ã§ã³ããããŸãã é»æºããªã³ã«ããã ãã§æ©èœããŸãã
å®ã¯ããã§åé¡ã XNUMX ã€ãããŸãã æ®éã®ã²ããçããã管çè ã§ããã°ããããã¯ãŒã¯ ããªã·ãŒã¯å¿ èŠãªããšå€æããå¯èœæ§ãé«ãã§ãããã ãããŠãHabr ãªã©ã®ãªãœãŒã¹ã«é¢ããããããçš®é¡ã®èšäºãèªãã åŸãç¹ã«ãã¹ã ã²ãŒããŠã§ã€ ã¢ãŒãã䜿çšããå Žåã¯ããã©ã³ãã«ãéžæã§ããæè¯ã®éžæã§ãããšå€æããŸããã
äœãããŸããïŒ
Kubernetes ã¯ã©ã¹ã¿ãŒã«ãããããã¯ãŒã¯ ãœãªã¥ãŒã·ã§ã³ãåãããã€ããããããæ©èœçãªãã®ã«çœ®ãæãããããŠã¿ãŠãã ããã ããšãã°ãåããã£ãªã³ã®å Žåã ããããããã«èšã£ãŠããããã®ã¯ãKubernetes ãåäœããŠããã¯ã©ã¹ã¿ãŒå ã®ãããã¯ãŒã¯ ãœãªã¥ãŒã·ã§ã³ãå€æŽããã¿ã¹ã¯ã¯ããŸã£ããç°¡åã§ã¯ãªããšããããšã§ãã ç§ã¯ããã XNUMX å解ããŸãã (ãã ããã©ã¡ããçè«äž) ããSlurms ã§ãã®è§£ãæ¹ã瀺ããŸããã åŠçåãã«ãKubernetes ã¯ã©ã¹ã¿ãŒå ã®ãããã¯ãŒã¯ ãœãªã¥ãŒã·ã§ã³ãå€æŽããæ¹æ³ã瀺ããŸããã ååãšããŠãå®çšŒåã¯ã©ã¹ã¿ãŒã§ããŠã³ã¿ã€ã ãçºçããªãããã«åªããããšãã§ããŸãã ããããããããæåããªãã§ãããã
ãããŠããã®åé¡ã¯å®éã«ã¯éåžžã«ç°¡åã«è§£æ±ºãããŸãã ã¯ã©ã¹ã¿ãŒå ã«ã¯èšŒææžãããã蚌ææžã®æå¹æéã XNUMX 幎以å ã«åããããšãããã£ãŠããŸãã ããã§ãããéåžžã¯ã¯ã©ã¹ã¿ãŒå ã«èšŒææžã䜿çšããéåžžã®ãœãªã¥ãŒã·ã§ã³ã§ãããªãå¿é ããã®ã§ãããè¿ãã«æ°ããã¯ã©ã¹ã¿ãŒãäœæããå€ãã¯ã©ã¹ã¿ãŒãè ãããŠããã¹ãŠãåãããã€ããŸãã 確ãã«ãè ã£ãŠããŸã£ããäžæ¥æŸçœ®ããªããã°ãªããŸããããããã«æ°ããªå¡ãã§ããŠããŸãã
æ°ããã¯ã©ã¹ã¿ãŒãè²ãŠããšãã¯ãåæã«ãã©ã³ãã«ã®ä»£ããã«ãã£ãªã³ãæ¿å ¥ããŸãã
蚌ææžã®çºè¡æéã XNUMX 幎éãããã¯ã©ã¹ã¿ãŒãåãããã€ããäºå®ããªãå Žåã¯ã©ãããã°ããã§ãããã? Kube-RBAC-Proxy ãšãããã®ããããŸãã ããã¯éåžžã«åªããéçºã§ãããKubernetes ã¯ã©ã¹ã¿ãŒå ã®ä»»æã®ãããã«ãµã€ãã«ãŒ ã³ã³ãããŒãšããŠããèªäœãåã蟌ãããšãã§ããŸãã ãããŠå®éã«ã¯ãKubernetes èªäœã® RBAC ãéããŠãã®ãããã«èªå¯ãè¿œå ããŸãã
åé¡ã XNUMX ã€ãããŸãã 以åã¯ããã® Kube-RBAC-Proxy ãœãªã¥ãŒã·ã§ã³ã¯ããªãã¬ãŒã¿ãŒã® Prometheus ã«çµã¿èŸŒãŸããŠããŸããã ããããã®åŸã圌ã¯ããªããªã£ãŠããŸããŸããã çŸåšã®ããŒãžã§ã³ã§ã¯ããããã¯ãŒã¯ ããªã·ãŒããããããã䜿çšããŠãããã¯ãŒã¯ ããªã·ãŒãéãããšããäºå®ã«äŸåããŠããŸãã ãããã£ãŠããã£ãŒããå°ãæžãçŽãå¿
èŠããããŸãã å®éã«è¡ã£ãŠã¿ããšã
ãã XNUMX ã€å°ããªåé¡ããããŸãã Prometheus ã¯ããã®ã¡ããªã¯ã¹ã誰ã«ã§ãé åžããŠããå¯äžã®äŒæ¥ã§ã¯ãããŸããã ãã¹ãŠã® Kubernetes ã¯ã©ã¹ã¿ãŒ ã³ã³ããŒãã³ãã¯ãç¬èªã®ã¡ããªã¯ã¹ãè¿ãããšãã§ããŸãã
ãããããã§ã«è¿°ã¹ãããã«ãã¯ã©ã¹ã¿ãŒã«ã¢ã¯ã»ã¹ããŠæ å ±ãåéã§ããªãå Žåã¯ãå°ãªããšãäœããã®æ害ãäžããå¯èœæ§ããããŸãã
ããã§ãKubernetes ã¯ã©ã¹ã¿ãŒãç Žå£ããã XNUMX ã€ã®æ¹æ³ãç°¡åã«èª¬æããŸãã
ãããèšããšç¬ãããã§ããããããããã¯å®éã® XNUMX ã€ã®ã±ãŒã¹ã§ãã
æ¹æ³ XNUMXã è³æºã®æ¯æžã
å¥ã®ç¹å¥ãªããããèµ·åããŸãããã ãã®ãããªã»ã¯ã·ã§ã³ããããŸãã
resources:
requests:
cpu: 4
memory: 4Gi
ãåç¥ã®ãšããããªã¯ãšã¹ããšã¯ããªã¯ãšã¹ãã®ããç¹å®ã®ãããçšã«ãã¹ãäžã§äºçŽãããŠãã CPU ãšã¡ã¢ãªã®éã§ãã Kubernetes ã¯ã©ã¹ã¿ãŒå ã« XNUMX ã³ã¢ã®ãã¹ãããããããã« XNUMX ã€ã® CPU ãããããªã¯ãšã¹ããšãšãã«å°çãããšããªã¯ãšã¹ãã®ãããããã¯ãã以äžãã®ãã¹ãã«å°çã§ããªããªãããšãæå³ããŸãã
ãã®ãããªããããå®è¡ããå Žåã¯ã次ã®ã³ãã³ããå®è¡ããŸãã
$ kubectl scale special-pod --replicas=...
ããããã°ãä»ã®èª°ã Kubernetes ã¯ã©ã¹ã¿ãŒã«ãããã€ã§ããªããªããŸãã ãã¹ãŠã®ããŒãã§ãªã¯ãšã¹ãããªããªãããã§ãã ãããã£ãŠãKubernetes ã¯ã©ã¹ã¿ãŒãåæ¢ããŸãã ãããå€æ¹ã«è¡ããšãããªãé·ãéãããã€ã¡ã³ããåæ¢ã§ããŸãã
Kubernetes ã®ããã¥ã¡ã³ããããäžåºŠèŠããšãå¶éç¯å²ãšåŒã°ãããã®ãèŠã€ãããŸãã ã¯ã©ã¹ã¿ãŒãªããžã§ã¯ãã®ãªãœãŒã¹ãèšå®ããŸãã yaml 㧠Limit Range ãªããžã§ã¯ããèšè¿°ãããããç¹å®ã®åå空éã«é©çšãããšããã®åå空éã§ãããã®ããã©ã«ããæ倧ãæå°ã®ãªãœãŒã¹ããããšèšããŸãã
ãã®ãããªãã®ã®å©ããåããŠããããäžã§ããããçš®é¡ã®åä»ãªããšã瀺ãããšãã§ããããŒã ã®ç¹å®ã®è£œååå空éã®ãŠãŒã¶ãŒãå¶éã§ããŸãã ããããæ®å¿µãªãããè€æ°ã® CPU ã«å¯Ÿãããªã¯ãšã¹ãã§ããããèµ·åã§ããªããšãŠãŒã¶ãŒã«äŒãããšããŠããçŽ æŽãããã¹ã±ãŒã« ã³ãã³ããååšããããããã·ã¥ããŒãããã¹ã±ãŒã«ãè¡ãããšãã§ããŸãã
ãããã 11 çªç®ã®æ¹æ³ãçãŸããŸãã 111 åã®ããããèµ·åããŸãã ããã¯111åã§ãã ããã¯ç§ããã®ãããªæ°åãæãã€ããããã§ã¯ãªããèªåã§èŠãããã§ãã
æ¬åœã®è©±ã å€æ¹é ããç§ã¯ãªãã£ã¹ãåºãããšããŠããã éçºè ã®ã°ã«ãŒããé ã«åº§ã£ãŠã©ãããããã§å¿ æ»ã«äœããããŠããã®ãèŠããŸãã ç§ã¯åœŒãã«è¿ã¥ãããã©ãããã®ïŒããšå°ããŸãã
å°ãæ©ãå€ã®XNUMXæé ãéçºè ã®äžäººãåž°å® ã®æºåãããŠããŸããã ãããŠç§ã¯ããä»åºŠã¯ã¢ããªã±ãŒã·ã§ã³ã XNUMX ã€ã«ã¹ã±ãŒã«ããŠã³ãããããšæ±ºå¿ããŸããã XNUMX ã€æŒããŸããããã€ã³ã¿ãŒãããã®é床ãå°ãé ããªããŸããã 圌ã¯ããäžåºŠ XNUMX ãæŒãããã XNUMX ãæŒã㊠Enter ãã¯ãªãã¯ããŸããã ç§ã¯ã§ããéããã¹ãŠãçªããã ãã®åŸãã€ã³ã¿ãŒããããèªçãããã¹ãŠããã®æ°åã«ãŸã§çž®å°ããå§ããŸããã
確ãã«ããã®è©±ã¯ Kubernetes äžã§è¡ããããã®ã§ã¯ãªããåœæ㯠Nomad äžã§è¡ãããŠããŸããã Nomad ãã¹ã±ãŒãªã³ã°ããããšããå·æãªè©Šã¿ã XNUMX æéæ¢ããããšããåŸãNomad ã¯ã¹ã±ãŒãªã³ã°ãããããä»ã«ã¯äœãããªããšçãããšããäºå®ã§çµãããŸããã ãç²ãããããåž°ãããã ãããŠåœŒã¯äžžããªã£ãã
åœç¶ã®ããšãªãããKubernetes ã§ãââåãããšãããããšããŸããã Kubernetes 㯠1 ååã®ãããã«æºè¶³ããŠããªããšåœŒã¯èšããŸããã å éšããŠã¹ã¬ãŒããè¶ ããŠããŸããã ãããã000 åã®ããããªããããå¯èœã§ãã
XNUMXåã«å¿ããŠããã¥ãŒãã¯ããèªäœã«æ€éããŸããã§ããã 圌ã¯æ¬åœã«ã¹ã±ãŒãªã³ã°ãå§ããŸããã ããã»ã¹ãé²ãã»ã©ãæ°ãããããã®äœæã«æéãããããŸããã ããããããã§ãããã»ã¹ã¯ç¶ããŸããã å¯äžã®åé¡ã¯ãåå空éã§ç¡å¶éã«ããããèµ·åã§ããå Žåããªã¯ãšã¹ããå¶éããªããŠããããã€ãã®ã¿ã¹ã¯ãå«ãéåžžã«å€ãã®ããããèµ·åã§ããããããããã®ã¿ã¹ã¯ã®å©ããåããŠã¡ã¢ãªå ãCPU å ã§ããŒããå¢å ãå§ããããšã§ãã éåžžã«å€ãã®ããããèµ·åãããšããããããã®æ å ±ã¯ã¹ãã¬ãŒãžãã€ãŸã etcd ã«ä¿åãããã¯ãã§ãã ãããŠãããã«å°çããæ å ±ãå€ããããšãã¹ãã¬ãŒãžã®åŸ©åž°ãéåžžã«é ããªããKubernetes ãéããªãå§ããŸãã
ãããŠãã XNUMX ã€åé¡ããããŸã...ãåç¥ã®ãšãããKubernetes ã®å¶åŸ¡èŠçŽ 㯠XNUMX ã€ã®äžå¿çãªãã®ã§ã¯ãªããè€æ°ã®ã³ã³ããŒãã³ãã§ãã ç¹ã«ãã³ã³ãããŒã©ãŒ ãããŒãžã£ãŒãã¹ã±ãžã¥ãŒã©ãŒãªã©ããããŸãã ããããã¹ãŠã®äººã¯åæã«äžå¿ èŠã§æããªä»äºããå§ããæéãçµã€ã«ã€ããŠããŸããŸãæéããããå§ããŸãã ã³ã³ãããŒã©ãŒ ãããŒãžã£ãŒã¯æ°ããããããäœæããŸãã ã¹ã±ãžã¥ãŒã©ã¯ãããã®æ°ããããŒããèŠã€ããããšããŸãã ãããããã¯ã©ã¹ã¿å ã®æ°ããããŒããããã«ãªããªãã§ãããã Kubernetes ã¯ã©ã¹ã¿ãŒã®åäœã¯ãŸããŸãé ããªããŸãã
ããããç§ã¯ããã«å ã«é²ãããšã«ããŸããã ãåç¥ã®ãšãããKubernetes ã«ã¯ãµãŒãã¹ãšåŒã°ãããã®ããããŸãã ããã§ãããã¯ã©ã¹ã¿ãŒã®ããã©ã«ãã§ã¯ãã»ãšãã©ã®å ŽåããµãŒãã¹ã¯ IP ããŒãã«ã䜿çšããŠåäœããŸãã
ããšãã°ãXNUMX åã®ããããå®è¡ããã¹ã¯ãªããã䜿çšã㊠Kubernetis ã«æ°ãããµãŒãã¹ã匷å¶çã«äœæãããšããŸãã
for i in {1..1111111}; do
kubectl expose deployment test --port 80
--overrides="{"apiVersion": "v1",
"metadata": {"name": "nginx$i"}}";
done
ã¯ã©ã¹ã¿ãŒã®ãã¹ãŠã®ããŒãã§ãããã«å€ãã®æ°ãã iptables ã«ãŒã«ãã»ãŒåæã«çæãããŸãã ããã«ããµãŒãã¹ããšã« XNUMX åã® iptables ã«ãŒã«ãçæãããŸãã
ç§ã¯ãã®ãã¹ãŠãæ°åãæ倧 XNUMX 件ã§ãã§ãã¯ããŸããã ãããŠåé¡ã¯ããã§ã«ãã®ãããå€ã«éããŠãããããããŒãã« ssh ãå®è¡ããã®ã¯éåžžã«åé¡ããããšããããšã§ãã ãªããªãããã±ããã¯éåžžã«å€ãã®ãã§ãŒã³ãééãããããããŸãè¯ããªããšæãå§ããããã§ãã
ããããKubernetes ã®å©ããåããŠãã¹ãŠè§£æ±ºãããŸãã ãã®ãããªãªãœãŒã¹ ã¯ã©ãŒã¿ ãªããžã§ã¯ãããããŸãã ã¯ã©ã¹ã¿ãŒå
ã®ããŒã ã¹ããŒã¹ã§äœ¿çšå¯èœãªãªãœãŒã¹ãšãªããžã§ã¯ãã®æ°ãèšå®ããŸãã Kubernetes ã¯ã©ã¹ã¿ãŒã®ååå空éã« yaml ãªããžã§ã¯ããäœæã§ããŸãã ãã®ãªããžã§ã¯ãã䜿çšãããšããã®åå空éã«ç¹å®ã®æ°ã®ãªã¯ãšã¹ããšå¶éãå²ãåœãŠãããŠããããšããããããã®åå空éã§ã¯ 10 åã®ãµãŒãã¹ãš 10 åã®ããããäœæã§ããããšãããããŸãã ãããŠãäžäººã®éçºè
ãå°ãªããšãå€æ¹ã«ã¯èªåã®éŠãçµããå¯èœæ§ããããŸãã Kubernetes ã¯åœŒã«ãããªãœãŒã¹ãã¯ã©ãŒã¿ãè¶
ããŠããããããããããã®éãŸã§ã¹ã±ãŒã«ããããšã¯ã§ããŸããããšéç¥ããŸãã 以äžã§ããåé¡ã¯è§£æ±ºããŸããã
ãã®ç¹ã«é¢ããŠãäžã€ã®åé¡ç¹ãçããŸãã Kubernetes ã§åå空éãäœæããããšãããã«é£ãããªã£ãŠããããæããŸãã ãããäœæããã«ã¯ãå€ãã®ããšãèæ ®ããå¿ èŠããããŸãã
ãªãœãŒã¹å²ãåœãŠ + å¶éç¯å² + RBAC
⢠ããŒã ã¹ããŒã¹ãäœæãã
⢠å
éšã«å¶éç¯å²ãäœæãã
⢠ãªãœãŒã¹ã¯ã©ãŒã¿å
ã«äœæ
⢠CI ã®ãµãŒãã¹ã¢ã«ãŠã³ããäœæãã
⢠CI ãšãŠãŒã¶ãŒã®ããŒã«ãã€ã³ãã£ã³ã°ãäœæãã
⢠å¿
èŠã«å¿ããŠãå¿
èŠãªãµãŒãã¹ ããããèµ·åããŸãã
ãããã£ãŠããã®æ©äŒãå©çšããŠç§ã®éçºç¶æ³ãå ±æããããšæããŸãã SDKãªãã¬ãŒã¿ãŒãšåŒã°ãããã®ããããŸãã ããã¯ãKubernetes ã¯ã©ã¹ã¿ãŒãæŒç®åãäœæããæ¹æ³ã§ãã Ansible ã䜿çšããŠã¹ããŒãã¡ã³ããäœæã§ããŸãã
æå㯠Ansible ã§æžãããŠããŸããããSDK ãªãã¬ãŒã¿ãŒãããããšã«æ°ã¥ããAnsible ã®ããŒã«ããªãã¬ãŒã¿ãŒã«æžãçŽããŸããã ãã®ã¹ããŒãã¡ã³ãã䜿çšãããšãKubernetes ã¯ã©ã¹ã¿ãŒå ã«ã³ãã³ããšåŒã°ãããªããžã§ã¯ããäœæã§ããŸãã ã³ãã³ãå ã§ããã®ã³ãã³ãã®ç°å¢ã yaml ã§èšè¿°ããããšãã§ããŸãã ãŸããããŒã ç°å¢å ã§ã¯ãéåžžã«å€ãã®ãªãœãŒã¹ãå²ãåœãŠãŠãããšèª¬æã§ããŸãã
ã»ãã®å°ã
ãããŠçµè«ãšããŠã¯ã ãããã©ãããã°ããã§ããããïŒ
åãã ãããã»ãã¥ãªãã£ããªã·ãŒã¯è¯å¥œã§ãã ãããŠãä»æ¥ã«è³ããŸã§ã©ã® Kubernetes ã€ã³ã¹ããŒã©ãŒããããã䜿çšããŠããªããšããäºå®ã«ãããããããã¯ã©ã¹ã¿ãŒå
ã§ãããã䜿çšããå¿
èŠããããŸãã
ãããã¯ãŒã¯ ããªã·ãŒã¯ãåãªãäžèŠãªæ©èœã§ã¯ãããŸããã ããã¯ã¯ã©ã¹ã¿ãŒã§æ¬åœã«å¿ èŠãªãã®ã§ãã
LimitRange/ResourceQuota - ãããã䜿çšããŸãã ç§ãã¡ã¯ããããã£ãšåã«äœ¿ãå§ããŸããããé·ãéã誰ããããã䜿ã£ãŠãããšç¢ºä¿¡ããŠããŸããã ããã¯çããããšãå€æããŸããã
ã¬ããŒãäžã«è¿°ã¹ãããšã«å ããŠãã¯ã©ã¹ã¿ãŒãæ»æã§ããææžåãããŠããªãæ©èœããããŸãã æè¿çºå£²ããã
ãšãŠãæ²ãããŠå·ã€ãããšããããŸãã ããšãã°ãç¹å®ã®æ¡ä»¶äžã§ã¯ãKubernetes ã¯ã©ã¹ã¿ãŒå ã®ãã¥ãŒãã¬ããã warlocks ãã£ã¬ã¯ããªã®å 容ãæš©éã®ãªããŠãŒã¶ãŒã«æäŸããå¯èœæ§ããããŸãã
ããããšãããããŸããã
åºæïŒ habr.com