ืชื™ืงื•ืŸ ื—ื•ืจื™ื ื‘ืืฉื›ื•ืœ Kubernetes. ื“ื•ื— ื•ืชืžืœื•ืœ ืž-DevOpsConf

Pavel Selivanov, ืืจื›ื™ื˜ืงื˜ ืคืชืจื•ื ื•ืช Southbridge ื•ืžื•ืจื” ืœ-Slurm, ื ืฉื ืžืฆื’ืช ื‘-DevOpsConf 2019. ื”ืจืฆืื” ื–ื• ื”ื™ื ื—ืœืง ืžืื—ื“ ื”ื ื•ืฉืื™ื ืฉืœ ื”ืงื•ืจืก ื”ืžืขืžื™ืง ืขืœ Kubernetes "Slurm Mega".

Slurm Basic: ืžื‘ื•ื ืœ-Kubernetes ืžืชืงื™ื™ื ื‘ืžื•ืกืงื‘ื” ื‘-18-20 ื‘ื ื•ื‘ืžื‘ืจ.
Slurm Mega: ืžืกืชื›ืœ ืžืชื—ืช ืœืžื›ืกื” ื”ืžื ื•ืข ืฉืœ Kubernetes - ืžื•ืกืงื‘ื”, 22-24 ื‘ื ื•ื‘ืžื‘ืจ.
Slurm Online: ืฉื ื™ ืงื•ืจืกื™ Kubernetes ืชืžื™ื“ ื–ืžื™ืŸ.

ืžืชื—ืช ืœื—ื™ืชื•ืš ื™ืฉ ืชืžืœื™ืœ ืฉืœ ื”ื“ื•"ื—.

ืฆื”ืจื™ื™ื ื˜ื•ื‘ื™ื, ืขืžื™ืชื™ื ื•ืžื™ ืฉืžื–ื“ื”ื” ืื™ืชื. ื”ื™ื•ื ืื“ื‘ืจ ืขืœ ื‘ื˜ื™ื—ื•ืช.

ืื ื™ ืจื•ืื” ืฉื™ืฉ ื”ื™ื•ื ื”ืจื‘ื” ืžืื‘ื˜ื—ื™ื ื‘ืื•ืœื. ืื ื™ ืžืชื ืฆืœ ื‘ืคื ื™ื›ื ืžืจืืฉ ืื ืื ื™ ืžืฉืชืžืฉ ื‘ืžื•ื ื—ื™ื ืžืขื•ืœื ื”ืื‘ื˜ื—ื” ืœื ื‘ื“ื™ื•ืง ื›ืคื™ ืฉืžืงื•ื‘ืœ ืืฆืœื›ื.

ื›ืš ืงืจื” ืฉืœืคื ื™ ื›ื—ืฆื™ ืฉื ื” ื ืชืงืœืชื™ ื‘ืืฉื›ื•ืœ Kubernetes ืฆื™ื‘ื•ืจื™ ืื—ื“. ืฆื™ื‘ื•ืจื™ ืคื™ืจื•ืฉื• ืฉื™ืฉ ืžืกืคืจ nth ืฉืœ ืžืจื—ื‘ื™ ืฉืžื•ืช; ื‘ืžืจื—ื‘ื™ ืฉืžื•ืช ืืœื” ื™ืฉ ืžืฉืชืžืฉื™ื ืžื‘ื•ื“ื“ื™ื ื‘ืžืจื—ื‘ ื”ืฉืžื•ืช ืฉืœื”ื. ื›ืœ ื”ืžืฉืชืžืฉื™ื ื”ืœืœื• ืฉื™ื™ื›ื™ื ืœื—ื‘ืจื•ืช ืฉื•ื ื•ืช. ื•ื‘ื›ืŸ, ื”ื”ื ื—ื” ื”ื™ื™ืชื” ืฉืืฉื›ื•ืœ ื–ื” ืฆืจื™ืš ืœืฉืžืฉ ื›-CDN. ื›ืœื•ืžืจ, ื”ื ื ื•ืชื ื™ื ืœืš ืืฉื›ื•ืœ, ื”ื ื ื•ืชื ื™ื ืœืš ืฉื ืžืฉืชืžืฉ, ืืชื” ื”ื•ืœืš ืœืฉื ืœืžืจื—ื‘ ื”ืฉืžื•ืช ืฉืœืš, ืคื•ืจืก ืืช ื”ื—ื–ื™ืชื•ืช ืฉืœืš.

ื”ื—ื‘ืจื” ื”ืงื•ื“ืžืช ืฉืœื™ ื ื™ืกืชื” ืœืžื›ื•ืจ ืฉื™ืจื•ืช ื›ื–ื”. ื•ื”ืชื‘ืงืฉืชื™ ืœืชืงื•ืข ืืช ื”ืืฉื›ื•ืœ ื›ื“ื™ ืœืจืื•ืช ืื ื”ืคืชืจื•ืŸ ื”ื–ื” ืžืชืื™ื ืื• ืœื.

ื”ื’ืขืชื™ ืœืืฉื›ื•ืœ ื”ื–ื”. ืงื™ื‘ืœืชื™ ื–ื›ื•ื™ื•ืช ืžื•ื’ื‘ืœื•ืช, ืžืจื—ื‘ ืฉืžื•ืช ืžื•ื’ื‘ืœ. ื”ื—ื‘ืจ'ื” ืฉื ื”ื‘ื™ื ื• ืžื” ื–ื” ื‘ื˜ื™ื—ื•ืช. ื”ื ืงืจืื• ืขืœ ื‘ืงืจืช ื’ื™ืฉื” ืžื‘ื•ืกืกืช ืชืคืงื™ื“ื™ื (RBAC) ื‘-Kubernetes - ื•ื”ื ืขื™ืงืžื• ืืช ื–ื” ื›ืš ืฉืœื ืื•ื›ืœ ืœื”ืคืขื™ืœ ืคื•ื“ื™ื ื‘ื ืคืจื“ ืžื”ืคืจื™ืกื”. ืื ื™ ืœื ื–ื•ื›ืจ ืืช ื”ื‘ืขื™ื” ืฉื ื™ืกื™ืชื™ ืœืคืชื•ืจ ืขืœ ื™ื“ื™ ื”ืฉืงืช ืคื•ื“ ืœืœื ืคืจื™ืกื”, ืื‘ืœ ื‘ืืžืช ืจืฆื™ืชื™ ืœื”ืฉื™ืง ืจืง ืคื•ื“. ืœืžื–ืœ ื˜ื•ื‘, ื”ื—ืœื˜ืชื™ ืœืจืื•ืช ืื™ืœื• ื–ื›ื•ื™ื•ืช ื™ืฉ ืœื™ ื‘ืืฉื›ื•ืœ, ืžื” ืื ื™ ื™ื›ื•ืœ ืœืขืฉื•ืช, ืžื” ืื ื™ ืœื ื™ื›ื•ืœ ืœืขืฉื•ืช, ื•ืžื” ื”ื ืคื™ืฉืœื• ืฉื. ื‘ืžืงื‘ื™ืœ, ืื ื™ ืื’ื™ื“ ืœืš ืžื” ื”ื ื”ื’ื“ื™ืจื• ื‘ืฆื•ืจื” ืœื ื ื›ื•ื ื” ื‘- RBAC.

ื›ืš ืงืจื” ืฉืชื•ืš ืฉืชื™ ื“ืงื•ืช ืงื™ื‘ืœืชื™ ืื“ืžื™ืŸ ืœืืฉื›ื•ืœ ืฉืœื”ื, ื”ืกืชื›ืœืชื™ ืขืœ ื›ืœ ืžืจื—ื‘ื™ ื”ืฉืžื•ืช ื”ืกืžื•ื›ื™ื, ืจืื™ืชื™ ืฉื ืืช ื—ื–ื™ืชื•ืช ื”ื™ื™ืฆื•ืจ ื”ืจืฆื•ืช ืฉืœ ื—ื‘ืจื•ืช ืฉื›ื‘ืจ ืจื›ืฉื• ืืช ื”ืฉื™ืจื•ืช ื•ื ืคืจืกื•. ื‘ืงื•ืฉื™ ื™ื›ื•ืœืชื™ ืœืขืฆื•ืจ ืืช ืขืฆืžื™ ืžืœืขื‘ื•ืจ ืœื—ื–ื™ืช ืฉืœ ืžื™ืฉื”ื• ื•ืœืฉื™ื ืื™ื–ื” ืงืœืœื” ื‘ืขืžื•ื“ ื”ืจืืฉื™.

ืื ื™ ืืกืคืจ ืœืš ืขื ื“ื•ื’ืžืื•ืช ืื™ืš ืขืฉื™ืชื™ ืืช ื–ื” ื•ืื™ืš ืœื”ื’ืŸ ืขืœ ืขืฆืžืš ืžืคื ื™ ื–ื”.

ืื‘ืœ ืจืืฉื™ืช, ื”ืจืฉื• ืœื™ ืœื”ืฆื™ื’ ืืช ืขืฆืžื™. ืฉืžื™ ืคืื‘ืœ ืกืœื™ื•ื•ื ื•ื‘. ืื ื™ ืื“ืจื™ื›ืœ ื‘ืกืื•ืช'ื‘ืจื™ื“ื’'. ืื ื™ ืžื‘ื™ืŸ Kubernetes, DevOps ื•ื›ืœ ืžื™ื ื™ ื“ื‘ืจื™ื ืžืคื•ืืจื™ื. ืžื”ื ื“ืกื™ ืกืื•ืช'ื‘ืจื™ื“ื’' ื•ืื ื™ ื‘ื•ื ื™ื ืืช ื›ืœ ื–ื”, ื•ืื ื™ ืžืชื™ื™ืขืฅ.

ื‘ื ื•ืกืฃ ืœืคืขื™ืœื•ื™ื•ืช ื”ืขื™ืงืจื™ื•ืช ืฉืœื ื•, ื”ืฉืงื ื• ืœืื—ืจื•ื ื” ืคืจื•ื™ืงื˜ื™ื ื‘ืฉื Slurms. ืื ื—ื ื• ืžื ืกื™ื ืœื”ื‘ื™ื ืงืฆืช ืืช ื”ื™ื›ื•ืœืช ืฉืœื ื• ืœืขื‘ื•ื“ ืขื Kubernetes ืœื”ืžื•ื ื™ื, ืœืœืžื“ ืื ืฉื™ื ืื—ืจื™ื ืœืขื‘ื•ื“ ื’ื ืขื K8s.

ืขืœ ืžื” ืื“ื‘ืจ ื”ื™ื•ื? ื ื•ืฉื ื”ื“ื•ื— ื‘ืจื•ืจ - ืขืœ ืื‘ื˜ื—ืช ืืฉื›ื•ืœ Kubernetes. ืื‘ืœ ืื ื™ ืจื•ืฆื” ืœื•ืžืจ ืžื™ื“ ืฉื”ื ื•ืฉื ื”ื–ื” ื’ื“ื•ืœ ืžืื•ื“ - ื•ืœื›ืŸ ืื ื™ ืจื•ืฆื” ืœื”ื‘ื”ื™ืจ ืžื™ื“ ืขืœ ืžื” ืื ื™ ื‘ื”ื—ืœื˜ ืœื ืื“ื‘ืจ. ืื ื™ ืœื ืื“ื‘ืจ ืขืœ ืžื•ื ื—ื™ื ืคืจื•ืฆื™ื ืฉื›ื‘ืจ ื ืขืฉื” ื‘ื”ื ืฉื™ืžื•ืฉ ืžืื” ืคืขืžื™ื ื‘ืื™ื ื˜ืจื ื˜. ื›ืœ ืžื™ื ื™ RBAC ื•ืชืขื•ื“ื•ืช.

