ืืื ืืฉืืื ืืืืืื ื-Kubernetes, ืขืืื ืืืืืจ ืืจืืื ืฉืื ืืช ืืืจืืื ืืช ืืฉืืื ืืืฉืืืืืช: ืืคื
ืืืืจ
ืืื ืืฉืื ืืืฉืื ืขื ืงื ื ืืืื
ืขื ืืืช, ืืืื ืืืฉืื ืื ืขื ืืฉืืืืช ืืืืืช:
- ืืืฆื ืืืชืืื ืืืืืืื ืืืืฉืืืื?
- ืืื ืืฉืืืจ ืขื ืืืืืืช ืชืคืขืืืืืช ืืืขืืืืช?
- ืืื ืืืืื ืืฉืื ืืืื ืืชืืืืื ืืงืื ืืขืืืกื ืขืืืื ืืืืฉืชืืฉืื?
ืืืืจืช ืืฉืืืืืช Kubernetes ืืื ืืืื ืืื ืืฉืืืื ืืืืฆืืขืื ืืืืื ืืืืืช ืืืชืืจืช ืืืืจืฉืช ืืืข ืืืืื ืขื ืคืขืืืชื ืืคื ืืืืช ืฉื Kubernetes. ืขืืืก ืืขืืืื ืฉื ืืืคืืืงืฆืื ืื ืืฉืืจืืชืื ืฉืื ืืืื ืืืฉืชื ืืช ืืืืจื ืืืื ืื ืืคืืื ืืืืื ืฉืขื, ืืืื ืืืื ืืืฉืื ืขื ืืืืื ืืชืืืื ืืชืืฉื.
ืจืืืช ืงื ื ืืืื ืืืืืืื ืฉื Kubernetes
ืงื ื ืืืื ืืืืืืื ืืขืื ืืืจืฉ ืชืืืื ืืื ืฉืชื ืจืืืช:
- ืจืืช ืืคืื, ืืืื ืืืคืงื (Horizontal Pod Autoscaler, HPA) ืืืืืscaler ืื ืื (Vertical Pod Autoscaler, VPA). ืื ืืจืืื ืืช ืืืฉืืืื ืืืืื ืื ืขืืืจ ืืืืืืืช ืฉืื.
- ืจืืช Cluster, ืืื ืืืืช ืขื ืืื Cluster Autoscaler (CA), ืืฉืจ ืืืืื ืื ืืงืืื ืืช ืืกืคืจ ืืฆืืชืื ืืชืื ืืืฉืืื.
ืืืืื Autoscaler ืืืคืงื (HPA).
ืืคื ืฉืืฉื ืืจืื, HPA ืืืจื ืืช ืืกืคืจ ืืืขืชืงืื ืฉื ืืชืจืืืืื. ืจืื ื-devops ืืฉืชืืฉืื ืืขืืืก ืืขืื ืืืืืจืื ืืืจืืืจืื ืืฉืื ืื ืืกืคืจ ืืืขืชืงืื. ืขื ืืืช, ื ืืชื ืืฉื ืืช ืืช ืงื ื ืืืืื ืฉื ืืืขืจืืช ืขื ืืกืืก
ืืืืืจืืช ืืคืขืื HPA ืืจืื ืืืืื:
- ื-HPA ืืืืง ืืจืฆืืคืืช ืืช ืืขืจืืื ืืืืจืืื ืฉืฆืืื ื ืืืืื ืืืชืงื ื ืืืจืืื ืืจืืจืช ืืืื ืฉื 30 ืฉื ืืืช.
- ื-HPA ืื ืกื ืืืืืื ืืช ืืกืคืจ ืืืืืืืื ืื ืืืืขืื ืืกืฃ ืฉืฆืืื.
- ื-HPA ืืขืืื ืืช ืืกืคืจ ืืขืชืงืื ืืชืื ืืงืจ ืืคืจืืกื/ืฉืืคืื.
- ืืืืจ ืืื, ืืงืจ ืืคืจืืกื/ืฉืืคืื ืคืืจืก ืืช ืื ืืืืืืืื ืื ืืกืคืื ืืืจืืฉืื.
HPA ืืชืืื ืืช ืชืืืื ืคืจืืกืช ืืืืืื ืืืฉืจ ืืืืขืื ืืกืฃ ืืืจื
ืืขืช ืฉืืืืฉ ื-HPA, ืฉืงืื ืืช ืืืืจืื ืืืืื:
- ืืจืืื ืืืืงืช ื-HPA ืืืืืืจ ืืืจืืจืช ืืืื ืืื 30 ืฉื ืืืช. ืื ื ืงืืข ืขื ืืื ืืืื horizontal-pod-autoscaler-sync-period ืืื ืื ืืืงืจ.
- ืฉืืืืช ืืจืืจืช ืืืืื ืืืืกืืช ืืื 10%.
- ืืืืจ ืืขืืืื ืืืืจืื ื ืืืกืคืจ ืืืืืืืื, HPA ืฆืืคื ืฉืืืืืื ืืชืืืฆื ืชืื ืฉืืืฉ ืืงืืช. ืืจืืื ืื ื ืงืืข ืขื ืืื ืืืื horizontal-pod-autoscaler-upscale-delay.
- ืืืืจ ืืืคืืชื ืืืืจืื ื ืืืกืคืจ ืืืืืืืื, ื-HPA ืืืชืื ืืืฉ ืืงืืช ืืืชืืืฆื. ืืจืืื ืื ื ืงืืข ืขื ืืื ืืืื horizontal-pod-autoscaler-downscale-delay.
- HPA ืขืืื ืืื ืืื ืขื ืืืืืืงืื ืคืจืืกื ืืื ืขื ืืงืจื ืฉืืคืื. ืงื ื ืืืื ืืืืืืื ืืืคืงื ืืื ื ืชืืื ืืขืืืื ืืชืืืื, ืืฉืจ ืืคืขืื ืืฉืืจืืช ืืช ืืงืจื ืืฉืืคืื. ืขื ืืคืจืืกื, ืืกืคืจ ืืขืชืงืื ืชืืื ืืฉืืจืืช ืืืืืืืงืื ืืคืจืืกื.
ืงื ื ืืืื ืืืืืืื ืื ืื ืฉื ืคืืืื
ืงื ื ืืืื ืืืืืืื ืื ืื (VPA) ืืงืฆื ืืืชืจ (ืื ืคืืืช) ืืื CPU ืื ืืืืจืื ืืชืจืืืืื ืงืืืืื. ืืชืืื ืืชืจืืืืื ืืืืืชืืื ืื ืืกืจื ืืืื ื, ืื ืืืืขื ืืขืืงืจ ืืฉืืจืืชืื ืืืืืชืืื. ืขื ืืืช, ืืชื ืืืื ืื ืืืฉืชืืฉ ื-VPA ืขืืืจ ืืืืืืื ืืกืจื ืืืื ื ืื ืืชื ืฆืจืื ืืืชืืื ืืืืืืืืช ืืช ืืืืช ืืืฉืืืื ืฉืืืงืฆื ืชืืืื.
VPA ืืืื ืื ืืืืจืืขื OOM (ืื ืืืืืจืื). ืฉืื ืื ืืื ืืืขืื ืืืืืืจืื ืืืจืฉ ืืคืขืื ืืืืฉ ืฉื ืืคืืืื. ืขื ืืคืขืื ืืืืฉ, ื-VPA ืืืื ืืช ืชืงืฆืื ืืืงืฆืื (
ืืชื ืืืื ืืืืืืจ ืืช ืืืฉืืืื ืืืื ืืืืืื ืืืืงืกืืืืืื ืขืืืจ ืื ืืืืื. ืืคืืื, ืืชื ืืืื ืืืืืื ืืช ืืืืืช ืืืงืกืืืืืช ืฉื ืืืืจืื ืฉืืืงืฆื ื-8 GB. ืื ืฉืืืืฉื ืื ืืฆืืชืื ืื ืืืืืื ืืืืื ืื ืืืืืื ืืืงืฆืืช ืืืชืจ ื-8 GB ืฉื ืืืืจืื ืืื ืืืื. ืืคืจืืื ืืคืืจืืื ืืื ืื ืื ืืคืขืื ืืชืืืจืื ื
ืื ืืกืฃ, ื-VPA ืืฉ ืคืื ืงืฆืืืช ืืืืฆื ืืขื ืืื ืช (VPA Recommender). ืืื ืขืืงื ืืืจ ืฉืืืืฉ ืืืฉืืืื ืืืืจืืขื OOM ืฉื ืื ืืืืืืืื ืืื ืืืฆืืข ืขืจืื ืืื ืืืฉืื ืฉื ืืืืจืื ื-CPU ืืืืืกืกืื ืขื ืืืืืจืืชื ืืื ืืืืืกืก ืขื ืืืืื ืืืกืืืจืืื. ืืฉ ืื ืืืฉืง API ืฉืืืงื ืืืืช ืคืื ืืืืืืจ ืขืจืื ืืฉืืืื ืืืฆืขืื.
ืจืืื ืืฆืืื ืื VPA Recommender ืืื ื ืขืืงื ืืืจ "ืืืืื" ืฉื ืืฉืืืื. ืื ืขืืื ืืืจืื ืืื ืฉืืืืืื ืืงืื ืืื ืืคืื ืขื ืืฉืืืื ืืชืื ืฆืืชืื. ืขืืืฃ ืืืืืืจ ืืช ืืืืืื ืืจืืช ืืจืื ืืฉืืืช ืืื ืืืืื ืข ืืฆืจืืืช ืืืืจืื ืื CPU ืขืฆืืื.
ืขืจืืช ืชืคืขืื VPA ืืจืื ืืืืื:
- VPA ืืืืง ืืืืคื ืจืฆืืฃ ืืช ืืขืจืืื ืืืืจืืื ืฉืฆืืื ื ืืืืื ืืืชืงื ื ืืืจืืื ืืจืืจืช ืืืื ืฉื 10 ืฉื ืืืช.
- ืื ืืกืฃ ืฉืฆืืื ืืืฉื, ื-VPA ืื ืกื ืืฉื ืืช ืืช ืืืืช ืืืฉืืืื ืฉืืืงืฆื.
- ื-VPA ืืขืืื ืืช ืืกืคืจ ืืืฉืืืื ืืชืื ืืงืจ ืืคืจืืกื/ืฉืืคืื.
- ืืืฉืจ ืืืืืืื ืืืคืขืืื ืืืืฉ, ืื ืืืฉืืืื ืืืืฉืื ืืืืืื ืขื ืืืืคืขืื ืฉื ืืฆืจื.
VPA ืืืกืืฃ ืืช ืืืืช ืืืฉืืืื ืื ืืจืฉืช
ืื ื ืืืืจ ืืช ืื ืงืืืืช ืืืืืช ืืขืช ืืฉืืืืฉ ื-VPA:
- ืฉืื ืื ืงื ื ืืืื ืืืืื ืืคืขืื ืืืืฉ ืฉื ืืคืื. ืื ืืืจืื ืืื ืืื ืืข ืคืขืืื ืื ืืฆืืื ืืืืจ ืืืฆืืข ืฉืื ืืืื. ืืฆืืจื ืืืื ืืช, ืืืืืืื ืืืคืขืืื ืืืืฉ ืืืืคืฆืื ืขื ืคื ื ืฆืืชืื ืืืชืืกืก ืขื ืืฉืืืื ืฉืืืงืฆื ืืืืจืื ื.
- VPA ื-HPA ืขืืืื ืืื ื ืชืืืืื ืื ืืื ืืืื ื ืืืืืื ืืคืขืื ืขื ืืืชื ืคืืืื. ืื ืืชื ืืฉืชืืฉ ืืฉื ื ืื ืื ืื ื ืงื ื ืืืืื ืืืืชื ืืฉืืื, ืืื ืฉืืืืืจืืช ืฉืื ืืื ืขืืช ืืื ืืืืืช ืืืคืขืืื ืขื ืืืชื ืืืืืืงืืื.
- VPA ืืืืื ืืงืฉืืช ืืืื ืืืฉืืืื ืืืชืืกืก ืจืง ืขื ืฉืืืืฉ ืืขืืจ ืืืืืื. ืื ืื ืืืืืจ ืืืืืืช ืฉืืืืฉ ืืืฉืืืื. ืืืชืื ื ืืขืืืช ืขื ืืืฉืืืื ืฉืืื ื ืคืืขืืื ืืืืื ืืืชืืืืื ืืืฉืชืื ืขื ืขืื ืืขืื ืืฉืืืื, ืื ืืืืื ืืื ืฉ-Kubernetes ืชืืื ืืช ืืคืื ืืื.
- VPA ืขืืืื ืืฉืื ืืืงืื ืฉื ืคืืชืื. ืืื ืืืื ืื ืืื ืฉืืืขืจืืช ืขืฉืืื ืืขืืืจ ืฉืื ืืืื ืืกืืืืื ืืขืชืื ืืงืจืื. ืืชื ืืืื ืืงืจืื ืขื
ืืืืืืช ืืืืขืืช ะธืชืืื ืืืช ืคืืชืื . ืืคืืื, ืืฉื ื ืชืืื ืืืช ืืืืฉื ืืช ืืคืขืืื ืืืฉืืชืคืช ืฉื VPA ื-HPA, ืืื ืื ืคืจืืกืช ืืืืืืื ืืื ืขื ืืืื ืืืช ืงื ื ืืืื ืืืืืืื ืื ืื ืขืืืจื (ืืืืืื, ืชืืืืช ืืืืืืช 'ืืืืืืช VPA').
ืงื ื ืืืื ืืืืืืื ืฉื ืืฉืืื Kubernetes
Cluster Autoscaler (CA) ืืฉื ื ืืช ืืกืคืจ ืืฆืืชืื ืืืชืืกืก ืขื ืืกืคืจ ืืชืจืืืืื ืืืืชืื ืื. ืืืขืจืืช ืืืืงืช ืืขืช ืืขืช ืืืืืืื ืืืชืื ืื - ืืืืืืื ืืช ืืืื ืืืฉืืื ืื ืืฉ ืฆืืจื ืืืฉืืืื ื ืืกืคืื ืืื ืืืฉืืื ืืื ื ืืืจื ืืืืืืืืช ืฉื ืงืืขื. ื-CA ืืชืงืฉืจ ืขื ืกืคืง ืฉืืจืืชื ืืขื ื, ืืืงืฉ ืืื ื ืฆืืชืื ื ืืกืคืื ืื ืืฉืืจืจ ืฆืืชืื ืื ืคืขืืืื. ืืืจืกื ืืจืืฉืื ื ืืืืื ื ืืืืคื ืืืื ืฉื CA ืืืฆืื ื-Kubernetes 1.8.
ืกืืืื ืืจืื ืืืืื ืฉื ืคืขืืืช SA:
- CA ืืืืง ืืืืืืื ืืืชืื ืื ืืืจืืื ืืจืืจืช ืืืื ืฉื 10 ืฉื ืืืช.
- ืื ืคืื ืืื ืื ืืืชืจ ื ืืฆืืื ืืืฆื ืืืชื ื ืืืืืื ืฉืืืฉืืื ืืื ืืกืคืืง ืืฉืืืื ืืืื ืื ืืื ืืืงืฆืืช ืืืชื, ืืื ืื ืกื ืืกืคืง ืฆืืชืื ื ืืกืคืื ืืื ืื ืืืชืจ.
- ืืืฉืจ ืกืคืง ืฉืืจืืชื ืืขื ื ืืงืฆื ืืช ืืฆืืืช ืื ืืจืฉ, ืืื ืืฆืืจืฃ ืืืฉืืื ืืืืื ืืฉืจืช ืืช ืืคืืืื.
- ืืชืืื Kubernetes ืืคืืฅ ืชืจืืืืื ืืืชืื ืื ืืฆืืืช ืืืืฉ. ืื ืืืืจ ืืื ืืืง ืืืืืืืืื ืขืืืื ื ืฉืืจืื ืืืฆื ืืืชื ื, ืืชืืืื ืืืืจ ืขื ืขืฆืื ืืฆืืชืื ืืืฉืื ืืชืืืกืคืื ืืืฉืืื.
ืืงืฆืื ืืืืืืืืช ืฉื ืฆืืชื ืืฉืืืืืช ืืขื ื
ืฉืงืื ืืช ืืืืจืื ืืืืื ืืขืช ืฉืืืืฉ ื-CA:
- CA ืืืืื ืฉืืื ืืคืืืื ืืืฉืืื ืืืื ืืงืื ืืคืขืื, ืืื ืงืฉืจ ืืขืืืก ืืืขืื. ืืื ืื ืื ืกื ืืืืืื ืฉืื ืืืื ืฆืืชืื ืืืืชืจืื ืืืฉืืื.
- CA ืจืืฉื ืืช ืืฆืืจื ืืงื ื ืืืื ืืืืจ ื-30 ืฉื ืืืช.
- ืืจืืข ืฉืืืจ ืืื ืฆืืจื ืืฆืืืช, ืืจืืจืช ืืืืื ืฉื ื-CA ืืื ืืืชื ื ืฉื 10 ืืงืืช ืืคื ื ืงื ื ืืืืื ืฉื ืืืขืจืืช.
- ืืืขืจืืช ืงื ื ืืืืื ืืืืืืืื ืืฉ ืืช ืืจืขืืื ืฉื ืืจืืืืื. ืืื ืื ืืกืืจืืืืืช ืฉืื ืืช ืืืืืจืช ืงืืืฆืช ืฆืืชืื ืฉืืืื ืืชืืืกืคื ืฆืืชืื ืืืฉืื.
- ืืฉืชืืฉ ืืืคืฉืจืืช ืืืืจืืืช cluster-autoscaler.kubernetes.io/safe-to-evict (true). ืื ืชืชืงืื ืืจืื ืคืืืื, ืื ืื ืจืืื ืืื ืืคืืืจืื ืขื ืคื ื ืื ืืฆืืชืื, ืชืืื ืืืืื ืจืื ืืช ืืืืืืช ืืืจืืื ืืช ืืืฉืืื.
- ืืฉืชืืฉ
PodDisruptionBudgets ืืื ืืื ืืข ืืืืงืช ืชืจืืืืื, ืื ืฉืขืืื ืืืจืื ืืืืงืื ืืืืคืืืงืฆืื ืฉืื ืืืืฉืืจ ืืืืืืื.
ืืืฆื ืงืืืจื ืืก ืืืืืืื scalers ืืชืงืฉืจืื ืื ืขื ืื
ืืืจืืื ืื ืืืฉืืืช, ืืฉ ืืืืื ืงื ื ืืืื ืืืืืืื ืื ืืจืืช ืืชืจืืื (HPA/VPA) ืืื ืืจืืช ืืืฉืืื. ืื ืืงืืืืื ืืื ืืจืืงืฆืื ืื ืขื ืื ืืฆืืจื ืคืฉืืื ืืืกืืช:
- HPAs ืื VPAs ืืขืืื ืื ืืขืชืงืื ืฉื ืคืืืื ืื ืืฉืืืื ืืืืงืฆืื ืืชืจืืืืื ืงืืืืื.
- ืื ืืื ืืกืคืืง ืฆืืชืื ืขืืืจ ืงื ื ืืืืื ืืืชืืื ื, ื-CA ืืืืื ืื ืืืืืช ืฉื ืชืจืืืืื ืืืฆื ืืืชื ื.
- ื-CA ืืงืฆื ืฆืืชืื ืืืฉืื.
- ืืืืืืื ืืืคืฆืื ืืฆืืชืื ืืืฉืื.
ืืขืจืืช ืืจืืืช Kubernetes ืฉืืชืืคืืช
ืืขืืืืช ื ืคืืฆืืช ืืงื ื ืืืื ืืืืืืื ืฉื Kubernetes
ืืฉื ื ืืกืคืจ ืืขืืืช ื ืคืืฆืืช ืฉืืื ื ืชืงืืื ืืืฉืจ ืื ืกืื ืืืืฉื ืงื ื ืืืื ืืืืืืื.
HPA ื-VPA ืชืืืืื ืืืืืื ืืืืื ื ืชืื ืื ืืืกืืืจืืื. ืื ืื ืืืงืฆื ืืฉืืืื ืืกืคืืงืื, ืืืืืืืื ืืฆืืืฆืื ืืื ืืืืื ืืืฆืืจ ืืืืื. ืืืงืจื ืื, ืงื ื ืืืื ืืืืืืื ืืขืืื ืื ืืงืจื.
ืคืขืืืช ืงื ื ืืืืื ืขืฆืื ืจืืืฉื ืืืื. ืื ื ืจืืฆืื ืฉืืืืืืืื ืืืืฉืืื ืืืืื ืืืืืจืืช - ืืคื ื ืฉืืืฉืชืืฉืื ืืืืื ื ืืืขืืืช ืื ืืฉืืื ืืืฉืื. ืืื, ืืฉ ืืงืืช ืืืฉืืื ืืช ืืื ืงื ื ืืืืื ืืืืืฆืข ืขืืืจ ืชืจืืืืื ืืืฉืืื.
ืชืจืืืฉ ืืืืืืื - 4 ืืงืืช:
- 30 ืฉื ืืืช. ืขืืืื ืืืื ืืขื: 30-60 ืฉื ืืืช.
- 30 ืฉื ืืืช. HPA ืืืืง ืขืจืื ืืืืื: 30 ืฉื ืืืช.
- ืคืืืช ื-2 ืฉื ืืืช. ืชืจืืืืื ื ืืฆืจืื ืืขืืืจืื ืืืฆื ืืืชื ื: ืฉื ืืื ืืืช.
- ืคืืืช ื-2 ืฉื ืืืช. CA ืจืืื ืืืืืืื ืืืชืื ืื ืืฉืืื ืฉืืืืช ืืฆืืชื ืืกืคืงื: ืฉื ืืื ืืืช.
- 3 ืืงืืช. ืกืคืง ืืขื ื ืืงืฆื ืฆืืชืื. K8s ืืืชืื ืื ืขื ืฉืื ืืืื ืื: ืขื 10 ืืงืืช (ืชืืื ืืืกืคืจ ืืืจืืื).
ืืชืจืืืฉ ืืืจืืข ืืืืชืจ (ืจืืืืืกืื ืืืชืจ) - 12 ืืงืืช:
- 30 ืฉื ืืืช. ืขืืืื ืืืื ืืขื.
- 30 ืฉื ืืืช. HPA ืืืืง ืืช ืืขืจืืื ืืืืจืืื.
- ืคืืืช ื-2 ืฉื ืืืช. ืืคืืืื ื ืืฆืจืื ืื ืื ืกืื ืืืฆื ืืืชื ื.
- ืคืืืช ื-2 ืฉื ืืืช. ื-CA ืจืืื ืืช ืืืืืื ืืืืชื ื ืืืืฆืข ืฉืืืืช ืืืกืคืงืช ืืฆืืชืื.
- 10 ืืงืืช. ืกืคืง ืืขื ื ืืงืฆื ืฆืืชืื. K8s ืืืื ืขื ืฉืื ืืืื ืื. ืืื ืืืืชื ื ืชืืื ืืืกืคืจ ืืืจืืื, ืืืื ืขืืืื ืฉื ืกืคืงืื, ืขืืืื ืืืขืจืืช ืืืคืขืื ืืืื ืชืืืื.
ืื ืชืืืื ืืื ืื ืื ืื ื ืงื ื ืืืืื ืฉื ืกืคืงื ืขื ื ืืืื ื-CA ืฉืื ื. ืืืืจืื ืคืืขื ืืชืื ืืฉืืื Kubernetes, ืืขืื ืฉืื ืืข ืกืคืง ืืขื ื ืคืืขื ืขื ืืกืืก ืืคืฆืช ืฆืืชืื. ืื ืื ืืืืข ืื ืงืืจื ืขื ืืชืจืืืืื ืื ืืืคืืืงืฆืื ืฉืื. ืืขืจืืืช ืืื ืคืืขืืืช ืืืงืืื.
ืืืฆื ืื ืื ืงื ื ืืืื ื-Kubernetes
- Kubernetes ืืื ืืื ืื ืืืื ืืฉืืืื ืืชืืืืจ. ืคืขืืืืช ืื ืืืื ืคืืืื ืืืฉืืื ืืฉืืื ืื ืืื ืืจื ืืจืืืืช ืืฉืืืื ื-Kubernetes.
- ืืื ืืช ืืืืืืื ืฉื ืืืจืืืืช ืชืจืืืืื ืชืื ืืชืืฉืืืช ื-HPA ื-VPA.
- ืืฉ ืืืฉืชืืฉ ื-CA ืจืง ืื ืืฉ ืื ืืื ื ืืืื ืฉื ืืฆืจืืื ืฉื ืืชืจืืืืื ืืืืืืืื ืฉืื.
- ืืื ืืืืืืจ ืืฆืืจื ืืืคืืืืืืช ืืฉืืื, ืขืืื ืืืืื ืืืฆื ืืขืจืืืช ืงื ื ืืืื ืฉืื ืืช ืคืืขืืืช ืืื.
- ืืขืช ืืขืจืืช ืืื ืงื ื ืืืืื, ืืืืจ ืชืจืืืฉืื ืฉื ืืืงืจื ืืืจืืข ืืืืงืจื ืืืื ืืืืชืจ.
ืืงืืจ: www.habr.com