ืื ื™ ืื“ื‘ืจ ืขืœ ืžื” ืฉืžื›ืื™ื‘ ืœื™ ื•ืœืขืžื™ืชื™ื™ ื‘ื ื•ื’ืข ืœืื‘ื˜ื—ื” ื‘ืืฉื›ื•ืœ Kubernetes. ืื ื• ืจื•ืื™ื ืืช ื”ื‘ืขื™ื•ืช ื”ืœืœื• ื”ืŸ ื‘ืงืจื‘ ืกืคืงื™ื ื”ืžืกืคืงื™ื ืืฉื›ื•ืœื•ืช Kubernetes ื•ื”ืŸ ื‘ืงืจื‘ ืœืงื•ื—ื•ืช ืฉืžื’ื™ืขื™ื ืืœื™ื ื•. ื•ืืคื™ืœื• ืžืœืงื•ื—ื•ืช ืฉืžื’ื™ืขื™ื ืืœื™ื ื• ืžื—ื‘ืจื•ืช ืื“ืžื™ืŸ ื™ื™ืขื•ืฅ ืื—ืจื•ืช. ื›ืœื•ืžืจ, ื”ื™ืงืฃ ื”ื˜ืจื’ื“ื™ื” ื”ื•ื ืœืžืขืฉื” ื’ื“ื•ืœ ืžืื•ื“.

ื™ืฉ ืžืžืฉ ืฉืœื•ืฉ ื ืงื•ื“ื•ืช ืฉืขืœื™ื”ืŸ ืื“ื‘ืจ ื”ื™ื•ื:

  1. ื–ื›ื•ื™ื•ืช ืžืฉืชืžืฉ ืœืขื•ืžืช ื–ื›ื•ื™ื•ืช ืคื•ื“. ื–ื›ื•ื™ื•ืช ืžืฉืชืžืฉ ื•ื–ื›ื•ื™ื•ืช ืคื•ื“ ืื™ื ืŸ ืื•ืชื• ื“ื‘ืจ.
  2. ืื™ืกื•ืฃ ืžื™ื“ืข ืขืœ ื”ืืฉื›ื•ืœ. ืื ื™ ืืจืื” ืฉืืชื” ื™ื›ื•ืœ ืœืืกื•ืฃ ืืช ื›ืœ ื”ืžื™ื“ืข ืฉืืชื” ืฆืจื™ืš ืžืืฉื›ื•ืœ ืžื‘ืœื™ ืฉืชื”ื™ื” ืœืš ื–ื›ื•ื™ื•ืช ืžื™ื•ื—ื“ื•ืช ื‘ืืฉื›ื•ืœ ื–ื”.
  3. ืžืชืงืคืช DoS ืขืœ ื”ืืฉื›ื•ืœ. ืื ืœื ื ื•ื›ืœ ืœืืกื•ืฃ ืžื™ื“ืข, ื ื•ื›ืœ ืœืฉื™ื ืืฉื›ื•ืœ ื‘ื›ืœ ืžืงืจื”. ืื ื™ ืื“ื‘ืจ ืขืœ ื”ืชืงืคื•ืช DoS ืขืœ ืจื›ื™ื‘ื™ ื‘ืงืจืช ืืฉื›ื•ืœื•ืช.

ื“ื‘ืจ ื›ืœืœื™ ื ื•ืกืฃ ืฉืืฆื™ื™ืŸ ื”ื•ื ืขืœ ืžื” ื‘ื“ืงืชื™ ืืช ื›ืœ ื–ื”, ืฉืขืœื™ื• ืื ื™ ื‘ื”ื—ืœื˜ ื™ื›ื•ืœ ืœื•ืžืจ ืฉื”ื›ืœ ืขื•ื‘ื“.

ืื ื• ืœื•ืงื—ื™ื ื›ื‘ืกื™ืก ืืช ื”ื”ืชืงื ื” ืฉืœ ืืฉื›ื•ืœ Kubernetes ื‘ืืžืฆืขื•ืช Kubespray. ืื ืžื™ืฉื”ื• ืœื ื™ื•ื“ืข, ื–ื”ื• ืœืžืขืฉื” ืกื˜ ืชืคืงื™ื“ื™ื ืขื‘ื•ืจ Ansible. ืื ื—ื ื• ืžืฉืชืžืฉื™ื ื‘ื• ื›ืœ ื”ื–ืžืŸ ื‘ืขื‘ื•ื“ื” ืฉืœื ื•. ื”ื“ื‘ืจ ื”ื˜ื•ื‘ ื”ื•ื ืฉืืคืฉืจ ืœื’ืœื’ืœ ืื•ืชื• ืœื›ืœ ืžืงื•ื - ืืคืฉืจ ืœื’ืœื’ืœ ืื•ืชื• ืขืœ ื—ืชื™ื›ื•ืช ื‘ืจื–ืœ ืื• ืœืขื ืŸ ืื™ืคืฉื”ื•. ืฉื™ื˜ืช ื”ืชืงื ื” ืื—ืช ืขื•ื‘ื“ืช ืขืงืจื•ื ื™ืช ืœื›ืœ ื“ื‘ืจ.

ื‘ืืฉื›ื•ืœ ื–ื” ื™ื”ื™ื” ืœื™ Kubernetes v1.14.5. ื›ืœ ืืฉื›ื•ืœ ื”-Cube, ืื•ืชื• ื ืฉืงื•ืœ, ืžื—ื•ืœืง ืœืžืจื—ื‘ื™ ืฉืžื•ืช, ื›ืœ ืžืจื—ื‘ ืฉืžื•ืช ืฉื™ื™ืš ืœืฆื•ื•ืช ื ืคืจื“, ื•ืœื—ื‘ืจื™ื ื‘ืฆื•ื•ืช ื–ื” ื™ืฉ ื’ื™ืฉื” ืœื›ืœ ืžืจื—ื‘ ืฉืžื•ืช. ื”ื ืœื ื™ื›ื•ืœื™ื ืœืœื›ืช ืœืžืจื—ื‘ื™ ืฉืžื•ืช ืฉื•ื ื™ื, ืจืง ืœืžืจื—ื‘ื™ ื”ืฉืžื•ืช ืฉืœื”ื. ืื‘ืœ ื™ืฉ ื—ืฉื‘ื•ืŸ ืื“ืžื™ืŸ ืžืกื•ื™ื ืฉื™ืฉ ืœื• ื–ื›ื•ื™ื•ืช ืœื›ืœ ื”ืืฉื›ื•ืœ.

ืชื™ืงื•ืŸ ื—ื•ืจื™ื ื‘ืืฉื›ื•ืœ Kubernetes. ื“ื•ื— ื•ืชืžืœื•ืœ ืž-DevOpsConf

ื”ื‘ื˜ื—ืชื™ ืฉื”ื“ื‘ืจ ื”ืจืืฉื•ืŸ ืฉื ืขืฉื” ื”ื•ื ืœื”ืฉื™ื’ ื–ื›ื•ื™ื•ืช ืื“ืžื™ืŸ ืœืืฉื›ื•ืœ. ืื ื—ื ื• ืฆืจื™ื›ื™ื ืคื•ื“ ืฉื”ื•ื›ืŸ ื‘ืžื™ื•ื—ื“ ืฉื™ืฉื‘ื•ืจ ืืช ืืฉื›ื•ืœ Kubernetes. ื›ืœ ืฉืขืœื™ื ื• ืœืขืฉื•ืช ื”ื•ื ืœื”ื—ื™ืœ ืื•ืชื• ืขืœ ืืฉื›ื•ืœ Kubernetes.

kubectl apply -f pod.yaml

ื”ืชืจืžื™ืœ ื”ื–ื” ื™ื’ื™ืข ืœืื—ื“ ื”ืžืืกื˜ืจื™ื ืฉืœ ืืฉื›ื•ืœ Kubernetes. ื•ืื—ืจื™ ื–ื” ื”ืืฉื›ื•ืœ ื™ื—ื–ื™ืจ ืœื ื• ื‘ืฉืžื—ื” ืงื•ื‘ืฅ ื‘ืฉื admin.conf. ื‘-Cube, ืงื•ื‘ืฅ ื–ื” ืžืื—ืกืŸ ืืช ื›ืœ ืื™ืฉื•ืจื™ ื”ืžื ื”ืœ, ื•ื‘ื• ื–ืžื ื™ืช ืžื’ื“ื™ืจ ืืช ื”-API ืฉืœ ื”ืืฉื›ื•ืœ. ื›ืš ืงืœ ืœืงื‘ืœ ื’ื™ืฉืช ืžื ื”ืœ ืœ-98%, ืœื“ืขืชื™, ืžืืฉื›ื•ืœื•ืช Kubernetes.

ืื ื™ ื—ื•ื–ืจ, ื”ืชืจืžื™ืœ ื”ื–ื” ื ื•ืฆืจ ืขืœ ื™ื“ื™ ืžืคืชื— ืื—ื“ ื‘ืืฉื›ื•ืœ ืฉืœืš ืฉื™ืฉ ืœื• ื’ื™ืฉื” ืœืคืจื•ืก ืืช ื”ื”ืฆืขื•ืช ืฉืœื• ืœืชื•ืš ืžืจื—ื‘ ืฉืžื•ืช ืื—ื“ ืงื˜ืŸ, ื”ื›ืœ ืžื•ืฆืง ืขืœ ื™ื“ื™ RBAC. ืœื ื”ื™ื• ืœื• ื–ื›ื•ื™ื•ืช. ืื‘ืœ ื‘ื›ืœ ื–ืืช ื”ื•ื—ื–ืจื” ื”ืชืขื•ื“ื”.

ื•ืขื›ืฉื™ื• ืขืœ ืชืจืžื™ืœ ืฉื”ื•ื›ืŸ ื‘ืžื™ื•ื—ื“. ืื ื—ื ื• ืžืจื™ืฆื™ื ืืช ื–ื” ืขืœ ื›ืœ ืชืžื•ื ื”. ื ื™ืงื— ืืช debian:jessie ื›ื“ื•ื’ืžื”.

ื™ืฉ ืœื ื• ืืช ื”ื“ื‘ืจ ื”ื–ื”:

tolerations:
-   effect: NoSchedule 
    operator: Exists 
nodeSelector: 
    node-role.kubernetes.io/master: "" 

ืžื”ื™ ืกื•ื‘ืœื ื•ืช? ืžืืกื˜ืจื™ื ื‘ืืฉื›ื•ืœ Kubernetes ืžืกื•ืžื ื™ื ื‘ื“ืจืš ื›ืœืœ ื‘ืžืฉื”ื• ืฉื ืงืจื Taint. ื•ืžื”ื•ืช ื”"ื–ื™ื”ื•ื" ื”ื–ื” ื”ื™ื ืฉื”ื•ื ืื•ืžืจ ืฉืœื ื ื™ืชืŸ ืœื”ืงืฆื•ืช ืชืจืžื™ืœื™ื ืœืฆืžืชื™ ืžืืกื˜ืจ. ืื‘ืœ ืืฃ ืื—ื“ ืœื ื˜ื•ืจื— ืœืฆื™ื™ืŸ ื‘ืฉื•ื ืชืจืžื™ืœ ืฉื”ื•ื ืกื•ื‘ืœื ื™ ืœ"ื–ื™ื”ื•ื". ืกืขื™ืฃ ื”ืกื•ื‘ืœื ื•ืช ืจืง ืื•ืžืจ ืฉืื ืœืฆื•ืžืช ื›ืœืฉื”ื• ื™ืฉ NoSchedule, ืื– ื”ืฆื•ืžืช ืฉืœื ื• ืกื•ื‘ืœื ื™ ืœื–ื™ื”ื•ื ื›ื–ื” - ื•ืื™ืŸ ื‘ืขื™ื•ืช.

ื™ืชืจ ืขืœ ื›ืŸ, ืื ื• ืื•ืžืจื™ื ืฉื”ืชื—ืช ืฉืœื ื• ืœื ืจืง ืกื•ื‘ืœื ื™, ืืœื ื’ื ืจื•ืฆื” ืœื›ื•ื•ืŸ ืกืคืฆื™ืคื™ืช ืœืžืืกื˜ืจ. ื›ื™ ืœืžืืกื˜ืจื™ื ื™ืฉ ืืช ื”ื“ื‘ืจ ื”ื›ื™ ื˜ืขื™ื ืฉืื ื—ื ื• ืฆืจื™ื›ื™ื - ื›ืœ ื”ืชืขื•ื“ื•ืช. ืœื›ืŸ, ืื ื• ืื•ืžืจื™ื nodeSelector - ื•ื™ืฉ ืœื ื• ืชื•ื•ื™ืช ืกื˜ื ื“ืจื˜ื™ืช ืขืœ ืžืืกื˜ืจื™ื, ื”ืžืืคืฉืจืช ืœื‘ื—ื•ืจ ืžื‘ื™ืŸ ื›ืœ ื”ืฆืžืชื™ื ื‘ืืฉื›ื•ืœ ื‘ื“ื™ื•ืง ืืช ืื•ืชื ืฆืžืชื™ื ืฉื”ื ืžืืกื˜ืจื™ื.

ืขื ืฉื ื™ ื”ืงื˜ืขื™ื ื”ืืœื” ื”ื•ื ื‘ื”ื—ืœื˜ ื™ื’ื™ืข ืœืžืืกื˜ืจ. ื•ื™ื•ืจืฉื” ืœื• ืœื’ื•ืจ ืฉื.

ืื‘ืœ ืจืง ืœื‘ื•ื ืืœ ื”ืžืืกื˜ืจ ื–ื” ืœื ืžืกืคื™ืง ืœื ื•. ื–ื” ืœื ื™ื™ืชืŸ ืœื ื• ื›ืœื•ื. ืื– ื”ื‘ื ื™ืฉ ืœื ื• ืืช ืฉื ื™ ื”ื“ื‘ืจื™ื ื”ืืœื”:

hostNetwork: true 
hostPID: true 

ืื ื• ืžืฆื™ื™ื ื™ื ืฉื”ืคื•ื“ ืฉืœื ื•, ืฉืื ื• ืžืฉื™ืงื™ื, ื™ื—ื™ื” ื‘ืžืจื—ื‘ ื”ืฉืžื•ืช ืฉืœ ื”ืœื™ื‘ื”, ื‘ืžืจื—ื‘ ื”ืฉืžื•ืช ืฉืœ ื”ืจืฉืช ื•ื‘ืžืจื—ื‘ ื”ืฉืžื•ืช ืฉืœ PID. ื‘ืจื’ืข ืฉื”ืคื•ื“ ื™ื•ืฉืง ื‘ืžืืกื˜ืจ, ื”ื•ื ื™ื•ื›ืœ ืœืจืื•ืช ืืช ื›ืœ ื”ืžืžืฉืงื™ื ื”ืืžื™ืชื™ื™ื ื•ื”ื—ื™ื™ื ืฉืœ ื”ืฆื•ืžืช ื”ื–ื”, ืœื”ืื–ื™ืŸ ืœื›ืœ ื”ืชืขื‘ื•ืจื” ื•ืœืจืื•ืช ืืช ื”-PID ืฉืœ ื›ืœ ื”ืชื”ืœื™ื›ื™ื.

ื•ืื– ื–ื” ืขื ื™ื™ืŸ ืฉืœ ื“ื‘ืจื™ื ืงื˜ื ื™ื. ืงื— ื•ื›ื•' ื•ืงืจื ืžื” ืฉืืชื” ืจื•ืฆื”.

ื”ื“ื‘ืจ ื”ืžืขื ื™ื™ืŸ ื‘ื™ื•ืชืจ ื”ื•ื ืชื›ื•ื ืช Kubernetes ื”ื–ื•, ืฉืงื™ื™ืžืช ืฉื ื›ื‘ืจื™ืจืช ืžื—ื“ืœ.

volumeMounts:
- mountPath: /host 
  name: host 
volumes:
- hostPath: 
    path: / 
    type: Directory 
  name: host 

ื•ื”ืžื”ื•ืช ืฉืœื• ื”ื™ื ืฉืื ื—ื ื• ื™ื›ื•ืœื™ื ืœื”ื’ื™ื“ ื‘ืคื•ื“ ืฉืื ื—ื ื• ืžืฉื™ืงื™ื, ื’ื ื‘ืœื™ ื–ื›ื•ื™ื•ืช ืœืืฉื›ื•ืœ ื”ื–ื”, ืฉืื ื—ื ื• ืจื•ืฆื™ื ืœื™ืฆื•ืจ ื ืคื— ืžืกื•ื’ hostPath. ื–ื” ืื•ืžืจ ืœืงื—ืช ืืช ื”ื ืชื™ื‘ ืžื”ืžืืจื— ืขืœื™ื• ื ืฉื™ืง - ื•ืœืงื—ืช ืื•ืชื• ื›ื ืคื—. ื•ืื– ืื ื—ื ื• ืงื•ืจืื™ื ืœื–ื” ื‘ืฉื: ืžืืจื—. ืื ื• ืžืจื›ื™ื‘ื™ื ืืช ื›ืœ ื”-hostPath ื”ื–ื” ื‘ืชื•ืš ื”ืคื•ื“. ื‘ื“ื•ื’ืžื” ื–ื•, ืœืกืคืจื™ื™ืช /host.

ืื ื™ ืื—ื–ื•ืจ ืขืœ ื–ื” ืฉื•ื‘. ืืžืจื ื• ืœืคื•ื“ ืœื‘ื•ื ืœืžืืกื˜ืจ, ืœื”ืฉื™ื’ ืฉื ืืช ื”-hostNetwork ื•ื”-hostPID - ื•ืœื”ืจื›ื™ื‘ ืืช ื›ืœ ื”ืฉื•ืจืฉ ืฉืœ ื”ืžืืกื˜ืจ ื‘ืชื•ืš ื”ืคื•ื“ ื”ื–ื”.

ืืชื” ืžื‘ื™ืŸ ืฉื‘ื“ื‘ื™ืืŸ ื™ืฉ ืœื ื• bash ืจื™ืฆื”, ื•ื”-bash ื”ื–ื” ืคื•ืขืœ ืžืชื—ืช ืœืฉื•ืจืฉ. ื›ืœื•ืžืจ, ื–ื” ืขืชื” ืงื™ื‘ืœื ื• ืฉื•ืจืฉ ืขืœ ื”ืžืืกื˜ืจ, ืžื‘ืœื™ ืฉื™ืฉ ืœื ื• ื–ื›ื•ื™ื•ืช ื›ืœืฉื”ืŸ ื‘ืืฉื›ื•ืœ Kubernetes.

ืœืื—ืจ ืžื›ืŸ ื›ืœ ื”ืžืฉื™ืžื” ื”ื™ื ืœืขื‘ื•ืจ ืœืชืช ืกืคืจื™ื™ืช /host /etc/kubernetes/pki, ืื ืื ื™ ืœื ื˜ื•ืขื”, ืืกื•ืฃ ืฉื ืืช ื›ืœ ืชืขื•ื“ื•ืช ื”ืžืืกื˜ืจ ืฉืœ ื”ืืฉื›ื•ืœ ื•ื‘ื”ืชืื ืœื›ืš, ื”ืคื•ืš ืœืžื ื”ืœ ื”ืืฉื›ื•ืœ.

ืื ืืชื” ืžืกืชื›ืœ ืขืœ ื–ื” ื›ืš, ืืœื• ื”ืŸ ื›ืžื” ืžื”ื–ื›ื•ื™ื•ืช ื”ืžืกื•ื›ื ื•ืช ื‘ื™ื•ืชืจ ื‘-pods - ืœืœื ืงืฉืจ ืœื–ื›ื•ื™ื•ืช ืฉื™ืฉ ืœืžืฉืชืžืฉ:
ืชื™ืงื•ืŸ ื—ื•ืจื™ื ื‘ืืฉื›ื•ืœ Kubernetes. ื“ื•ื— ื•ืชืžืœื•ืœ ืž-DevOpsConf

ืื ื™ืฉ ืœื™ ืืช ื”ื–ื›ื•ื™ื•ืช ืœื”ืคืขื™ืœ ืคื•ื“ ื‘ืžืจื—ื‘ ืฉืžื•ืช ื›ืœืฉื”ื• ืฉืœ ื”ืืฉื›ื•ืœ, ืื– ืœืคื•ื“ ื”ื–ื” ื™ืฉ ืืช ื”ื–ื›ื•ื™ื•ืช ื”ืืœื” ื›ื‘ืจื™ืจืช ืžื—ื“ืœ. ืื ื™ ื™ื›ื•ืœ ืœื”ืคืขื™ืœ ืชืจืžื™ืœื™ื ืžื•ืขื“ืคื™ื, ื•ืืœื” ื”ืŸ ื‘ื“ืจืš ื›ืœืœ ื›ืœ ื”ื–ื›ื•ื™ื•ืช, ื›ืžืขื˜ ืฉื•ืจืฉื™ื•ืช ืขืœ ื”ืฆื•ืžืช.

ื”ืื”ื•ื‘ ืขืœื™ ื”ื•ื ืžืฉืชืžืฉ Root. ื•ืœ-Kubernetes ื™ืฉ ืืช ื”ืืคืฉืจื•ืช Run As Non-Root. ื–ื”ื• ืกื•ื’ ืฉืœ ื”ื’ื ื” ืžืคื ื™ ื”ืืงืจ. ื”ืื ืืชื” ื™ื•ื“ืข ืžื” ื–ื” "ื”ื ื’ื™ืฃ ื”ืžื•ืœื“ื‘ื™"? ืื ืืชื” ืคืชืื•ื ื”ืืงืจ ื•ืžื’ื™ืข ืœืืฉื›ื•ืœ ื”-Kubernetes ืฉืœื™, ืื– ืื ื—ื ื•, ืžื ื”ืœื™ื ื’ืจื•ืขื™ื, ืžื‘ืงืฉื™ื: "ื ื ืœืฆื™ื™ืŸ ื‘ืคื•ื“ื™ื ืฉืœืš ืื™ืชื ืชืคืจื•ืฅ ืœืืฉื›ื•ืœ ืฉืœื™, ืชืจื•ืฅ ื›ื‘ืœืชื™ ืฉื•ืจืฉ. ืื—ืจืช, ื™ืงืจื” ืฉืชืคืขื™ืœ ืืช ื”ืชื”ืœื™ืš ื‘ืคื•ื“ ืฉืœืš ืžืชื—ืช ืœืฉื•ืจืฉ, ื•ื™ื”ื™ื” ืœืš ืงืœ ืžืื•ื“ ืœืคืจื•ืฅ ืœื™. ื ื ืœื”ื’ืŸ ืขืœ ืขืฆืžืš ืžืขืฆืžืš".

ื ืคื— ื ืชื™ื‘ ืžืืจื— ื”ื•ื, ืœื“ืขืชื™, ื”ื“ืจืš ื”ืžื”ื™ืจื” ื‘ื™ื•ืชืจ ืœืงื‘ืœ ืืช ื”ืชื•ืฆืื” ื”ืจืฆื•ื™ื” ืžืืฉื›ื•ืœ Kubernetes.

ืื‘ืœ ืžื” ืœืขืฉื•ืช ืขื ื›ืœ ื–ื”?

ื”ืžื—ืฉื‘ื” ืฉืฆืจื™ื›ื” ืœืขืœื•ืช ืœื›ืœ ืžื ื”ืœ ืจื’ื™ืœ ืฉื ืชืงืœ ื‘-Kubernetes ื”ื™ื: "ื›ืŸ, ืืžืจืชื™ ืœืš, Kubernetes ืœื ืขื•ื‘ื“. ื™ืฉ ื‘ื• ื—ื•ืจื™ื. ื•ื›ืœ ื”ืงื•ื‘ื™ื™ื” ื”ื™ื ืฉื˜ื•ื™ื•ืช". ืœืžืขืฉื”, ื™ืฉ ื“ื‘ืจ ื›ื–ื” ืชื™ืขื•ื“, ื•ืื ืืชื” ืžืกืชื›ืœ ืฉื, ื™ืฉ ืกืขื™ืฃ ืžื“ื™ื ื™ื•ืช ืื‘ื˜ื—ืช ื”ืคื•ื“.

ื–ื”ื• ืื•ื‘ื™ื™ืงื˜ yaml - ืื ื—ื ื• ื™ื›ื•ืœื™ื ืœื™ืฆื•ืจ ืื•ืชื• ื‘ืืฉื›ื•ืœ Kubernetes - ื”ืฉื•ืœื˜ ื‘ื”ื™ื‘ื˜ื™ ืื‘ื˜ื—ื” ืกืคืฆื™ืคื™ืช ื‘ืชื™ืื•ืจ ื”ืคื•ื“ื™ื. ื›ืœื•ืžืจ, ืœืžืขืฉื”, ื”ื•ื ืฉื•ืœื˜ ื‘ื–ื›ื•ื™ื•ืช ื”ืฉื™ืžื•ืฉ ื‘ื›ืœ hostNetwork, hostPID, ืกื•ื’ื™ ืืžืฆืขื™ ืื—ืกื•ืŸ ืžืกื•ื™ืžื™ื ืฉื ืžืฆืื™ื ื‘-pods ื‘ืขืช ื”ื”ืคืขืœื”. ื‘ืขื–ืจืช Pod Security Policy, ื ื™ืชืŸ ืœืชืืจ ืืช ื›ืœ ื–ื”.

ื”ื“ื‘ืจ ื”ืžืขื ื™ื™ืŸ ื‘ื™ื•ืชืจ ื‘ืžื“ื™ื ื™ื•ืช ื”ืื‘ื˜ื—ื” ืฉืœ Pod ื”ื•ื ืฉื‘ืืฉื›ื•ืœ Kubernetes, ื›ืœ ืžืชืงื™ื ื™ ื”-PSP ืœื ืคืฉื•ื˜ ืœื ืžืชื•ืืจื™ื ื‘ืฉื•ื ืฆื•ืจื”, ื”ื ืคืฉื•ื˜ ืžื•ืฉื‘ืชื™ื ื›ื‘ืจื™ืจืช ืžื—ื“ืœ. Pod Security Policy ืžื•ืคืขืœืช ื‘ืืžืฆืขื•ืช ืชื•ืกืฃ ื”ืงื‘ืœื”.

ืื•ืงื™ื™, ื‘ื•ื ื ืคืจื•ืก ืืช ืžื“ื™ื ื™ื•ืช ื”ืื‘ื˜ื—ื” ืฉืœ Pod ืœืชื•ืš ื”ืืฉื›ื•ืœ, ื ื ื™ื— ืฉื™ืฉ ืœื ื• ื›ืžื” ืชืจืžื™ืœื™ื ืฉืœ ืฉื™ืจื•ืช ื‘ืžืจื—ื‘ ื”ืฉืžื•ืช, ืฉืจืง ืœืžื ื”ืœื™ื ื™ืฉ ื’ื™ืฉื” ืืœื™ื”ื. ื ื ื™ื—, ื‘ื›ืœ ืฉืืจ ื”ืžืงืจื™ื, ืœืชืจืžื™ืœื™ื ื™ืฉ ื–ื›ื•ื™ื•ืช ืžื•ื’ื‘ืœื•ืช. ืžื›ื™ื•ื•ืŸ ืฉืกื‘ื™ืจ ืœื”ื ื™ื— ืฉืžืคืชื—ื™ื ืœื ืฆืจื™ื›ื™ื ืœื”ืคืขื™ืœ ืคื•ื“ื™ื ืžื•ืขื“ืคื™ื ื‘ืืฉื›ื•ืœ ืฉืœืš.

ื•ื ืจืื” ืฉื”ื›ืœ ื‘ืกื“ืจ ืื™ืชื ื•. ื•ืื™ ืืคืฉืจ ืœืคืจื•ืฅ ืœืืฉื›ื•ืœ Kubernetes ืฉืœื ื• ืชื•ืš ืฉืชื™ ื“ืงื•ืช.

ื™ืฉ ื‘ืขื™ื”. ืกื‘ื™ืจ ืœื”ื ื™ื— ืฉืื ื™ืฉ ืœืš ืืฉื›ื•ืœ Kubernetes, ืื– ื”ื ื™ื˜ื•ืจ ืžื•ืชืงืŸ ื‘ืืฉื›ื•ืœ ืฉืœืš. ืืคื™ืœื• ื”ื™ื™ืชื™ ืžืจื—ื™ืง ืœื›ืช ื•ืœื—ื–ื•ืช ืฉืื ืœืืฉื›ื•ืœ ืฉืœืš ื™ืฉ ื ื™ื˜ื•ืจ, ื”ื•ื ื™ื™ืงืจื ืคืจื•ืžืชืื•ืก.

ืžื” ืฉืื ื™ ืขื•ืžื“ ืœืกืคืจ ืœื›ื ื™ื”ื™ื” ืชืงืฃ ื”ืŸ ืขื‘ื•ืจ ืžืคืขื™ืœ ืคืจื•ืžืชืื•ืก ื•ื”ืŸ ืขื‘ื•ืจ ืคืจื•ืžืชืื•ืก ืฉื ืžืกืจ ื‘ืฆื•ืจืชื• ื”ื˜ื”ื•ืจื”. ื”ืฉืืœื” ื”ื™ื ืฉืื ืื ื™ ืœื ืžืฆืœื™ื— ืœื”ื›ื ื™ืก ืื“ืžื™ืŸ ืœืืฉื›ื•ืœ ื›ืœ ื›ืš ืžื”ืจ, ื–ื” ืื•ืžืจ ืฉืื ื™ ืฆืจื™ืš ืœื—ืคืฉ ื™ื•ืชืจ. ื•ืื ื™ ื™ื›ื•ืœ ืœื—ืคืฉ ื‘ืขื–ืจืช ื”ื ื™ื˜ื•ืจ ืฉืœืš.

ื›ื ืจืื” ื›ื•ืœื ืงืจืื• ืืช ืื•ืชื ืžืืžืจื™ื ืขืœ Habrรฉ, ื•ื”ื ื™ื˜ื•ืจ ืžืžื•ืงื ื‘ืžืจื—ื‘ ื”ืฉืžื•ืช ืฉืœ ื”ื ื™ื˜ื•ืจ. ืชืจืฉื™ื ื”ื’ื” ื ืงืจื ื‘ืขืจืš ืื•ืชื• ื”ื“ื‘ืจ ืขื‘ื•ืจ ื›ื•ืœื. ืื ื™ ืžื ื—ืฉ ืฉืื ืืชื” ืขื•ืฉื” ื”ืชืงื ืช ื”ื’ื” ื™ืฆื™ื‘/ืคืจื•ืžืชืื•ืก, ืืชื” ืชืงื‘ืœ ื‘ืขืจืš ืื•ืชื ืฉืžื•ืช. ื•ืกื‘ื™ืจ ืœื”ื ื™ื— ืฉืืคื™ืœื• ืœื ืืฆื˜ืจืš ืœื ื—ืฉ ืืช ืฉื ื”-DNS ื‘ืืฉื›ื•ืœ ืฉืœืš. ื›ื™ ื–ื” ืกื˜ื ื“ืจื˜ื™.

ืชื™ืงื•ืŸ ื—ื•ืจื™ื ื‘ืืฉื›ื•ืœ Kubernetes. ื“ื•ื— ื•ืชืžืœื•ืœ ืž-DevOpsConf

ื‘ืฉืœื‘ ื”ื‘ื ื™ืฉ ืœื ื• ืคื™ืชื•ื—ื™ื ืžืกื•ื™ืžื™ื, ืฉื‘ื”ื ืืชื” ื™ื›ื•ืœ ืœื”ืคืขื™ืœ ืคื•ื“ ืžืกื•ื™ื. ื•ืื– ืžื”ืคื•ื“ ื”ื–ื” ืงืœ ืžืื•ื“ ืœืขืฉื•ืช ืžืฉื”ื• ื›ื–ื”:

$ curl http://prometheus-kube-state-metrics.monitoring 

prometheus-kube-state-metrics ื”ื™ื ืื—ืช ืžื™ืฆื•ืื ื™ื•ืช Prometheus ืฉืื•ืกืคืช ืžื“ื“ื™ื ืž-Kubernetes API ืขืฆืžื•. ื™ืฉ ืฉื ื”ืจื‘ื” ื ืชื•ื ื™ื, ืžื” ืคื•ืขืœ ื‘ืืฉื›ื•ืœ ืฉืœืš, ืžื” ื–ื”, ืื™ืœื• ื‘ืขื™ื•ืช ื™ืฉ ืœืš ืื™ืชื•.

ื›ื“ื•ื’ืžื” ืคืฉื•ื˜ื”:

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

ืขืœ ื™ื“ื™ ื‘ืงืฉืช ืชืœืชืœ ืคืฉื•ื˜ื” ืžืชืจืžื™ืœ ื—ืกืจ ื–ื›ื•ื™ื•ืช, ืืชื” ื™ื›ื•ืœ ืœืงื‘ืœ ืืช ื”ืžื™ื“ืข ื”ื‘ื. ืื ืื™ื ืš ื™ื•ื“ืข ืื™ื–ื• ื’ืจืกื” ืฉืœ Kubernetes ืืชื” ืžืคืขื™ืœ, ื–ื” ื™ืกื‘ื™ืจ ืœืš ื‘ืงืœื•ืช.

ื•ื”ื“ื‘ืจ ื”ืžืขื ื™ื™ืŸ ื‘ื™ื•ืชืจ ื”ื•ื ืฉื‘ื ื•ืกืฃ ืœื’ื™ืฉื” ืœ-kube-state-metrics, ืืชื” ื™ื›ื•ืœ ื‘ืื•ืชื” ืงืœื•ืช ืœื’ืฉืช ื™ืฉื™ืจื•ืช ืœ-Prometheus ืขืฆืžื•. ืืชื” ื™ื›ื•ืœ ืœืืกื•ืฃ ืžื“ื“ื™ื ืžืฉื. ืืชื” ื™ื›ื•ืœ ืืคื™ืœื• ืœื‘ื ื•ืช ืžื“ื“ื™ื ืžืฉื. ืืคื™ืœื• ืชื™ืื•ืจื˜ื™ืช, ืืชื” ื™ื›ื•ืœ ืœื‘ื ื•ืช ืฉืื™ืœืชื” ื›ื–ื• ืžืืฉื›ื•ืœ ื‘ืคืจื•ืžืชืื•ืก, ืฉืคืฉื•ื˜ ื™ื›ื‘ื” ืื•ืชื”. ื•ื”ื ื™ื˜ื•ืจ ืฉืœืš ื™ืคืกื™ืง ืœืคืขื•ืœ ืžื”ืืฉื›ื•ืœ ืœื—ืœื•ื˜ื™ืŸ.

ื•ื›ืืŸ ื ืฉืืœืช ื”ืฉืืœื” ื”ืื ื ื™ื˜ื•ืจ ื—ื™ืฆื•ื ื™ ื›ืœืฉื”ื• ืžื ื˜ืจ ืืช ื”ื ื™ื˜ื•ืจ ืฉืœืš. ื‘ื“ื™ื•ืง ืงื™ื‘ืœืชื™ ืืช ื”ื”ื–ื“ืžื ื•ืช ืœืคืขื•ืœ ื‘ืืฉื›ื•ืœ Kubernetes ื‘ืœื™ ืฉื•ื ื”ืฉืœื›ื•ืช ืขืœ ืขืฆืžื™. ืืชื” ืืคื™ืœื• ืœื ืชื“ืข ืฉืื ื™ ืคื•ืขืœ ืฉื, ื›ื™ ืื™ืŸ ื™ื•ืชืจ ื ื™ื˜ื•ืจ.

ื‘ื“ื™ื•ืง ื›ืžื• ืขื ื”-PSP, ื–ื” ืžืจื’ื™ืฉ ื›ืื™ืœื• ื”ื‘ืขื™ื” ื”ื™ื ืฉื›ืœ ื”ื˜ื›ื ื•ืœื•ื’ื™ื•ืช ื”ืžืคื•ืืจื•ืช ื”ืืœื” - Kubernetes, Prometheus - ื”ืŸ ืคืฉื•ื˜ ืœื ืขื•ื‘ื“ื•ืช ื•ืžืœืื•ืช ื—ื•ืจื™ื. ืœื ื‘ืืžืช.

ื™ืฉ ื“ื‘ืจ ื›ื–ื” - ืžื“ื™ื ื™ื•ืช ืจืฉืช.

ืื ืืชื” ืžื ื”ืœ ืจื’ื™ืœ, ืกื‘ื™ืจ ืœื”ื ื™ื— ืฉืืชื” ื™ื•ื“ืข ืขืœ ืžื“ื™ื ื™ื•ืช ื”ืจืฉืช ืฉื–ื” ืจืง ืขื•ื“ yaml, ืฉื›ื‘ืจ ื™ืฉ ื”ืจื‘ื” ืžื”ื ื‘ืืฉื›ื•ืœ. ื•ื—ืœืง ืžืžื“ื™ื ื™ื•ืช ื”ืจืฉืช ื‘ื”ื—ืœื˜ ืœื ื ื—ื•ืฆื”. ื•ื’ื ืื ืงืจืืชื ืžื”ื™ ืžื“ื™ื ื™ื•ืช ืจืฉืช, ืฉื”ื™ื ื—ื•ืžืช ืืฉ ืฉืœ yaml ืฉืœ Kubernetes, ื”ื™ื ืžืืคืฉืจืช ืœื›ื ืœื”ื’ื‘ื™ืœ ื–ื›ื•ื™ื•ืช ื’ื™ืฉื” ื‘ื™ืŸ ืžืจื—ื‘ื™ ืฉืžื•ืช, ื‘ื™ืŸ ืคื•ื“ื™ื, ืื– ื‘ื”ื—ืœื˜ ื”ื—ืœื˜ืชื ืฉื—ื•ืžืช ื”ืืฉ ื‘ืคื•ืจืžื˜ yaml ื‘-Kubernetes ืžื‘ื•ืกืกืช ืขืœ ื”ื”ืคืฉื˜ื•ืช ื”ื‘ืื•ืช ... ืœื, ืœื. ื–ื” ื‘ื”ื—ืœื˜ ืœื ื”ื›ืจื—ื™.

ื’ื ืื ืœื ืืžืจืช ืœืžื•ืžื—ื™ ื”ืื‘ื˜ื—ื” ืฉืœืš ืฉืฉื™ืžื•ืฉ ื‘-Kubernetes ืฉืœืš ืืชื” ื™ื›ื•ืœ ืœื‘ื ื•ืช ื—ื•ืžืช ืืฉ ืงืœื” ื•ืคืฉื•ื˜ื” ืžืื•ื“, ื•ืคืจื˜ื ื™ืช ืžืื•ื“. ืื ื”ื ืขื“ื™ื™ืŸ ืœื ื™ื•ื“ืขื™ื ืืช ื–ื” ื•ืœื ืžืคืจื™ืขื™ื ืœืš: "ื˜ื•ื‘, ืชืŸ ืœื™, ืชืŸ โ€‹โ€‹ืœื™..." ืื– ื‘ื›ืœ ืžืงืจื”, ืืชื” ืฆืจื™ืš ืžื“ื™ื ื™ื•ืช ืจืฉืช ื›ื“ื™ ืœื—ืกื•ื ื’ื™ืฉื” ืœื›ืžื” ืžืงื•ืžื•ืช ืฉื™ืจื•ืช ืฉื ื™ืชืŸ ืœืžืฉื•ืš ืžื”ืืฉื›ื•ืœ ืฉืœืš ืœืœื ื›ืœ ืื™ืฉื•ืจ.

ื›ืžื• ื‘ื“ื•ื’ืžื” ืฉื ืชืชื™, ืืชื” ื™ื›ื•ืœ ืœื”ืขืœื•ืช ืžื“ื“ื™ ืžืฆื‘ kube ืžื›ืœ ืžืจื—ื‘ ืฉืžื•ืช ื‘ืืฉื›ื•ืœ Kubernetes ืžื‘ืœื™ ืฉืชื”ื™ื” ืœืš ื–ื›ื•ื™ื•ืช ืœืขืฉื•ืช ื–ืืช. ืœืžื“ื™ื ื™ื•ืช ื”ืจืฉืช ื™ืฉ ื’ื™ืฉื” ืกื’ื•ืจื” ืžื›ืœ ืžืจื—ื‘ื™ ื”ืฉืžื•ืช ื”ืื—ืจื™ื ืœืžืจื—ื‘ ื”ืฉืžื•ืช ื”ื ื™ื˜ื•ืจ ื•ื–ื”ื•: ืื™ืŸ ื’ื™ืฉื”, ืื™ืŸ ื‘ืขื™ื•ืช. ื‘ื›ืœ ื”ืชืจืฉื™ืžื™ื ืฉืงื™ื™ืžื™ื, ื’ื ื”-Prometheus ื”ืกื˜ื ื“ืจื˜ื™ ื•ื’ื ื”-Prometheus ืฉื ืžืฆื ื‘ืžืคืขื™ืœ, ื™ืฉ ืคืฉื•ื˜ ืืคืฉืจื•ืช ื‘ืขืจื›ื™ ื”ื”ื’ื” ืคืฉื•ื˜ ืœื”ืคืขื™ืœ ืขื‘ื•ืจื ืžื“ื™ื ื™ื•ืช ืจืฉืช. ืืชื” ืจืง ืฆืจื™ืš ืœื”ืคืขื™ืœ ืืช ื–ื” ื•ื”ื ื™ืขื‘ื“ื•.

ื™ืฉ ื›ืืŸ ื‘ืืžืช ื‘ืขื™ื” ืื—ืช. ื‘ื”ื™ื•ืชืš ืžื ื”ืœ ืžื–ื•ืงืŸ ืจื’ื™ืœ, ืกื‘ื™ืจ ืœื”ื ื™ื— ืฉื”ื—ืœื˜ืช ืฉืื™ืŸ ืฆื•ืจืš ื‘ืžื“ื™ื ื™ื•ืช ืจืฉืช. ื•ืื—ืจื™ ืฉืงืจืืช ื›ืœ ืžื™ื ื™ ืžืืžืจื™ื ืขืœ ืžืฉืื‘ื™ื ื›ืžื• Habr, ื”ื—ืœื˜ืช ืฉืคืœื ืœ, ื‘ืžื™ื•ื—ื“ ืขื ืžืฆื‘ ืฉืขืจ-ืžืืจื—, ื”ื•ื ื”ื“ื‘ืจ ื”ื˜ื•ื‘ ื‘ื™ื•ืชืจ ืฉืืชื” ื™ื›ื•ืœ ืœื‘ื—ื•ืจ.

ืžื” ืœืขืฉื•ืช?

ืืชื” ื™ื›ื•ืœ ืœื ืกื•ืช ืœืคืจื•ืก ืžื—ื“ืฉ ืืช ืคืชืจื•ืŸ ื”ืจืฉืช ืฉื™ืฉ ืœืš ื‘ืืฉื›ื•ืœ Kubernetes ืฉืœืš, ืœื ืกื•ืช ืœื”ื—ืœื™ืฃ ืื•ืชื• ื‘ืžืฉื”ื• ืคื•ื ืงืฆื™ื•ื ืœื™ ื™ื•ืชืจ. ืขื‘ื•ืจ ืื•ืชื• Calico, ืœืžืฉืœ. ืื‘ืœ ืื ื™ ืจื•ืฆื” ืœื•ืžืจ ืžื™ื“ ืฉื”ืžืฉื™ืžื” ืฉืœ ืฉื™ื ื•ื™ ืคืชืจื•ืŸ ื”ืจืฉืช ื‘ืืฉื›ื•ืœ ืขื‘ื•ื“ื” ืฉืœ Kubernetes ื”ื™ื ื“ื™ ืœื ื˜ืจื™ื•ื•ื™ืืœื™ืช. ืคืชืจืชื™ ืืช ื–ื” ืคืขืžื™ื™ื (ื‘ืฉืชื™ ื”ืคืขืžื™ื, ืœืขื•ืžืช ื–ืืช, ืชื™ืื•ืจื˜ื™ืช), ืื‘ืœ ืืคื™ืœื• ื”ืจืื™ื ื• ืื™ืš ืขื•ืฉื™ื ืืช ื–ื” ื‘-Slurms. ืขื‘ื•ืจ ื”ืชืœืžื™ื“ื™ื ืฉืœื ื•, ื”ืจืื™ื ื• ื›ื™ืฆื“ ืœืฉื ื•ืช ืืช ืคืชืจื•ืŸ ื”ืจืฉืช ื‘ืืฉื›ื•ืœ Kubernetes. ื‘ืื•ืคืŸ ืขืงืจื•ื ื™, ืืคืฉืจ ืœื ืกื•ืช ืœื•ื•ื“ื ืฉืœื ืชื”ื™ื” ื”ืฉื‘ืชื” ื‘ืืฉื›ื•ืœ ื”ื™ื™ืฆื•ืจ. ืื‘ืœ ื›ื ืจืื” ืฉืœื ืชืฆืœื™ื—.

ื•ื”ื‘ืขื™ื” ื ืคืชืจืช ืœืžืขืฉื” ื‘ืคืฉื˜ื•ืช ืจื‘ื”. ื™ืฉ ืชืขื•ื“ื•ืช ื‘ืืฉื›ื•ืœ, ื•ืืชื” ื™ื•ื“ืข ืฉืชื•ืงืคื ืฉืœ ื”ืชืขื•ื“ื•ืช ืฉืœืš ื™ืคื•ื’ ื‘ืขื•ื“ ืฉื ื”. ื•ื‘ื›ืŸ, ื•ื‘ื“ืจืš ื›ืœืœ ืคืชืจื•ืŸ ืจื’ื™ืœ ืขื ืชืขื•ื“ื•ืช ื‘ืืฉื›ื•ืœ - ืœืžื” ืื ื—ื ื• ื“ื•ืื’ื™ื, ื ืงื™ื ืืฉื›ื•ืœ ื—ื“ืฉ ื‘ืงืจื‘ืช ืžืงื•ื, ื ื ื™ื— ืœื™ืฉืŸ ืœื”ื™ืจืงื‘ ื•ื ืคืจื•ืก ื”ื›ืœ ืžื—ื“ืฉ. ื ื›ื•ืŸ, ื›ืฉื”ื•ื ืจืงื•ื‘, ื ืฆื˜ืจืš ืœืฉื‘ืช ื™ื•ื ืื—ื“, ืื‘ืœ ื”ื ื” ืืฉื›ื•ืœ ื—ื“ืฉ.

ื›ืืฉืจ ืืชื” ืžืขืœื” ืืฉื›ื•ืœ ื—ื“ืฉ, ื‘ืื•ืชื• ื”ื–ืžืŸ ื”ื›ื ืก Calico ื‘ืžืงื•ื ืคืœื ืœ.

ืžื” ืœืขืฉื•ืช ืื ื”ืชืขื•ื“ื•ืช ืฉืœืš ืžื•ื ืคืงื•ืช ืœืžืื” ืฉื ื™ื ื•ืืชื” ืœื ืžืชื›ื•ื•ืŸ ืœืคืจื•ืก ืžื—ื“ืฉ ืืช ื”ืืฉื›ื•ืœ? ื™ืฉ ื“ื‘ืจ ื›ื–ื” Kube-RBAC-Proxy. ื–ื”ื• ืคื™ืชื•ื— ืžื’ื ื™ื‘ ืžืื•ื“, ื”ื•ื ืžืืคืฉืจ ืœืš ืœื”ื˜ืžื™ืข ืืช ืขืฆืžื• ื›ืžื™ื›ืœ ืฆื“ื“ื™ ืœื›ืœ ืชืจืžื™ืœ ื‘ืืฉื›ื•ืœ Kubernetes. ื•ื–ื” ืœืžืขืฉื” ืžื•ืกื™ืฃ ืื™ืฉื•ืจ ืœืชืจืžื™ืœ ื”ื–ื” ื“ืจืš RBAC ืฉืœ Kubernetes ืขืฆืžื•.

ื™ืฉ ื‘ืขื™ื” ืื—ืช. ื‘ืขื‘ืจ, ืคืชืจื•ืŸ Kube-RBAC-Proxy ื–ื” ื”ื™ื” ืžื•ื‘ื ื” ื‘-Prometheus ืฉืœ ื”ืžืคืขื™ืœ. ืื‘ืœ ืื– ื”ื•ื ื ืขืœื. ื›ืขืช ื’ืจืกืื•ืช ืžื•ื“ืจื ื™ื•ืช ืžืกืชืžื›ื•ืช ืขืœ ื”ืขื•ื‘ื“ื” ืฉื™ืฉ ืœืš ืžื“ื™ื ื™ื•ืช ืจืฉืช ื•ืกื•ื’ืจื™ื ืื•ืชื” ื‘ืืžืฆืขื•ืชืŸ. ื•ืœื›ืŸ ื ืฆื˜ืจืš ืœืฉื›ืชื‘ ืžืขื˜ ืืช ื”ืชืจืฉื™ื. ืœืžืขืฉื”, ืื ืืชื” ื”ื•ืœืš ืœ ื”ืžืื’ืจ ื”ื–ื”, ื™ืฉ ื“ื•ื’ืžืื•ืช ื›ื™ืฆื“ ืœื”ืฉืชืžืฉ ื‘ื–ื” ื›ืจื›ื‘ื™ื ืฆื“ื“ื™ื™ื, ื•ืืช ื”ืชืจืฉื™ืžื™ื ื™ื”ื™ื” ืฆื•ืจืš ืœืฉื›ืชื‘ ื‘ืื•ืคืŸ ืžื™ื ื™ืžืœื™.

ื™ืฉ ืขื•ื“ ื‘ืขื™ื” ืื—ืช ืงื˜ื ื”. ืคืจื•ืžืชืื•ืก ื”ื•ื ืœื ื”ื™ื—ื™ื“ ืฉืžื—ืœืง ืืช ื”ืžื“ื“ื™ื ืฉืœื• ืœื›ืœ ืื—ื“. ื›ืœ ืจื›ื™ื‘ื™ ืืฉื›ื•ืœ Kubernetes ืฉืœื ื• ื™ื›ื•ืœื™ื ื’ื ืœื”ื—ื–ื™ืจ ืžื“ื“ื™ื ืžืฉืœื”ื.

ืื‘ืœ ื›ืคื™ ืฉื›ื‘ืจ ืืžืจืชื™, ืื ืืชื” ืœื ื™ื›ื•ืœ ืœื’ืฉืช ืœืืฉื›ื•ืœ ื•ืœืืกื•ืฃ ืžื™ื“ืข, ืื– ืืชื” ื™ื›ื•ืœ ืœืคื—ื•ืช ืœื”ื–ื™ืง.

ืื– ืื ื™ ืืจืื” ื‘ืžื”ื™ืจื•ืช ืฉืชื™ ื“ืจื›ื™ื ื›ื™ืฆื“ ื ื™ืชืŸ ืœื”ืจื•ืก ืืฉื›ื•ืœ Kubernetes.

ืืชื” ืชืฆื—ืง ื›ืฉืื’ื™ื“ ืœืš ืืช ื–ื”, ืืœื” ืฉื ื™ ืžืงืจื™ื ื‘ื—ื™ื™ื ื”ืืžื™ืชื™ื™ื.

ืฉื™ื˜ื” ืจืืฉื•ื ื”. ื“ืœื“ื•ืœ ืžืฉืื‘ื™ื.

ื‘ื•ืื• ื ืฉื™ืง ืขื•ื“ ืคื•ื“ ืžื™ื•ื—ื“. ื™ื”ื™ื” ืœื• ืงื˜ืข ื›ื–ื”.

resources: 
    requests: 
        cpu: 4 
        memory: 4Gi 

ื›ืคื™ ืฉืืชื” ื™ื•ื“ืข, ื‘ืงืฉื•ืช ื”ื™ื ื›ืžื•ืช ื”ืžืขื‘ื“ ื•ื”ื–ื™ื›ืจื•ืŸ ืฉืฉืžื•ืจื™ื ื‘ืžืืจื— ืขื‘ื•ืจ ืคื•ื“ื™ื ืกืคืฆื™ืคื™ื™ื ืขื ื‘ืงืฉื•ืช. ืื ื™ืฉ ืœื ื• ืžืืจื— ืืจื‘ืข ืœื™ื‘ื•ืช ื‘ืืฉื›ื•ืœ Kubernetes, ื•ืืจื‘ืขื” ืคื•ื“ื™ื ืฉืœ CPU ืžื’ื™ืขื™ื ืœืฉื ืขื ื‘ืงืฉื•ืช, ื–ื” ืื•ืžืจ ืฉืœื ื™ื•ื›ืœื• ื™ื•ืชืจ ืคื•ื“ื™ื ืขื ื‘ืงืฉื•ืช ืœื”ื’ื™ืข ืืœ ื”ืžืืจื— ื”ื–ื”.

ืื ืื ื™ ืžืจื™ืฅ ืคื•ื“ ื›ื–ื”, ืื– ืื ื™ ืืคืขื™ืœ ืืช ื”ืคืงื•ื“ื”:

$ kubectl scale special-pod --replicas=...

ืื– ืืฃ ืื—ื“ ืื—ืจ ืœื ื™ื•ื›ืœ ืœืคืจื•ืก ืœืืฉื›ื•ืœ Kubernetes. ื›ื™ ื›ืœ ื”ืฆืžืชื™ื ื™ื™ื’ืžืจื• ื”ื‘ืงืฉื•ืช. ื•ื‘ื›ืš ืืขืฆื•ืจ ืืช ืืฉื›ื•ืœ Kubernetes ืฉืœืš. ืื ืืขืฉื” ื–ืืช ื‘ืขืจื‘, ืื•ื›ืœ ืœืขืฆื•ืจ ืืช ื”ืคืจื™ืกื•ืช ืœืžืฉืš ื“ื™ ื”ืจื‘ื” ื–ืžืŸ.

ืื ื ืกืชื›ืœ ืฉื•ื‘ ืขืœ ื”ืชื™ืขื•ื“ ืฉืœ Kubernetes, ื ืจืื” ืืช ื”ื“ื‘ืจ ื”ื–ื” ืฉื ืงืจื Limit Range. ื”ื•ื ืžื’ื“ื™ืจ ืžืฉืื‘ื™ื ืขื‘ื•ืจ ืื•ื‘ื™ื™ืงื˜ื™ ืืฉื›ื•ืœ. ืืชื” ื™ื›ื•ืœ ืœื›ืชื•ื‘ ืื•ื‘ื™ื™ืงื˜ Limit Range ื‘-yaml, ืœื”ื—ื™ืœ ืื•ืชื• ืขืœ ืžืจื—ื‘ื™ ืฉืžื•ืช ืžืกื•ื™ืžื™ื - ื•ืื– ื‘ืžืจื—ื‘ ื”ืฉืžื•ืช ื”ื–ื” ืืชื” ื™ื›ื•ืœ ืœื•ืžืจ ืฉื™ืฉ ืœืš ืžืฉืื‘ื™ื ื‘ืจื™ืจืช ืžื—ื“ืœ, ืžืงืกื™ืžื•ื ื•ืžื™ื ื™ืžื•ื ืขื‘ื•ืจ ื”ืคื•ื“ื™ื.

ื‘ืขื–ืจืช ื“ื‘ืจ ื›ื–ื”, ืื ื—ื ื• ื™ื›ื•ืœื™ื ืœื”ื’ื‘ื™ืœ ืžืฉืชืžืฉื™ื ื‘ืžืจื—ื‘ื™ ืฉืžื•ืช ืฉืœ ืžื•ืฆืจื™ื ืกืคืฆื™ืคื™ื™ื ืฉืœ ืฆื•ื•ืชื™ื ื‘ื™ื›ื•ืœืช ืœืฆื™ื™ืŸ ื›ืœ ืžื™ื ื™ ื“ื‘ืจื™ื ืžื’ืขื™ืœื™ื ืขืœ ื”ืชืจืžื™ืœื™ื ืฉืœื”ื. ืื‘ืœ ืœืžืจื‘ื” ื”ืฆืขืจ, ื’ื ืื ืชื’ื™ื“ ืœืžืฉืชืžืฉ ืฉื”ื•ื ืœื ื™ื›ื•ืœ ืœื”ืคืขื™ืœ ืคื•ื“ื™ื ืขื ื‘ืงืฉื•ืช ืœื™ื•ืชืจ ืžืžืขื‘ื“ ืื—ื“, ื™ืฉ ืคืงื•ื“ืช ืงื ื” ืžื™ื“ื” ื ืคืœืื” ื›ื–ื•, ืื• ืฉื”ื ื™ื›ื•ืœื™ื ืœื‘ืฆืข ืงื ื” ืžื™ื“ื” ื“ืจืš ืœื•ื— ื”ืžื—ื•ื•ื ื™ื.

ื•ืžื›ืืŸ ื‘ืื” ืฉื™ื˜ื” ืžืกืคืจ ืฉืชื™ื™ื. ืื ื• ืžืฉื™ืงื™ื 11 ืคื•ื“ื™ื. ื–ื” ืื—ื“ ืขืฉืจ ืžื™ืœื™ืืจื“. ื–ื” ืœื ื‘ื’ืœืœ ืฉืžืฆืืชื™ ืžืกืคืจ ื›ื–ื”, ืืœื ื‘ื’ืœืœ ืฉืจืื™ืชื™ ืื•ืชื• ื‘ืขืฆืžื™.

ืกื™ืคื•ืจ ืืžื™ืชื™. ื‘ืฉืขืช ืขืจื‘ ืžืื•ื—ืจืช ืขืžื“ืชื™ ืœืขื–ื•ื‘ ืืช ื”ืžืฉืจื“. ืื ื™ ืจื•ืื” ืงื‘ื•ืฆื” ืฉืœ ืžืคืชื—ื™ื ื™ื•ืฉื‘ื™ื ื‘ืคื™ื ื”, ืขื•ืฉื™ื ืžืฉื”ื• ื‘ื˜ื™ืจื•ืฃ ืขื ื”ืžื—ืฉื‘ื™ื ื”ื ื™ื™ื“ื™ื ืฉืœื”ื. ืื ื™ ื ื™ื’ืฉ ืืœ ื”ื—ื‘ืจ'ื” ื•ืฉื•ืืœ: "ืžื” ืงืจื” ืœื›ื?"

ืงืฆืช ืงื•ื“ื, ื‘ืกื‘ื™ื‘ื•ืช ืชืฉืข ื‘ืขืจื‘, ืื—ื“ ื”ืžืคืชื—ื™ื ื”ืชื›ื•ื ืŸ ืœืœื›ืช ื”ื‘ื™ืชื”. ื•ื”ื—ืœื˜ืชื™: "ืขื›ืฉื™ื• ืื ื™ ืืงื˜ืŸ ืืช ื”ื‘ืงืฉื” ืฉืœื™ ืœืื—ื“." ืœื—ืฆืชื™ ืขืœ ืื—ื“, ืื‘ืœ ื”ืื™ื ื˜ืจื ื˜ ื”ืื˜ ืžืขื˜. ื”ื•ื ืœื—ืฅ ืฉื•ื‘ ืขืœ ื”ืื—ื“, ื”ื•ื ืœื—ืฅ ืขืœ ื”ืื—ื“ ื•ืœื—ืฅ ืขืœ ืื ื˜ืจ. ื—ื™ื˜ื˜ืชื™ ื‘ื›ืœ ืžื” ืฉื™ื›ื•ืœืชื™. ื•ืื– ื”ืื™ื ื˜ืจื ื˜ ื”ืชืขื•ืจืจ ืœื—ื™ื™ื - ื•ื”ื›ืœ ื”ืชื—ื™ืœ ืœืจื“ืช ืœืžืกืคืจ ื”ื–ื”.

ื ื›ื•ืŸ, ื”ืกื™ืคื•ืจ ื”ื–ื” ืœื ื”ืชืจื—ืฉ ื‘-Kubernetes; ื‘ืื•ืชื” ืชืงื•ืคื” ื–ื” ื”ื™ื” ื ื•ืžืื“. ื–ื” ื”ืกืชื™ื™ื ื‘ืขื•ื‘ื“ื” ืฉืื—ืจื™ ืฉืขื” ืฉืœ ื ื™ืกื™ื•ื ื•ืชื™ื ื• ืœืขืฆื•ืจ ืืช ื ื•ืžืื“ ืžื ื™ืกื™ื•ื ื•ืช ืžืชืžืฉื›ื™ื ืœื”ืจื—ื™ื‘ ืืช ืงื ื” ื”ืžื™ื“ื”, ื ื•ืžืื“ ื”ืฉื™ื‘ ืฉื”ื•ื ืœื ื™ืคืกื™ืง ืœื”ืจื—ื™ื‘ ื•ืœื ื™ืขืฉื” ืฉื•ื ื“ื‘ืจ ืื—ืจ. "ืื ื™ ืขื™ื™ืฃ, ืื ื™ ืขื•ื–ื‘." ื•ื”ื•ื ื”ืชื›ืจื‘ืœ.

ื‘ืื•ืคืŸ ื˜ื‘ืขื™, ื ื™ืกื™ืชื™ ืœืขืฉื•ืช ืืช ืื•ืชื• ื”ื“ื‘ืจ ื‘- Kubernetes. ืงื•ื‘ืจื ื˜ืก ืœื ื”ื™ื” ืžืจื•ืฆื” ืžืื—ื“ ืขืฉืจ ืžื™ืœื™ืืจื“ ืชืจืžื™ืœื™ื, ื”ื•ื ืืžืจ: "ืื ื™ ืœื ื™ื›ื•ืœ. ืขื•ืœื” ืขืœ ืžื’ื ื™ ื”ืคื” ื”ืคื ื™ืžื™ื™ื". ืื‘ืœ 1 ืชืจืžื™ืœื™ื ื™ื›ื•ืœื™ื.

ื‘ืชื’ื•ื‘ื” ืœืžื™ืœื™ืืจื“, ื”ืงื•ื‘ื™ื” ืœื ื ืกื•ื’ื” ืœืชื•ืš ืขืฆืžื”. ื”ื•ื ื‘ืืžืช ื”ืชื—ื™ืœ ืœื”ื’ื“ื™ืœ. ื›ื›ืœ ืฉื”ืชื”ืœื™ืš ื”ืชืงื“ื ื™ื•ืชืจ, ืœืงื— ืœื• ื™ื•ืชืจ ื–ืžืŸ ืœื™ืฆื•ืจ ืชืจืžื™ืœื™ื ื—ื“ืฉื™ื. ืื‘ืœ ืขื“ื™ื™ืŸ ื”ืชื”ืœื™ืš ื ืžืฉืš. ื”ื‘ืขื™ื” ื”ื™ื—ื™ื“ื” ื”ื™ื ืฉืื ืื ื™ ื™ื›ื•ืœ ืœื”ืคืขื™ืœ ืคื•ื“ื™ื ืœืœื ื”ื’ื‘ืœื” ื‘ืžืจื—ื‘ ื”ืฉืžื•ืช ืฉืœื™, ืื– ื’ื ื‘ืœื™ ื‘ืงืฉื•ืช ื•ืžื’ื‘ืœื•ืช ืื ื™ ื™ื›ื•ืœ ืœื”ืคืขื™ืœ ื›ืœ ื›ืš ื”ืจื‘ื” ืคื•ื“ื™ื ืขื ื›ืžื” ืžืฉื™ืžื•ืช ืฉื‘ืขื–ืจืช ื”ืžืฉื™ืžื•ืช ื”ืืœื• ื”ืฆืžืชื™ื ื™ืชื—ื™ืœื• ืœื”ืฆื˜ื‘ืจ ื‘ื–ื™ื›ืจื•ืŸ, ื‘-CPU. ื›ืฉืื ื™ ืžืฉื™ืง ื›ืœ ื›ืš ื”ืจื‘ื” ืคื•ื“ื™ื, ื”ืžื™ื“ืข ืžื”ื ืืžื•ืจ ืœื”ื™ื›ื ืก ืœืื—ืกื•ืŸ, ื›ืœื•ืžืจ ื•ื›ื•'. ื•ื›ืืฉืจ ืžื’ื™ืข ืœืฉื ื™ื•ืชืจ ืžื“ื™ ืžื™ื“ืข, ื”ืื—ืกื•ืŸ ืžืชื—ื™ืœ ืœื—ื–ื•ืจ ืœืื˜ ืžื“ื™ - ื•ืงื•ื‘ืจื ื˜ืก ืžืชื—ื™ืœ ืœื”ื™ื•ืช ืžืฉืขืžื.

ื•ืขื•ื“ ื‘ืขื™ื”... ื›ื™ื“ื•ืข, ืจื›ื™ื‘ื™ ื”ื‘ืงืจื” ืฉืœ Kubernetes ื”ื ืœื ื“ื‘ืจ ืื—ื“ ืžืจื›ื–ื™, ืืœื ื›ืžื” ืžืจื›ื™ื‘ื™ื. ื‘ืคืจื˜, ื™ืฉ ืžื ื”ืœ ื‘ืงืจ, ืžืชื–ืžืŸ ื•ื›ื•'. ื›ืœ ื”ื—ื‘ืจ'ื” ื”ืืœื” ื™ืชื—ื™ืœื• ืœืขืฉื•ืช ืขื‘ื•ื“ื” ืžื™ื•ืชืจืช ื•ืžื˜ื•ืคืฉืช ื‘ื• ื–ืžื ื™ืช, ืฉืขื ื”ื–ืžืŸ ืชืชื—ื™ืœ ืœืงื—ืช ื™ื•ืชืจ ื•ื™ื•ืชืจ ื–ืžืŸ. ืžื ื”ืœ ื”ื‘ืงืจ ื™ืฆื•ืจ ืคื•ื“ื™ื ื—ื“ืฉื™ื. ืžืชื–ืžืŸ ื™ื ืกื” ืœืžืฆื•ื ืฆื•ืžืช ื—ื“ืฉ ืขื‘ื•ืจื. ืกื‘ื™ืจ ืœื”ื ื™ื— ืฉื™ื™ื’ืžืจื• ืœืš ื”ืฆืžืชื™ื ื”ื—ื“ืฉื™ื ื‘ืืฉื›ื•ืœ ืฉืœืš ื‘ืงืจื•ื‘. ืืฉื›ื•ืœ Kubernetes ื™ืชื—ื™ืœ ืœืขื‘ื•ื“ ืœืื˜ ื™ื•ืชืจ ื•ื™ื•ืชืจ.

ืื‘ืœ ื”ื—ืœื˜ืชื™ ืœืœื›ืช ืจื—ื•ืง ื™ื•ืชืจ. ื›ื™ื“ื•ืข, ื‘-Kubernetes ื™ืฉ ื“ื‘ืจ ื›ื–ื” ืฉื ืงืจื ืฉื™ืจื•ืช. ื•ื‘ื›ืŸ, ื›ื‘ืจื™ืจืช ืžื—ื“ืœ ื‘ืืฉื›ื•ืœื•ืช ืฉืœืš, ื›ื›ืœ ื”ื ืจืื”, ื”ืฉื™ืจื•ืช ืขื•ื‘ื“ ื‘ืืžืฆืขื•ืช ื˜ื‘ืœืื•ืช IP.

ืื ืืชื” ืžืคืขื™ืœ ืžื™ืœื™ืืจื“ ืคื•ื“ื™ื, ืœืžืฉืœ, ื•ืื– ืžืฉืชืžืฉ ื‘ืกืงืจื™ืคื˜ ื›ื“ื™ ืœืืœืฅ ืืช Kubernetis ืœื™ืฆื•ืจ ืฉื™ืจื•ืชื™ื ื—ื“ืฉื™ื:

for i in {1..1111111}; do
    kubectl expose deployment test --port 80  
        --overrides="{"apiVersion": "v1", 
           "metadata": {"name": "nginx$i"}}"; 
done 

ื‘ื›ืœ ื”ืฆืžืชื™ื ืฉืœ ื”ืืฉื›ื•ืœ, ื™ื•ืชืจ ื•ื™ื•ืชืจ ื›ืœืœื™ iptables ื—ื“ืฉื™ื ื™ื•ื•ืฆืจื• ื‘ืขืจืš ื‘ื•-ื–ืžื ื™ืช. ื™ืชืจื” ืžื›ืš, ืžื™ืœื™ืืจื“ ื›ืœืœื™ iptables ื™ื•ืคืงื• ืขื‘ื•ืจ ื›ืœ ืฉื™ืจื•ืช.

ื‘ื“ืงืชื™ ืืช ื›ืœ ื”ืขื ื™ื™ืŸ ื”ื–ื” ืขืœ ื›ืžื” ืืœืคื™ื, ืขื“ ืขืฉืจื”. ื•ื”ื‘ืขื™ื” ื”ื™ื ืฉื›ื‘ืจ ื‘ืกืฃ ื”ื–ื” ื“ื™ ื‘ืขื™ื™ืชื™ ืœืขืฉื•ืช ssh ืœืฆื•ืžืช. ื›ื™ ื—ื‘ื™ืœื•ืช, ืฉืขื•ื‘ืจื•ืช ื›ืœ ื›ืš ื”ืจื‘ื” ืฉืจืฉืจืื•ืช, ืžืชื—ื™ืœื•ืช ืœื”ืจื’ื™ืฉ ืœื ื˜ื•ื‘ ื‘ืžื™ื•ื—ื“.

ื•ื’ื ื–ื” ื”ื›ืœ ื ืคืชืจ ื‘ืขื–ืจืช Kubernetes. ื™ืฉ ื›ื–ื” ืื•ื‘ื™ื™ืงื˜ ืžื›ืกืช ืžืฉืื‘ื™ื. ืžื’ื“ื™ืจ ืืช ืžืกืคืจ ื”ืžืฉืื‘ื™ื ื•ื”ืื•ื‘ื™ื™ืงื˜ื™ื ื”ื–ืžื™ื ื™ื ืขื‘ื•ืจ ืžืจื—ื‘ ื”ืฉืžื•ืช ื‘ืืฉื›ื•ืœ. ืื ื• ื™ื›ื•ืœื™ื ืœื™ืฆื•ืจ ืื•ื‘ื™ื™ืงื˜ yaml ื‘ื›ืœ ืžืจื—ื‘ ืฉืžื•ืช ืฉืœ ืืฉื›ื•ืœ Kubernetes. ื‘ืืžืฆืขื•ืช ืื•ื‘ื™ื™ืงื˜ ื–ื”, ืื ื• ื™ื›ื•ืœื™ื ืœื•ืžืจ ืฉื™ืฉ ืœื ื• ืžืกืคืจ ืžืกื•ื™ื ืฉืœ ื‘ืงืฉื•ืช ื•ืžื’ื‘ืœื•ืช ืฉื”ื•ืงืฆื• ืœืžืจื—ื‘ ื”ืฉืžื•ืช ื”ื–ื”, ื•ืื– ื ื•ื›ืœ ืœื•ืžืจ ืฉื‘ืžืจื—ื‘ ื”ืฉืžื•ืช ื”ื–ื” ืืคืฉืจ ืœื™ืฆื•ืจ 10 ืฉื™ืจื•ืชื™ื ื•-10 ืคื•ื“ื™ื. ื•ืžืคืชื— ื™ื—ื™ื“ ื™ื›ื•ืœ ืœืคื—ื•ืช ืœื—ื ื•ืง ืืช ืขืฆืžื• ื‘ืขืจื‘ื™ื. Kubernetes ื™ื’ื™ื“ ืœื•: "ืืชื” ืœื ื™ื›ื•ืœ ืœื”ื’ื“ื™ืœ ืืช ื”ืชืจืžื™ืœื™ื ืฉืœืš ืœื›ืžื•ืช ื”ื–ื•, ื›ื™ ื”ืžืฉืื‘ ื—ื•ืจื’ ืžื”ืžื›ืกื”." ื–ื”ื•, ื”ื‘ืขื™ื” ื ืคืชืจื”. ืชื™ืขื•ื“ ื›ืืŸ.

ื ืงื•ื“ื” ื‘ืขื™ื™ืชื™ืช ืื—ืช ืขื•ืœื” ื‘ื”ืงืฉืจ ื–ื”. ืืชื” ืžืจื’ื™ืฉ ื›ืžื” ืงืฉื” ื–ื” ื ื”ื™ื” ืœื™ืฆื•ืจ ืžืจื—ื‘ ืฉืžื•ืช ื‘-Kubernetes. ื›ื“ื™ ืœื™ืฆื•ืจ ืื•ืชื•, ืื ื—ื ื• ืฆืจื™ื›ื™ื ืœืงื—ืช ื”ืจื‘ื” ื“ื‘ืจื™ื ื‘ื—ืฉื‘ื•ืŸ.

ืžื›ืกืช ืžืฉืื‘ื™ื + ื˜ื•ื•ื— ื”ื’ื‘ืœื” + RBAC
โ€ข ืฆื•ืจ ืžืจื—ื‘ ืฉืžื•ืช
โ€ข ืฆื•ืจ ื˜ื•ื•ื— ืžื•ื’ื‘ืœ ื‘ืคื ื™ื
โ€ข ืฆื•ืจ ื‘ืชื•ืš ืžื›ืกืช ืžืฉืื‘ื™ื
โ€ข ืฆื•ืจ ื—ืฉื‘ื•ืŸ ืฉื™ืจื•ืช ืขื‘ื•ืจ CI
โ€ข ื™ืฆื™ืจืช ืชืคืงื™ื“ื™ื ืขื‘ื•ืจ CI ื•ืžืฉืชืžืฉื™ื
โ€ข ืื•ืคืฆื™ื•ื ืœื™ ื”ืคืขืœ ืืช ืชืจืžื™ืœื™ ื”ืฉื™ืจื•ืช ื”ื“ืจื•ืฉื™ื

ืœื›ืŸ, ืื ื™ ืจื•ืฆื” ืœื ืฆืœ ืืช ื”ื”ื–ื“ืžื ื•ืช ื›ื“ื™ ืœืฉืชืฃ ื‘ื”ืชืคืชื—ื•ื™ื•ืช ืฉืœื™. ื™ืฉ ื“ื‘ืจ ื›ื–ื” ืฉื ืงืจื ืื•ืคืจื˜ื•ืจ SDK. ื–ื•ื”ื™ ื“ืจืš ืฉืœ ืืฉื›ื•ืœ Kubernetes ืœื›ืชื•ื‘ ืขื‘ื•ืจื• ืื•ืคืจื˜ื•ืจื™ื. ืืชื” ื™ื›ื•ืœ ืœื›ืชื•ื‘ ื”ืฆื”ืจื•ืช ื‘ืืžืฆืขื•ืช Ansible.

ื‘ื”ืชื—ืœื” ื–ื” ื ื›ืชื‘ ื‘-Ansible, ื•ืื– ืจืื™ืชื™ ืฉื™ืฉ ืื•ืคืจื˜ื•ืจ SDK ื•ืฉื›ืชื‘ืชื™ ืืช ื”ืชืคืงื™ื“ ืฉืœ Ansible ืœืื•ืคืจื˜ื•ืจ. ื”ืฆื”ืจื” ื–ื• ืžืืคืฉืจืช ืœืš ืœื™ืฆื•ืจ ืื•ื‘ื™ื™ืงื˜ ื‘ืืฉื›ื•ืœ Kubernetes ื”ื ืงืจื ืคืงื•ื“ื”. ื‘ืชื•ืš ืคืงื•ื“ื”, ื–ื” ืžืืคืฉืจ ืœืš ืœืชืืจ ืืช ื”ืกื‘ื™ื‘ื” ืขื‘ื•ืจ ืคืงื•ื“ื” ื–ื• ื‘-yaml. ื•ื‘ืชื•ืš ืกื‘ื™ื‘ืช ื”ืฆื•ื•ืช, ื–ื” ืžืืคืฉืจ ืœื ื• ืœืชืืจ ืฉืื ื—ื ื• ืžืงืฆื™ื ื›ืœ ื›ืš ื”ืจื‘ื” ืžืฉืื‘ื™ื.

ืงืฆืช ืžื” ืฉื”ื•ืคืš ืืช ื›ืœ ื”ืชื”ืœื™ืš ื”ืžื•ืจื›ื‘ ื”ื–ื” ืœืงืœ ื™ื•ืชืจ.

ื•ืœืกื™ื›ื•ื. ืžื” ืœืขืฉื•ืช ืขื ื›ืœ ื–ื”?
ืจืืฉื•ืŸ. ืžื“ื™ื ื™ื•ืช ื”ืื‘ื˜ื—ื” ืฉืœ Pod ื”ื™ื ื˜ื•ื‘ื”. ื•ืœืžืจื•ืช ื”ืขื•ื‘ื“ื” ืฉืืฃ ืื—ื“ ืžื”ืžืชืงื™ื ื™ื ืฉืœ Kubernetes ืœื ืžืฉืชืžืฉ ื‘ื”ื ืขื“ ื”ื™ื•ื, ืืชื” ืขื“ื™ื™ืŸ ืฆืจื™ืš ืœื”ืฉืชืžืฉ ื‘ื”ื ื‘ืืฉื›ื•ืœื•ืช ืฉืœืš.

ืžื“ื™ื ื™ื•ืช ืจืฉืช ื”ื™ื ืœื ืจืง ืขื•ื“ ืชื›ื•ื ื” ืžื™ื•ืชืจืช. ื–ื” ืžื” ืฉื‘ืืžืช ืฆืจื™ืš ื‘ืืฉื›ื•ืœ.

LimitRange/ResourceQuota - ื”ื’ื™ืข ื”ื–ืžืŸ ืœื”ืฉืชืžืฉ ื‘ื•. ื”ืชื—ืœื ื• ืœื”ืฉืชืžืฉ ื‘ื–ื” ืžื–ืžืŸ, ื•ื”ืจื‘ื” ื–ืžืŸ ื”ื™ื™ืชื™ ื‘ื˜ื•ื— ืฉื›ื•ืœื ืžืฉืชืžืฉื™ื ื‘ื–ื”. ื”ืชื‘ืจืจ ืฉื–ื” ื ื“ื™ืจ.

ื‘ื ื•ืกืฃ ืœืžื” ืฉืฆื™ื™ื ืชื™ ื‘ืžื”ืœืš ื”ื“ื•"ื—, ื™ืฉ ืชื›ื•ื ื•ืช ืœื ืžืชื•ืขื“ื•ืช ืฉืžืืคืฉืจื•ืช ืœืš ืœืชืงื•ืฃ ืืช ื”ืืฉื›ื•ืœ. ืฉื•ื—ืจืจ ืœืื—ืจื•ื ื” ื ื™ืชื•ื— ืžืงื™ืฃ ืฉืœ ืคื’ื™ืขื•ื™ื•ืช Kubernetes.

ื™ืฉ ื“ื‘ืจื™ื ืฉื”ื ื›ืœ ื›ืš ืขืฆื•ื‘ื™ื ื•ื›ื•ืื‘ื™ื. ืœื“ื•ื’ืžื”, ื‘ืชื ืื™ื ืžืกื•ื™ืžื™ื, ืงื•ื‘ื™ื•ืช ื‘ืืฉื›ื•ืœ Kubernetes ื™ื›ื•ืœื™ื ืœืชืช ืืช ื”ืชื•ื›ืŸ ืฉืœ ืกืคืจื™ื™ืช warlocks ืœืžืฉืชืžืฉ ืœื ืžื•ืจืฉื”.

ื›ืืŸ ื™ืฉ ื”ื•ืจืื•ืช ืื™ืš ืœืฉื—ื–ืจ ืืช ื›ืœ ืžื” ืฉืืžืจืชื™ ืœืš. ื™ืฉื ื ืงื‘ืฆื™ื ืขื ื“ื•ื’ืžืื•ืช ื™ื™ืฆื•ืจ ืฉืœ ืื™ืš ื ืจืื™ื ResourceQuota ื•-Pod Security Policy. ื•ืืชื” ื™ื›ื•ืœ ืœื’ืขืช ื‘ื›ืœ ื–ื”.

ืชื•ื“ื” ืœื›ื•ืœื›ื.

ืžืงื•ืจ: www.habr.com

ื”ื•ืกืคืช ืชื’ื•ื‘ื”