ΠΡΠ΅ΠΌ ΠΏΡΠΈΠ²Π΅Ρ! ΠΠ΅Π½Ρ Π·ΠΎΠ²ΡΡ ΠΠ»Π΅Π³ Π‘ΠΈΠ΄ΠΎΡΠ΅Π½ΠΊΠΎΠ², Ρ ΡΠ°Π±ΠΎΡΠ°Ρ Π² ΠΊΠΎΠΌΠΏΠ°Π½ΠΈΠΈ ΠΠΎΠΌΠΠ»ΠΈΠΊ ΡΡΠΊΠΎΠ²ΠΎΠ΄ΠΈΡΠ΅Π»Π΅ΠΌ ΠΊΠΎΠΌΠ°Π½Π΄Ρ ΠΈΠ½ΡΡΠ°ΡΡΡΡΠΊΡΡΡΡ. ΠΡ ΡΠΊΡΠΏΠ»ΡΠ°ΡΠΈΡΡΠ΅ΠΌ Β«ΠΡΠ±ΠΈΠΊΒ» Π² ΠΏΡΠΎΠ΄Π΅ ΡΠΆΠ΅ Π±ΠΎΠ»ΡΡΠ΅ ΡΡΡΡ Π»Π΅Ρ, ΠΈ Π·Π° ΡΡΠΎ Π²ΡΠ΅ΠΌΡ ΠΏΠ΅ΡΠ΅ΠΆΠΈΠ»ΠΈ Ρ Π½ΠΈΠΌ ΠΌΠ½ΠΎΠ³ΠΎ ΡΠ°Π·Π½ΡΡ ΠΈΠ½ΡΠ΅ΡΠ΅ΡΠ½ΡΡ ΠΌΠΎΠΌΠ΅Π½ΡΠΎΠ². Π‘Π΅Π³ΠΎΠ΄Π½Ρ Ρ ΠΏΠΎΠ²Π΅Π΄Π°Ρ Π²Π°ΠΌ, ΠΊΠ°ΠΊ ΠΏΡΠΈ ΠΏΡΠ°Π²ΠΈΠ»ΡΠ½ΠΎΠΌ ΠΏΠΎΠ΄Ρ ΠΎΠ΄Π΅ ΠΌΠΎΠΆΠ½ΠΎ Π²ΡΠΆΠ°ΡΡ ΠΈΠ· Β«Π²Π°Π½ΠΈΠ»ΡΠ½ΠΎΠ³ΠΎΒ» Kubernetes Π΅ΡΡ Π±ΠΎΠ»ΡΡΠ΅ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»ΡΠ½ΠΎΡΡΠΈ Π΄Π»Ρ Π²Π°ΡΠ΅Π³ΠΎ ΠΊΠ»Π°ΡΡΠ΅ΡΠ°. Ready steady go!
ΠΡΠ΅ Π²Ρ ΠΏΡΠ΅ΠΊΡΠ°ΡΠ½ΠΎ Π·Π½Π°Π΅ΡΠ΅, ΡΡΠΎ Kubernetes β ΡΡΠΎ ΠΌΠ°ΡΡΡΠ°Π±ΠΈΡΡΠ΅ΠΌΠ°Ρ ΡΠΈΡΡΠ΅ΠΌΠ° Ρ ΠΎΡΠΊΡΡΡΡΠΌ ΠΊΠΎΠ΄ΠΎΠΌ Π΄Π»Ρ ΠΎΡΠΊΠ΅ΡΡΡΠ°ΡΠΈΠΈ ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅ΡΠ°ΠΌΠΈ; Π½Ρ, ΠΈΠ»ΠΈ 5 Π±ΠΈΠ½Π°ΡΠ΅ΠΉ, ΠΊΠΎΡΠΎΡΡΠ΅ ΡΠ²ΠΎΡΡΡ ΠΌΠ°Π³ΠΈΡ, ΡΠΏΡΠ°Π²Π»ΡΡ ΠΆΠΈΠ·Π½Π΅Π½Π½ΡΠΌ ΡΠΈΠΊΠ»ΠΎΠΌ Π²Π°ΡΠΈΡ ΠΌΠΈΠΊΡΠΎΡΠ΅ΡΠ²ΠΈΡΠΎΠ² Π² ΡΠ΅ΡΠ²Π΅ΡΠ½ΠΎΠΉ ΡΡΠ΅Π΄Π΅. ΠΡΠΎΠΌΠ΅ ΡΠΎΠ³ΠΎ, ΡΡΠΎ Π΄ΠΎΠ²ΠΎΠ»ΡΠ½ΠΎ Π³ΠΈΠ±ΠΊΠΈΠΉ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½Ρ, ΠΊΠΎΡΠΎΡΡΠΉ ΠΌΠΎΠΆΠ½ΠΎ ΡΠΎΠ±ΠΈΡΠ°ΡΡ, ΠΊΠ°ΠΊ ΠΊΠΎΠ½ΡΡΡΡΠΊΡΠΎΡ Lego, Π΄Π»Ρ ΠΌΠ°ΠΊΡΠΈΠΌΠ°Π»ΡΠ½ΠΎΠΉ ΠΊΠ°ΡΡΠΎΠΌΠΈΠ·Π°ΡΠΈΠΈ ΠΏΠΎΠ΄ ΡΠ°Π·Π½ΡΠ΅ Π·Π°Π΄Π°ΡΠΈ.
Π Π²ΡΠΎΠ΄Π΅ Π±Ρ Π²ΡΡ Ρ ΠΎΡΠΎΡΠΎ: Π·Π°ΠΊΠΈΠ΄ΡΠ²Π°ΠΉ ΡΠ΅ΡΠ²Π°ΠΊΠΈ Π² ΠΊΠ»Π°ΡΡΠ΅Ρ, ΠΊΠ°ΠΊ Π΄ΡΠΎΠ²ΠΈΡΠΊΠΈ Π² ΡΠΎΠΏΠΊΡ, ΠΈ Π³ΠΎΡΡ Π½Π΅ Π·Π½Π°ΠΉ. ΠΠΎ Π΅ΡΠ»ΠΈ ΡΡ Π·Π° ΡΠΊΠΎΠ»ΠΎΠ³ΠΈΡ, ΡΠΎ Π·Π°Π΄ΡΠΌΠ°Π΅ΡΡΡΡ: Β«ΠΠ°ΠΊ Ρ ΠΌΠΎΠ³Ρ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°ΡΡ ΠΎΠ³ΠΎΠ½Ρ Π² ΠΏΠ΅ΡΠΊΠ΅ ΠΈ Π»Π΅Ρ ΠΏΠΎΠΆΠ°Π»Π΅ΡΡ?Β». ΠΡΡΠ³ΠΈΠΌΠΈ ΡΠ»ΠΎΠ²Π°ΠΌΠΈ, ΠΊΠ°ΠΊ Π½Π°ΠΉΡΠΈ ΡΠΏΠΎΡΠΎΠ±Ρ ΡΠ»ΡΡΡΠ΅Π½ΠΈΡ ΠΈΠ½ΡΡΠ°ΡΡΡΡΠΊΡΡΡΡ ΠΈ ΡΠ½ΠΈΠΆΠ΅Π½ΠΈΡ Π·Π°ΡΡΠ°Ρ.
1. Π‘Π»Π΅Π΄ΠΈΡΠ΅ Π·Π° ΡΠ΅ΡΡΡΡΠ°ΠΌΠΈ ΠΊΠΎΠΌΠ°Π½Π΄ ΠΈ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ
ΠΠ΄ΠΈΠ½ ΠΈΠ· ΡΠ°ΠΌΡΡ Π±Π°Π½Π°Π»ΡΠ½ΡΡ , Π½ΠΎ Π΄Π΅ΠΉΡΡΠ²Π΅Π½Π½ΡΡ ΠΌΠ΅ΡΠΎΠ΄ΠΎΠ² β Π²Π²Π΅Π΄Π΅Π½ΠΈΠ΅ requests/limits. Π Π°Π·Π΄Π΅Π»ΡΠΉΡΠ΅ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ ΠΏΠΎ Π½Π΅ΠΉΠΌΡΠΏΠ΅ΠΉΡΠ°ΠΌ, Π° Π½Π΅ΠΉΠΌΡΠΏΠ΅ΠΉΡΡ ΠΏΠΎ ΠΊΠΎΠΌΠ°Π½Π΄Π°ΠΌ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠΈ. ΠΠ°Π΄Π°Π²Π°ΠΉΡΠ΅ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ ΠΏΠ΅ΡΠ΅Π΄ Π΄Π΅ΠΏΠ»ΠΎΠ΅ΠΌ Π·Π½Π°ΡΠ΅Π½ΠΈΡ ΠΏΠΎ ΠΏΠΎΡΡΠ΅Π±Π»Π΅Π½ΠΈΡ ΠΏΡΠΎΡΠ΅ΡΡΠΎΡΠ½ΠΎΠ³ΠΎ Π²ΡΠ΅ΠΌΠ΅Π½ΠΈ, ΠΏΠ°ΠΌΡΡΠΈ, ΡΡΠ΅ΠΌΠ΅ΡΠ½ΠΎΠ³ΠΎ Ρ ΡΠ°Π½ΠΈΠ»ΠΈΡΠ°.
resources:
requests:
memory: 2Gi
cpu: 250m
limits:
memory: 4Gi
cpu: 500m
ΠΠΏΡΡΠ½ΡΠΌ ΠΏΡΡΡΠΌ ΠΌΡ ΠΏΡΠΈΡΠ»ΠΈ ΠΊ Π²ΡΠ²ΠΎΠ΄Ρ: Π½Π΅ ΡΡΠΎΠΈΡ ΡΠ°Π·Π΄ΡΠ²Π°ΡΡ ΡΠ΅ΠΊΠ²Π΅ΡΡΡ ΠΎΡ Π»ΠΈΠΌΠΈΡΠΎΠ² Π±ΠΎΠ»Π΅Π΅, ΡΠ΅ΠΌ Π² Π΄Π²Π° ΡΠ°Π·Π°. ΠΠ±ΡΡΠΌ ΠΊΠ»Π°ΡΡΠ΅ΡΠ° ΡΠ°ΡΡΡΠΈΡΡΠ²Π°Π΅ΡΡΡ ΠΈΡΡ ΠΎΠ΄Ρ ΠΈΠ· ΡΠ΅ΠΊΠ²Π΅ΡΡΠΎΠ², ΠΈ Π΅ΡΠ»ΠΈ Π²Ρ Π±ΡΠ΄Π΅ΡΠ΅ Π·Π°Π΄Π°Π²Π°ΡΡ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡΠΌ ΡΠ°Π·Π½ΠΈΡΡ Π² ΡΠ΅ΡΡΡΡΠ°Ρ , Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, Π² 5-10 ΡΠ°Π·, ΡΠΎ ΠΏΡΠ΅Π΄ΡΡΠ°Π²ΡΡΠ΅, ΡΡΠΎ ΡΡΠ°Π½Π΅Ρ Ρ Π²Π°ΡΠ΅ΠΉ Π½ΠΎΠ΄ΠΎΠΉ, ΠΊΠΎΠ³Π΄Π° ΠΎΠ½Π° Π·Π°ΠΏΠΎΠ»Π½ΠΈΡΡΡ ΠΏΠΎΠ΄Π°ΠΌΠΈ ΠΈ ΡΠ΅Π·ΠΊΠΎ ΠΏΠΎΠ»ΡΡΠΈΡ Π½Π°Π³ΡΡΠ·ΠΊΡ. ΠΠΈΡΠ΅Π³ΠΎ Ρ ΠΎΡΠΎΡΠ΅Π³ΠΎ. ΠΠ°ΠΊ ΠΌΠΈΠ½ΠΈΠΌΡΠΌ, ΡΡΠΎΡΡΠ»ΠΈΠ½Π³, Π° ΠΊΠ°ΠΊ ΠΌΠ°ΠΊΡΠΈΠΌΡΠΌ, ΠΏΠΎΠΏΡΠΎΡΠ°Π΅ΡΠ΅ΡΡ Ρ Π²ΠΎΡΠΊΠ΅ΡΠΎΠΌ ΠΈ ΠΏΠΎΠ»ΡΡΠΈΡΠ΅ ΡΠΈΠΊΠ»ΠΈΡΠ½ΡΡ Π½Π°Π³ΡΡΠ·ΠΊΡ Π½Π° ΠΎΡΡΠ°Π»ΡΠ½ΡΠ΅ Π½ΠΎΠ΄Ρ ΠΏΠΎΡΠ»Π΅ ΡΠΎΠ³ΠΎ, ΠΊΠ°ΠΊ ΠΏΠΎΠ΄Ρ Π½Π°ΡΠ½ΡΡ ΠΏΠ΅ΡΠ΅Π΅Π·ΠΆΠ°ΡΡ.
ΠΡΠΎΠΌΠ΅ ΡΠΎΠ³ΠΎ, Ρ ΠΏΠΎΠΌΠΎΡΡΡ limitranges
Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ Π½Π° ΡΡΠ°ΡΡΠ΅ Π·Π°Π΄Π°ΡΡ Π΄Π»Ρ ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅ΡΠ° Π·Π½Π°ΡΠ΅Π½ΠΈΡ ΠΏΠΎ ΡΠ΅ΡΡΡΡΠ°ΠΌ β ΠΌΠΈΠ½ΠΈΠΌΠ°Π»ΡΠ½ΡΠ΅, ΠΌΠ°ΠΊΡΠΈΠΌΠ°Π»ΡΠ½ΡΠ΅ ΠΈ ΠΏΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ:
β ~ kubectl describe limitranges --namespace ops
Name: limit-range
Namespace: ops
Type Resource Min Max Default Request Default Limit Max Limit/Request Ratio
---- -------- --- --- --------------- ------------- -----------------------
Container cpu 50m 10 100m 100m 2
Container ephemeral-storage 12Mi 8Gi 128Mi 4Gi -
Container memory 64Mi 40Gi 128Mi 128Mi 2
ΠΠ΅ Π·Π°Π±ΡΠ΄ΡΡΠ΅ ΠΎΠ³ΡΠ°Π½ΠΈΡΠΈΡΡ ΡΠ΅ΡΡΡΡΡ Π½Π΅ΠΉΠΌΡΠΏΠ΅ΠΉΡΠ°, ΡΡΠΎΠ±Ρ ΠΎΠ΄Π½Π° ΠΊΠΎΠΌΠ°Π½Π΄Π° Π½Π΅ ΡΠΌΠΎΠ³Π»Π° Π·Π°Π±ΡΠ°ΡΡ Π²ΡΠ΅ ΡΠ΅ΡΡΡΡΡ ΠΊΠ»Π°ΡΡΠ΅ΡΠ°:
β ~ kubectl describe resourcequotas --namespace ops
Name: resource-quota
Namespace: ops
Resource Used Hard
-------- ---- ----
limits.cpu 77250m 80
limits.memory 124814367488 150Gi
pods 31 45
requests.cpu 53850m 80
requests.memory 75613234944 150Gi
services 26 50
services.loadbalancers 0 0
services.nodeports 0 0
ΠΠ°ΠΊ Π²ΠΈΠ΄Π½ΠΎ ΠΈΠ· ΠΎΠΏΠΈΡΠ°Π½ΠΈΡ resourcequotas
, Π΅ΡΠ»ΠΈ ΠΊΠΎΠΌΠ°Π½Π΄Π° ops Π·Π°Ρ
ΠΎΡΠ΅Ρ ΡΠ°Π·Π²Π΅ΡΠ½ΡΡΡ ΠΏΠΎΠ΄Ρ, ΠΊΠΎΡΠΎΡΡΠ΅ Π±ΡΠ΄ΡΡ ΠΏΠΎΡΡΠ΅Π±Π»ΡΡΡ Π΅ΡΠ΅ 10 cpu, ΡΠΎ ΠΏΠ»Π°Π½ΠΈΡΠΎΠ²ΡΠΈΠΊ Π½Π΅ Π΄Π°ΡΡ ΡΡΠΎ ΡΠ΄Π΅Π»Π°ΡΡ ΠΈ Π²ΡΠ΄Π°ΡΡ ΠΎΡΠΈΠ±ΠΊΡ:
Error creating: pods "nginx-proxy-9967d8d78-nh4fs" is forbidden: exceeded quota: resource-quota, requested: limits.cpu=5,requests.cpu=5, used: limits.cpu=77250m,requests.cpu=53850m, limited: limits.cpu=10,requests.cpu=10
ΠΠ»Ρ ΡΠ΅ΡΠ΅Π½ΠΈΡ ΠΏΠΎΠ΄ΠΎΠ±Π½ΠΎΠΉ Π·Π°Π΄Π°ΡΠΈ ΠΌΠΎΠΆΠ½ΠΎ Π½Π°ΠΏΠΈΡΠ°ΡΡ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½Ρ, Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, ΠΊΠ°ΠΊ
2. ΠΠΎΠ΄Π±ΠΈΡΠ°ΠΉΡΠ΅ ΠΎΠΏΡΠΈΠΌΠ°Π»ΡΠ½ΠΎΠ΅ ΡΠ°ΠΉΠ»ΠΎΠ²ΠΎΠ΅ Ρ ΡΠ°Π½ΠΈΠ»ΠΈΡΠ΅
ΠΠ΄Π΅ΡΡ Ρ Ρ ΠΎΡΠ΅Π» Π±Ρ ΠΊΠΎΡΠ½ΡΡΡΡΡ ΡΠ΅ΠΌΡ ΠΏΠ΅ΡΡΠΈΡΡΠ΅Π½ΡΠ½ΡΡ ΡΠΎΠΌΠΎΠ² ΠΈ Π΄ΠΈΡΠΊΠΎΠ²ΠΎΠΉ ΠΏΠΎΠ΄ΡΠΈΡΡΠ΅ΠΌΡ worker-Π½ΠΎΠ΄ Kubernetes. Π― Π½Π°Π΄Π΅ΡΡΡ, ΡΡΠΎ Π½ΠΈΠΊΡΠΎ Π½Π΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅Ρ Β«ΠΡΠ±Β» Π½Π° HDD Π² ΠΏΡΠΎΠ΄Π΅, Π½ΠΎ ΠΏΠΎΡΠΎΠΉ ΠΈ ΠΎΠ±ΡΡΠ½ΠΎΠ³ΠΎ SSD ΡΠΆΠ΅ ΡΡΠ°Π½ΠΎΠ²ΠΈΡΡΡ ΠΌΠ°Π»ΠΎ. ΠΡ ΡΡΠ°Π»ΠΊΠΈΠ²Π°Π»ΠΈΡΡ Ρ ΡΠ°ΠΊΠΎΠΉ ΠΏΡΠΎΠ±Π»Π΅ΠΌΠΎΠΉ, ΡΡΠΎ Π»ΠΎΠ³ΠΈ ΡΠ±ΠΈΠ²Π°Π»ΠΈ Π΄ΠΈΡΠΊ ΠΏΠΎ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΡΠΌ Π²Π²ΠΎΠ΄Π°-Π²ΡΠ²ΠΎΠ΄Π°, ΠΈ ΡΡΡ Π²Π°ΡΠΈΠ°Π½ΡΠΎΠ² ΡΠ΅ΡΠ΅Π½ΠΈΡ Π½Π΅ ΠΎΡΠ΅Π½Ρ ΠΌΠ½ΠΎΠ³ΠΎ:
-
ΠΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Π²ΡΡΠΎΠΊΠΎΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»ΡΠ½ΡΠ΅ SSD ΠΈΠ»ΠΈ ΠΏΠ΅ΡΠ΅Ρ ΠΎΠ΄ΠΈΡΡ Π½Π° NVMe (Π΅ΡΠ»ΠΈ Π²Ρ ΡΠ°ΠΌΠΈ ΡΠ°ΡΠΏΠΎΡΡΠΆΠ°Π΅ΡΠ΅ΡΡ ΡΠ²ΠΎΠΈΠΌ ΠΆΠ΅Π»Π΅Π·ΠΎΠΌ).
-
Π£ΠΌΠ΅Π½ΡΡΠ°ΡΡ ΡΡΠΎΠ²Π΅Π½Ρ ΠΆΡΡΠ½Π°Π»ΠΈΡΠΎΠ²Π°Π½ΠΈΡ.
-
ΠΠ΅Π»Π°ΡΡ Β«ΡΠΌΠ½ΡΡΒ» Π±Π°Π»Π°Π½ΡΠΈΡΠΎΠ²ΠΊΡ ΠΏΠΎΠ΄ΠΎΠ², ΠΊΠΎΡΠΎΡΡΠ΅ Π½Π°ΡΠΈΠ»ΡΡΡ Π΄ΠΈΡΠΊ (
podAntiAffinity
).
Π‘ΠΊΡΠΈΠ½ Π²ΡΡΠ΅ ΠΏΠΎΠΊΠ°Π·ΡΠ²Π°Π΅Ρ, ΡΡΠΎ ΠΏΡΠΎΠΈΡΡ ΠΎΠ΄ΠΈΡ ΠΏΠΎΠ΄ nginx-ingress-controller Ρ Π΄ΠΈΡΠΊΠΎΠΌ, ΠΊΠΎΠ³Π΄Π° Π²ΠΊΠ»ΡΡΠ΅Π½ΠΎ ΠΆΡΡΠ½Π°Π»ΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ access_logs (~12 ΡΡΡ. ΠΆΡΡΠ½Π°Π»ΠΎΠ²/ΡΠ΅ΠΊ.). Π’Π°ΠΊΠΎΠ΅ ΡΠΎΡΡΠΎΡΠ½ΠΈΠ΅, ΠΊΠΎΠ½Π΅ΡΠ½ΠΎ ΠΆΠ΅, ΠΌΠΎΠΆΠ΅Ρ ΠΏΡΠΈΠ²ΠΎΠ΄ΠΈΡΡ ΠΊ Π΄Π΅Π³ΡΠ°Π΄Π°ΡΠΈΠΈ Π²ΡΠ΅Ρ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ Π½Π° ΡΡΠΎΠΉ Π½ΠΎΠ΄Π΅.
Π§ΡΠΎ ΠΊΠ°ΡΠ°Π΅ΡΡΡ PV, ΡΠ²Ρ, Ρ Π½Π΅ ΠΈΡΠΏΡΠΎΠ±ΠΎΠ²Π°Π» Π²ΡΠ΅
3. Π‘ΠΎΠ±ΠΈΡΠ°ΠΉΡΠ΅ ΠΎΠΏΡΠΈΠΌΠΈΠ·ΠΈΡΠΎΠ²Π°Π½Π½ΡΠ΅ ΠΎΠ±ΡΠ°Π·Ρ
ΠΡΡΡΠ΅ Π²ΡΠ΅Π³ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΠΎΠΏΡΠΈΠΌΠΈΠ·ΠΈΡΠΎΠ²Π°Π½Π½ΡΠ΅ ΠΏΠΎΠ΄ ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅ΡΡ ΠΎΠ±ΡΠ°Π·Ρ, ΡΡΠΎΠ±Ρ Kubernetes ΠΌΠΎΠ³ Π±ΡΡΡΡΠ΅Π΅ Π΄ΠΎΡΡΠ°Π²Π°ΡΡ ΠΈΡ ΠΈ ΡΡΡΠ΅ΠΊΡΠΈΠ²Π½Π΅Π΅ ΠΈΡΠΏΠΎΠ»Π½ΡΡΡ.
ΠΠΏΡΠΈΠΌΠΈΠ·ΠΈΡΠΎΠ²Π°Π½Π½ΠΎΡΡΡ ΠΎΠ·Π½Π°ΡΠ°Π΅Ρ, ΡΡΠΎ ΠΎΠ±ΡΠ°Π·Ρ:
-
ΡΠΎΠ΄Π΅ΡΠΆΠ°Ρ ΡΠΎΠ»ΡΠΊΠΎ ΠΎΠ΄Π½ΠΎ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ ΠΈΠ»ΠΈ Π²ΡΠΏΠΎΠ»Π½ΡΡΡ ΡΠΎΠ»ΡΠΊΠΎ ΠΎΠ΄Π½Ρ ΡΡΠ½ΠΊΡΠΈΡ;
-
Π½Π΅Π±ΠΎΠ»ΡΡΠΎΠ³ΠΎ ΡΠ°Π·ΠΌΠ΅ΡΠ°, ΠΏΠΎΡΠΎΠΌΡ ΡΡΠΎ Π±ΠΎΠ»ΡΡΠΈΠ΅ ΠΎΠ±ΡΠ°Π·Ρ Ρ ΡΠΆΠ΅ ΠΏΠ΅ΡΠ΅Π΄Π°ΡΡΡΡ ΠΏΠΎ ΡΠ΅ΡΠΈ;
-
ΠΈΠΌΠ΅ΡΡ ΠΊΠΎΠ½Π΅ΡΠ½ΡΠ΅ ΡΠΎΡΠΊΠΈ Π΄Π»Ρ ΠΏΡΠΎΠ²Π΅ΡΠΊΠΈ ΡΠ°Π±ΠΎΡΠΎΡΠΏΠΎΡΠΎΠ±Π½ΠΎΡΡΠΈ ΠΈ Π³ΠΎΡΠΎΠ²Π½ΠΎΡΡΠΈ, Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΠΊΠΎΡΠΎΡΡΡ Kubernetes ΠΌΠΎΠΆΠ΅Ρ ΠΏΡΠ΅Π΄ΠΏΡΠΈΠ½ΠΈΠΌΠ°ΡΡ ΠΊΠ°ΠΊΠΈΠ΅-ΡΠΎ Π΄Π΅ΠΉΡΡΠ²ΠΈΡ Π² ΡΠ»ΡΡΠ°Π΅ ΠΏΡΠΎΡΡΠΎΠ΅Π²;
-
ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡΡ Π΄ΡΡΠΆΠ΅Π»ΡΠ±Π½ΡΠ΅ ΠΊ ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅ΡΠ°ΠΌ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΎΠ½Π½ΡΠ΅ ΡΠΈΡΡΠ΅ΠΌΡ (Π²ΡΠΎΠ΄Π΅ Alpine ΠΈΠ»ΠΈ CoreOS), ΠΊΠΎΡΠΎΡΡΠ΅ Π±ΠΎΠ»Π΅Π΅ ΡΡΡΠΎΠΉΡΠΈΠ²Ρ ΠΊ ΠΎΡΠΈΠ±ΠΊΠ°ΠΌ ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠΈΡΠΎΠ²Π°Π½ΠΈΡ;
-
ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡΡ ΠΌΠ½ΠΎΠ³ΠΎΡΡΠ°ΠΏΠ½ΡΠ΅ ΡΠ±ΠΎΡΠΊΠΈ, ΡΡΠΎΠ±Ρ Π²Ρ ΠΌΠΎΠ³Π»ΠΈ ΡΠ°Π·Π²ΡΡΡΡΠ²Π°ΡΡ ΡΠΎΠ»ΡΠΊΠΎ ΡΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡΠΎΠ²Π°Π½Π½ΡΠ΅ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ, Π° Π½Π΅ ΡΠΎΠΏΡΡΡΡΠ²ΡΡΡΠΈΠ΅ ΠΈΡΡ ΠΎΠ΄Π½ΠΈΠΊΠΈ.
ΠΡΡΡ ΠΌΠ½ΠΎΠ³ΠΎ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½ΡΠΎΠ² ΠΈ ΡΠ΅ΡΠ²ΠΈΡΠΎΠ², ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡΡΠΈΡ ΠΏΡΠΎΠ²Π΅ΡΠΈΡΡ ΠΈ ΠΎΠΏΡΠΈΠΌΠΈΠ·ΠΈΡΠΎΠ²Π°ΡΡ ΠΎΠ±ΡΠ°Π·Ρ Π½Π° Π»Π΅ΡΡ. ΠΠ°ΠΆΠ½ΠΎ Π²ΡΠ΅Π³Π΄Π° ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°ΡΡ ΠΈΡ Π² Π°ΠΊΡΡΠ°Π»ΡΠ½ΠΎΠΌ ΡΠΎΡΡΠΎΡΠ½ΠΈΠΈ ΠΈ ΠΏΡΠΎΠ²Π΅ΡΠ΅Π½Π½ΡΠΌΠΈ Π½Π° Π±Π΅Π·ΠΎΠΏΠ°ΡΠ½ΠΎΡΡΡ. Π ΠΈΡΠΎΠ³Π΅ Π²Ρ ΠΏΠΎΠ»ΡΡΠ°Π΅ΡΠ΅:
-
Π‘Π½ΠΈΠΆΠ΅Π½ΠΈΠ΅ ΡΠ΅ΡΠ΅Π²ΠΎΠΉ Π½Π°Π³ΡΡΠ·ΠΊΠΈ Π½Π° Π²Π΅ΡΡ ΠΊΠ»Π°ΡΡΠ΅Ρ.
-
Π£ΠΌΠ΅Π½ΡΡΠ΅Π½ΠΈΠ΅ Π²ΡΠ΅ΠΌΠ΅Π½ΠΈ Π·Π°ΠΏΡΡΠΊΠ° ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅ΡΠ°.
-
ΠΠ΅Π½ΡΡΠΈΠΉ ΠΎΠ±ΡΡΠΌ Π²ΡΠ΅Π³ΠΎ Π²Π°ΡΠ΅Π³ΠΎ Docker registry.
4. ΠΡΠΏΠΎΠ»ΡΠ·ΡΠΉΡΠ΅ ΠΊΡΡ ΠΠΠ‘
ΠΡΠ»ΠΈ Π³ΠΎΠ²ΠΎΡΠΈΡΡ ΠΎ Π²ΡΡΠΎΠΊΠΈΡ
Π½Π°Π³ΡΡΠ·ΠΊΠ°Ρ
, ΡΠΎ Π±Π΅Π· ΡΡΠ½ΠΈΠ½Π³Π° DNS-ΡΠΈΡΡΠ΅ΠΌΡ ΠΊΠ»Π°ΡΡΠ΅ΡΠ° ΠΆΠΈΡΡ Π΄ΠΎΠ²ΠΎΠ»ΡΠ½ΠΎ ΠΏΠ°ΡΡΠΈΠ²ΠΎ. ΠΠΎΠ³Π΄Π°-ΡΠΎ Π΄Π°Π²Π½ΠΎ ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠΈ Kubernetes ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°Π»ΠΈ ΡΠ²ΠΎΡ ΡΠ΅ΡΠ΅Π½ΠΈΠ΅ kube-dns. ΠΠ½ΠΎ Π±ΡΠ»ΠΎ Π²Π½Π΅Π΄ΡΠ΅Π½ΠΎ ΠΈ Ρ Π½Π°Ρ, Π½ΠΎ ΡΡΠ° ΡΠΎΡΡΠΈΠ½Π° ΠΎΡΠΎΠ±ΠΎ Π½Π΅ ΡΡΠ½ΠΈΠ»Π°ΡΡ ΠΈ Π½Π΅ Π²ΡΠ΄Π°Π²Π°Π»Π° ΡΡΠ΅Π±ΡΠ΅ΠΌΡΡ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»ΡΠ½ΠΎΡΡΡ, Ρ
ΠΎΡΡ, Π²ΡΠΎΠ΄Π΅ Π±Ρ, Π·Π°Π΄Π°ΡΠ° ΠΏΡΠΎΡΡΠ°Ρ. ΠΠ°ΡΠ΅ΠΌ ΠΏΠΎΡΠ²ΠΈΠ»ΡΡ coredns, Π½Π° ΠΊΠΎΡΠΎΡΡΠΉ ΠΌΡ ΠΏΠ΅ΡΠ΅ΡΠ»ΠΈ ΠΈ Π³ΠΎΡΡ Π½Π΅ Π·Π½Π°Π»ΠΈ, Π²ΠΏΠΎΡΠ»Π΅Π΄ΡΡΠ²ΠΈΠΈ ΠΎΠ½ ΠΆΠ΅ ΡΡΠ°Π» DNS-ΡΠ΅ΡΠ²ΠΈΡΠΎΠΌ ΠΏΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ Π² K8s. Π ΠΊΠ°ΠΊΠΎΠΉ-ΡΠΎ ΠΌΠΎΠΌΠ΅Π½Ρ ΠΌΡ Π΄ΠΎΡΠΎΡΠ»ΠΈ Π΄ΠΎ 40 ΡΡΡ. rps ΠΊ DNS-ΡΠΈΡΡΠ΅ΠΌΠ΅, ΠΈ ΡΡΠΎΠ³ΠΎ ΡΠ΅ΡΠ΅Π½ΠΈΡ ΡΠΎΠΆΠ΅ ΡΡΠ°Π»ΠΎ Π½Π΅ Ρ
Π²Π°ΡΠ°ΡΡ. ΠΠΎ, ΠΏΠΎ ΡΡΠ°ΡΡΠ»ΠΈΠ²ΠΎΠΉ ΡΠ»ΡΡΠ°ΠΉΠ½ΠΎΡΡΠΈ, Π²ΡΡΠ΅Π» Nodelocaldns, ΠΎΠ½ ΠΆΠ΅ node local cache, ΠΎΠ½ ΠΆΠ΅
ΠΠΎΡΠ΅ΠΌΡ ΠΌΡ ΡΡΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΠΌ? Π ΡΠ΄ΡΠ΅ Linux Π΅ΡΡΡ Π±Π°Π³, ΠΊΠΎΡΠΎΡΡΠΉ ΠΏΡΠΈ ΠΌΠ½ΠΎΠΆΠ΅ΡΡΠ²Π΅Π½Π½ΠΎΠΌ ΠΎΠ±ΡΠ°ΡΠ΅Π½ΠΈΠΈ ΡΠ΅ΡΠ΅Π· conntrack NAT ΠΏΠΎ UDP ΠΏΡΠΈΠ²ΠΎΠ΄ΠΈΡ ΠΊ ΡΠΎΡΡΠΎΡΠ½ΠΈΡ Π³ΠΎΠ½ΠΊΠΈ Π·Π° Π·Π°ΠΏΠΈΡΡ Π² conntrack-ΡΠ°Π±Π»ΠΈΡΡ, ΠΈ ΡΠ°ΡΡΡ ΡΡΠ°ΡΠΈΠΊΠ° ΡΠ΅ΡΠ΅Π· NAT ΡΠ΅ΡΡΠ΅ΡΡΡ (ΠΊΠ°ΠΆΠ΄ΡΠΉ ΠΏΠΎΡ ΠΎΠ΄ ΡΠ΅ΡΠ΅Π· Service β ΡΡΠΎ NAT). Nodelocaldns ΡΠ΅ΡΠ°Π΅Ρ ΡΡΡ ΠΏΡΠΎΠ±Π»Π΅ΠΌΡ ΠΏΡΡΠ΅ΠΌ ΠΈΠ·Π±Π°Π²Π»Π΅Π½ΠΈΡ ΠΎΡ NAT ΠΈ Π°ΠΏΠ³ΡΠ΅ΠΉΠ΄Π° ΠΏΠΎΠ΄ΠΊΠ»ΡΡΠ΅Π½ΠΈΡ Π΄ΠΎ TCP ΠΊ Π°ΠΏΡΡΡΠΈΠΌΠΎΠ²ΡΠΌ DNS, Π° ΡΠ°ΠΊΠΆΠ΅ Π»ΠΎΠΊΠ°Π»ΡΠ½ΡΠΌ ΠΊΡΡΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ DNS-Π·Π°ΠΏΡΠΎΡΠΎΠ² ΠΊ Π°ΠΏΡΡΡΠΈΠΌΠ°ΠΌ (Π²ΠΊΠ»ΡΡΠ°Ρ ΠΊΠΎΡΠΎΡΠΊΠΈΠΉ 5-ΡΠ΅ΠΊΡΠ½Π΄Π½ΡΠΉ Π½Π΅Π³Π°ΡΠΈΠ²Π½ΡΠΉ ΠΊΡΡ).
5. ΠΠ°ΡΡΡΠ°Π±ΠΈΡΡΠΉΡΠ΅ ΠΏΠΎΠ΄Ρ Π³ΠΎΡΠΈΠ·ΠΎΠ½ΡΠ°Π»ΡΠ½ΠΎ ΠΈ Π²Π΅ΡΡΠΈΠΊΠ°Π»ΡΠ½ΠΎ Π°Π²ΡΠΎΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠΈ
ΠΠΎΠΆΠ΅ΡΠ΅ Π»ΠΈ Π²Ρ Ρ ΡΠ²Π΅ΡΠ΅Π½Π½ΠΎΡΡΡΡ ΡΠΊΠ°Π·Π°ΡΡ, ΡΡΠΎ Π²ΡΠ΅ Π²Π°ΡΠΈ ΠΌΠΈΠΊΡΠΎΡΠ΅ΡΠ²ΠΈΡΡ Π³ΠΎΡΠΎΠ²Ρ ΠΊ Π΄Π²ΡΡ
-ΡΡΡΠΊΡΠ°ΡΠ½ΠΎΠΌΡ ΡΠΎΡΡΡ Π½Π°Π³ΡΡΠ·ΠΊΠΈ? ΠΠ°ΠΊ ΠΏΡΠ°Π²ΠΈΠ»ΡΠ½ΠΎ Π²ΡΠ΄Π΅Π»ΡΡΡ ΡΠ΅ΡΡΡΡΡ ΡΠ²ΠΎΠΈΠΌ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡΠΌ? ΠΠ΅ΡΠΆΠ°ΡΡ Π·Π°ΠΏΡΡΠ΅Π½Π½ΡΠΌΠΈ ΠΏΠ°ΡΡ ΠΏΠΎΠ΄ΠΎΠ² ΡΠ²Π΅ΡΡ
ΡΠ°Π±ΠΎΡΠ΅ΠΉ Π½Π°Π³ΡΡΠ·ΠΊΠΈ ΠΌΠΎΠΆΠ΅Ρ ΠΎΠΊΠ°Π·Π°ΡΡΡΡ ΠΈΠ·Π±ΡΡΠΎΡΠ½ΡΠΌ, Π° Π΄Π΅ΡΠΆΠ°ΡΡ Π²ΠΏΡΠΈΡΡΠΊ β ΡΠΈΡΠΊΡΠ΅ΡΠ΅ ΠΏΠΎΠ»ΡΡΠΈΡΡ ΠΏΡΠΎΡΡΠΎΠΉ ΠΎΡ Π²Π½Π΅Π·Π°ΠΏΠ½ΠΎΠ³ΠΎ ΡΠΎΡΡΠ° ΡΡΠ°ΡΠΈΠΊΠ° Π½Π° ΡΠ΅ΡΠ²ΠΈΡ. ΠΠΎΠ»ΠΎΡΠΎΠΉ ΡΠ΅ΡΠ΅Π΄ΠΈΠ½Ρ ΠΏΠΎΠΌΠΎΠ³Π°ΡΡ Π΄ΠΎΡΡΠΈΡΡ Π·Π°ΠΊΠ»ΡΡΠΈΠ΅ ΡΠΌΠ½ΠΎΠΆΠ΅Π½ΠΈΡ ΡΠ°ΠΊΠΈΠ΅ ΡΠ΅ΡΠ²ΠΈΡΡ, ΠΊΠ°ΠΊ
VPA ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ Π°Π²ΡΠΎΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠΈ ΠΏΠΎΠ΄Π½ΠΈΠΌΠ°ΡΡ requests/limits Π²Π°ΡΠΈΡ ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅ΡΠΎΠ² Π² ΠΏΠΎΠ΄Π΅ Π² Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡΠΈ ΠΎΡ ΡΠ°ΠΊΡΠΈΡΠ΅ΡΠΊΠΎΠ³ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ. Π§Π΅ΠΌ ΠΎΠ½ ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ ΠΏΠΎΠ»Π΅Π·Π΅Π½? ΠΡΠ»ΠΈ Ρ Π²Π°Ρ Π΅ΡΡΡ ΠΏΠΎΠ΄Ρ, ΠΊΠΎΡΠΎΡΡΠ΅ Π½Π΅Π»ΡΠ·Ρ ΠΏΠΎ ΠΊΠ°ΠΊΠΎΠΉ-ΡΠΎ ΠΏΡΠΈΡΠΈΠ½Π΅ Π³ΠΎΡΠΈΠ·ΠΎΠ½ΡΠ°Π»ΡΠ½ΠΎ ΠΎΡΠΌΠ°ΡΡΡΠ°Π±ΠΈΡΠΎΠ²Π°ΡΡ (ΡΡΠΎ Π½Π΅ ΡΠΎΠ²ΡΠ΅ΠΌ Π½Π°Π΄ΡΠΆΠ½ΠΎ), ΡΠΎ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΠΏΠΎΠΏΡΠΎΠ±ΠΎΠ²Π°ΡΡ Π΄ΠΎΠ²Π΅ΡΠΈΡΡ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ Π΅Π³ΠΎ ΡΠ΅ΡΡΡΡΠΎΠ² VPA. ΠΠ³ΠΎ ΡΠΈΡΠΊΠ° Π·Π°ΠΊΠ»ΡΡΠ°Π΅ΡΡΡ Π² ΡΠΈΡΡΠ΅ΠΌΠ΅ ΡΠ΅ΠΊΠΎΠΌΠ΅Π½Π΄Π°ΡΠΈΠΉ Π½Π° ΠΎΡΠ½ΠΎΠ²Π΅ ΠΈΡΡΠΎΡΠΈΡΠ΅ΡΠΊΠΈΡ ΠΈ ΡΠ΅ΠΊΡΡΠΈΡ Π΄Π°Π½Π½ΡΡ ΠΈΠ· metric-server, ΠΏΠΎΡΡΠΎΠΌΡ, Π΅ΡΠ»ΠΈ Π²Ρ Π½Π΅ Ρ ΠΎΡΠΈΡΠ΅ Π°Π²ΡΠΎΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠΈ ΠΌΠ΅Π½ΡΡΡ requests/limits, ΡΠΎ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΠΏΡΠΎΡΡΠΎ ΠΎΡΡΠ»Π΅ΠΆΠΈΠ²Π°ΡΡ ΡΠ΅ΠΊΠΎΠΌΠ΅Π½Π΄ΡΠ΅ΠΌΡΠ΅ ΡΠ΅ΡΡΡΡΡ Π΄Π»Ρ Π²Π°ΡΠΈΡ ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅ΡΠΎΠ² ΠΈ ΠΎΠΏΡΠΈΠΌΠΈΠ·ΠΈΡΠΎΠ²Π°ΡΡ Π½Π°ΡΡΡΠΎΠΉΠΊΠΈ Π΄Π»Ρ ΡΠΊΠΎΠ½ΠΎΠΌΠΈΠΈ ΠΏΡΠΎΡΠ΅ΡΡΠΎΡΠ° ΠΈ ΠΏΠ°ΠΌΡΡΠΈ Π² ΠΊΠ»Π°ΡΡΠ΅ΡΠ΅.
ΠΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΠ΅ Π²Π·ΡΡΠΎ Ρ https://levelup.gitconnected.com/kubernetes-autoscaling-101-cluster-autoscaler-horizontal-pod-autoscaler-and-vertical-pod-2a441d9ad231
ΠΠ»Π°Π½ΠΈΡΠΎΠ²ΡΠΈΠΊ Π² Kubernetes Π²ΡΠ΅Π³Π΄Π° ΠΎΡΠ½ΠΎΠ²ΡΠ²Π°Π΅ΡΡΡ Π½Π° requests. ΠΠ°ΠΊΠΎΠ΅ Π±Ρ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ Π²Ρ ΡΡΠ΄Π° Π½Π΅ ΠΏΠΎΡΡΠ°Π²ΠΈΠ»ΠΈ, ΠΏΠ»Π°Π½ΠΈΡΠΎΠ²ΡΠΈΠΊ Π±ΡΠ΄Π΅Ρ ΠΈΡΠΊΠ°ΡΡ ΠΏΠΎΠ΄Ρ ΠΎΠ΄ΡΡΡΡ Π½ΠΎΠ΄Ρ, ΠΈΡΡ ΠΎΠ΄Ρ ΠΈΠ· Π½Π΅Π³ΠΎ. ΠΠ½Π°ΡΠ΅Π½ΠΈΡ limits Π½ΡΠΆΠ½Ρ ΠΊΡΠ±Π»Π΅ΡΡ Π΄Π»Ρ ΡΠΎΠ³ΠΎ, ΡΡΠΎΠ±Ρ ΠΏΠΎΠ½ΠΈΠΌΠ°ΡΡ, ΠΊΠΎΠ³Π΄Π° ΡΡΠΎΡΡΠ»ΠΈΡΡ ΠΈΠ»ΠΈ ΡΠ±ΠΈΠ²Π°ΡΡ ΠΏΠΎΠ΄. Π ΠΏΠΎΡΠΊΠΎΠ»ΡΠΊΡ Π΅Π΄ΠΈΠ½ΡΡΠ²Π΅Π½Π½ΡΠΉ Π²Π°ΠΆΠ½ΡΠΉ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡ β Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ requests, VPA Π±ΡΠ΄Π΅Ρ ΡΠ°Π±ΠΎΡΠ°ΡΡ Ρ Π½ΠΈΠΌ. ΠΡΡΠΊΠΈΠΉ ΡΠ°Π·, ΠΊΠΎΠ³Π΄Π° Π²Ρ Π·Π°Π΄Π°ΡΡΠ΅ Π²Π΅ΡΡΠΈΠΊΠ°Π»ΡΠ½ΠΎΠ΅ ΠΌΠ°ΡΡΡΠ°Π±ΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ, Π²Ρ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΠ΅ΡΠ΅, ΠΊΠ°ΠΊΠΈΠΌΠΈ Π΄ΠΎΠ»ΠΆΠ½Ρ Π±ΡΡΡ requests. Π ΡΡΠΎ ΡΠΎΠ³Π΄Π° Π±ΡΠ΄Π΅Ρ Ρ limits? ΠΡΠΎΡ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡ Π±ΡΠ΄Π΅Ρ ΡΠ°ΠΊΠΆΠ΅ ΠΏΡΠΎΠΏΠΎΡΡΠΈΠΎΠ½Π°Π»ΡΠ½ΠΎ ΠΎΡΠΌΠ°ΡΡΡΠ°Π±ΠΈΡΠΎΠ²Π°Π½.
Π ΠΏΡΠΈΠΌΠ΅ΡΡ, Π²ΠΎΡ ΠΎΠ±ΡΡΠ½ΡΠ΅ Π½Π°ΡΡΡΠΎΠΉΠΊΠΈ ΠΏΠΎΠ΄Π°:
resources:
requests:
memory: 250Mi
cpu: 200m
limits:
memory: 500Mi
cpu: 350m
ΠΠ΅Ρ Π°Π½ΠΈΠ·ΠΌ ΡΠ΅ΠΊΠΎΠΌΠ΅Π½Π΄Π°ΡΠΈΠΉ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΠ΅Ρ, ΡΡΠΎ Π²Π°ΡΠ΅ΠΌΡ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ Π΄Π»Ρ Π½ΠΎΡΠΌΠ°Π»ΡΠ½ΠΎΠΉ ΡΠ°Π±ΠΎΡΡ ΡΡΠ΅Π±ΡΠ΅ΡΡΡ 300m CPU ΠΈ 500Mi. ΠΡ ΠΏΠΎΠ»ΡΡΠΈΡΠ΅ ΡΠ°ΠΊΠΈΠ΅ Π½Π°ΡΡΡΠΎΠΉΠΊΠΈ:
resources:
requests:
memory: 500Mi
cpu: 300m
limits:
memory: 1000Mi
cpu: 525m
ΠΠ°ΠΊ ΡΠΏΠΎΠΌΠΈΠ½Π°Π»ΠΎΡΡ Π²ΡΡΠ΅, ΡΡΠΎ ΠΏΡΠΎΠΏΠΎΡΡΠΈΠΎΠ½Π°Π»ΡΠ½ΠΎΠ΅ ΠΌΠ°ΡΡΡΠ°Π±ΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ ΠΈΡΡ ΠΎΠ΄Ρ ΠΈΠ· ΡΠΎΠΎΡΠ½ΠΎΡΠ΅Π½ΠΈΡ requests/limits Π² ΠΌΠ°Π½ΠΈΡΠ΅ΡΡΠ΅:
-
CPU: 200m β 300m: ΡΠΎΠΎΡΠ½ΠΎΡΠ΅Π½ΠΈΠ΅ 1:1.75;
-
Memory: 250Mi β 500Mi: ΡΠΎΠΎΡΠ½ΠΎΡΠ΅Π½ΠΈΠ΅ 1:2.
Π§ΡΠΎ ΠΊΠ°ΡΠ°Π΅ΡΡΡ HPA, ΡΠΎ ΡΡΡ ΠΌΠ΅Ρ Π°Π½ΠΈΠ·ΠΌ ΡΠ°Π±ΠΎΡΡ ΠΏΡΠΎΠ·ΡΠ°ΡΠ½Π΅ΠΉ. ΠΡΡΡΠ°Π²Π»ΡΡΡΡΡ ΠΏΠΎΡΠΎΠ³ΠΎΠ²ΡΠ΅ Π·Π½Π°ΡΠ΅Π½ΠΈΡ ΠΌΠ΅ΡΡΠΈΠΊ, Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, ΠΏΡΠΎΡΠ΅ΡΡΠΎΡΠ° ΠΈ ΠΏΠ°ΠΌΡΡΠΈ, ΠΈ Π΅ΡΠ»ΠΈ ΡΡΠ΅Π΄Π½Π΅Π΅ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ Π²ΡΠ΅Ρ ΡΠ΅ΠΏΠ»ΠΈΠΊ ΠΏΡΠ΅Π²ΡΡΠ°Π΅Ρ ΠΏΠΎΡΠΎΠ³ΠΎΠ²ΠΎΠ΅, ΡΠΎ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ ΠΌΠ°ΡΡΡΠ°Π±ΠΈΡΡΠ΅ΡΡΡ Π½Π° +1 ΠΏΠΎΠ΄ Π΄ΠΎ ΡΠ΅Ρ ΠΏΠΎΡ, ΠΏΠΎΠΊΠ° Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ Π½Π΅ ΡΠΏΠ°Π΄Π΅Ρ Π½ΠΈΠΆΠ΅ ΠΏΠΎΡΠΎΠ³Π°, Π»ΠΈΠ±ΠΎ ΠΏΠΎΠΊΠ° Π½Π΅ Π±ΡΠ΄Π΅Ρ Π΄ΠΎΡΡΠΈΠ³Π½ΡΡΠΎ ΠΌΠ°ΠΊΡΠΈΠΌΠ°Π»ΡΠ½ΠΎΠ΅ ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²ΠΎ ΡΠ΅ΠΏΠ»ΠΈΠΊ.
ΠΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΠ΅ Π²Π·ΡΡΠΎ Ρ https://levelup.gitconnected.com/kubernetes-autoscaling-101-cluster-autoscaler-horizontal-pod-autoscaler-and-vertical-pod-2a441d9ad231
ΠΠΎΠΌΠΈΠΌΠΎ ΠΎΠ±ΡΡΠ½ΡΡ ΠΌΠ΅ΡΡΠΈΠΊ, Π²ΡΠΎΠ΄Π΅ ΠΏΡΠΎΡΠ΅ΡΡΠΎΡΠ° ΠΈ ΠΏΠ°ΠΌΡΡΠΈ, Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ Π½Π°ΡΡΡΠΎΠΈΡΡ ΠΏΠΎΡΠΎΠ³ΠΈ Π½Π° ΡΠ²ΠΎΠΈΡ ΠΊΠ°ΡΡΠΎΠΌΠ½ΡΡ ΠΌΠ΅ΡΡΠΈΠΊΠ°Ρ ΠΈΠ· Prometheus ΠΈ ΡΠ°Π±ΠΎΡΠ°ΡΡ Ρ Π½ΠΈΠΌΠΈ, Π΅ΡΠ»ΠΈ ΡΡΠΈΡΠ°Π΅ΡΠ΅ ΡΡΠΎ Π½Π°ΠΈΠ±ΠΎΠ»Π΅Π΅ ΡΠΎΡΠ½ΡΠΌ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅ΠΌ, ΠΊΠΎΠ³Π΄Π° ΡΠ»Π΅Π΄ΡΠ΅Ρ ΠΌΠ°ΡΡΡΠ°Π±ΠΈΡΠΎΠ²Π°ΡΡ Π²Π°ΡΠ΅ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅. ΠΠΎΡΠ»Π΅ ΡΠΎΠ³ΠΎ, ΠΊΠ°ΠΊ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ ΡΡΠ°Π±ΠΈΠ»ΠΈΠ·ΠΈΡΡΠ΅ΡΡΡ Π½ΠΈΠΆΠ΅ Π·Π°Π΄Π°Π½Π½ΠΎΠΉ Π³ΡΠ°Π½ΠΈΡΡ ΠΌΠ΅ΡΡΠΈΠΊΠΈ, HPA Π½Π°ΡΠ½Π΅Ρ ΠΌΠ°ΡΡΡΠ°Π±ΠΈΡΠΎΠ²Π°ΡΡ ΠΏΠΎΠ΄Ρ Π²Π½ΠΈΠ· Π΄ΠΎ ΠΌΠΈΠ½ΠΈΠΌΠ°Π»ΡΠ½ΠΎΠ³ΠΎ ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²Π° ΡΠ΅ΠΏΠ»ΠΈΠΊ ΠΈΠ»ΠΈ Π΄ΠΎ ΡΠΎΡΡΠΎΡΠ½ΠΈΡ, ΠΊΠΎΠ³Π΄Π° Π½Π°Π³ΡΡΠ·ΠΊΠ° Π±ΡΠ΄Π΅Ρ ΡΠ΄ΠΎΠ²Π»Π΅ΡΠ²ΠΎΡΡΡΡ Π·Π°Π΄Π°Π½Π½ΠΎΠΌΡ ΠΏΠΎΡΠΎΠ³Ρ.
6. ΠΠ΅ Π·Π°Π±ΡΠ²Π°ΠΉΡΠ΅ ΠΏΡΠΎ Node Affinity ΠΈ Pod Affinity
ΠΠ΅ Π²ΡΠ΅ ΡΠ·Π»Ρ ΡΠ°Π±ΠΎΡΠ°ΡΡ Π½Π° ΠΎΠ΄ΠΈΠ½Π°ΠΊΠΎΠ²ΠΎΠΌ ΠΎΠ±ΠΎΡΡΠ΄ΠΎΠ²Π°Π½ΠΈΠΈ, Π½Π΅ Π²ΡΠ΅ΠΌ ΠΏΠΎΠ΄Π°ΠΌ Π½ΡΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»Π½ΡΡΡ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ, ΡΡΠ΅Π±ΡΡΡΠΈΠ΅ ΠΈΠ½ΡΠ΅Π½ΡΠΈΠ²Π½ΡΡ Π²ΡΡΠΈΡΠ»Π΅Π½ΠΈΠΉ. Kubernetes ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ Π·Π°Π΄Π°Π²Π°ΡΡ ΡΠΏΠ΅ΡΠΈΠ°Π»ΠΈΠ·Π°ΡΠΈΡ Π½ΠΎΠ΄ ΠΈ ΠΏΠΎΠ΄ΠΎΠ² Ρ ΠΏΠΎΠΌΠΎΡΡΡ Node Affinity ΠΈ Pod Affinity.
ΠΡΠ»ΠΈ Ρ Π²Π°Ρ Π΅ΡΡΡ Π½ΠΎΠ΄Ρ, ΠΏΠΎΠ΄Ρ
ΠΎΠ΄ΡΡΠΈΠ΅ Π΄Π»Ρ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΉ Ρ ΠΈΠ½ΡΠ΅Π½ΡΠΈΠ²Π½ΡΠΌΠΈ Π²ΡΡΠΈΡΠ»Π΅Π½ΠΈΡΠΌΠΈ, ΡΠΎ Π΄Π»Ρ ΠΌΠ°ΠΊΡΠΈΠΌΠ°Π»ΡΠ½ΠΎΠΉ ΡΡΡΠ΅ΠΊΡΠΈΠ²Π½ΠΎΡΡΠΈ Π»ΡΡΡΠ΅ ΠΏΡΠΈΠ²ΡΠ·Π°ΡΡ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ ΠΊ ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΡΡΡΠΈΠΌ Π½ΠΎΠ΄Π°ΠΌ. ΠΠ»Ρ ΡΡΠΎΠ³ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠΉΡΠ΅ nodeSelector
Ρ ΠΌΠ΅ΡΠΊΠΎΠΉ ΡΠ·Π»Π°.
ΠΠΎΠΏΡΡΡΠΈΠΌ, Ρ Π²Π°Ρ Π΄Π²Π΅ Π½ΠΎΠ΄Ρ: ΠΎΠ΄Π½Π° Ρ CPUType=HIGHFREQ
ΠΈ Π±ΠΎΠ»ΡΡΠΈΠΌ ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²ΠΎΠΌ Π±ΡΡΡΡΡΡ
ΡΠ΄Π΅Ρ, Π΄ΡΡΠ³Π°Ρ Ρ MemoryType=HIGHMEMORY
Π±ΠΎΠ»ΡΡΠΈΠΌ ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²ΠΎΠΌ ΠΏΠ°ΠΌΡΡΠΈ ΠΈ Π±ΠΎΠ»Π΅Π΅ Π²ΡΡΠΎΠΊΠΈΠΌ Π±ΡΡΡΡΠΎΠ΄Π΅ΠΉΡΡΠ²ΠΈΠ΅ΠΌ. ΠΡΠΎΡΠ΅ Π²ΡΠ΅Π³ΠΎ Π½Π°Π·Π½Π°ΡΠΈΡΡ ΡΠ°Π·Π²ΡΡΡΡΠ²Π°Π½ΠΈΠ΅ ΠΏΠΎΠ΄Π° Π½ΠΎΠ΄Π΅ HIGHFREQ
, Π΄ΠΎΠ±Π°Π²ΠΈΠ² Π² ΡΠ°Π·Π΄Π΅Π» spec
ΡΠ°ΠΊΠΎΠΉ ΡΠ΅Π»Π΅ΠΊΡΠΎΡ:
β¦
nodeSelector:
CPUType: HIGHFREQ
ΠΠΎΠ»Π΅Π΅ Π·Π°ΡΡΠ°ΡΠ½ΡΠΉ ΠΈ ΡΠΏΠ΅ΡΠΈΡΠΈΡΠ½ΡΠΉ ΡΠΏΠΎΡΠΎΠ± ΡΠ΄Π΅Π»Π°ΡΡ ΡΡΠΎ β ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ nodeAffinity
Π² ΠΏΠΎΠ»Π΅ affinity
ΡΠ°Π·Π΄Π΅Π»Π° spec
. ΠΡΡΡ Π΄Π²Π° Π²Π°ΡΠΈΠ°Π½ΡΠ°:
-
requiredDuringSchedulingIgnoredDuringExecution
: ΠΆΡΡΡΠΊΠ°Ρ Π½Π°ΡΡΡΠΎΠΉΠΊΠ° (ΠΏΠ»Π°Π½ΠΈΡΠΎΠ²ΡΠΈΠΊ Π±ΡΠ΄Π΅Ρ ΡΠ°Π·Π²ΡΡΡΡΠ²Π°ΡΡ ΠΏΠΎΠ΄Ρ ΡΠΎΠ»ΡΠΊΠΎ Π½Π° ΠΊΠΎΠ½ΠΊΡΠ΅ΡΠ½ΡΡ Π½ΠΎΠ΄Π°Ρ (ΠΈ Π½ΠΈΠ³Π΄Π΅ Π±ΠΎΠ»ΡΡΠ΅)); -
preferredDuringSchedulingIgnoredDuringExecution
: ΠΌΡΠ³ΠΊΠ°Ρ Π½Π°ΡΡΡΠΎΠΉΠΊΠ° (ΠΏΠ»Π°Π½ΠΈΡΠΎΠ²ΡΠΈΠΊ ΠΏΠΎΠΏΡΡΠ°Π΅ΡΡΡ ΡΠ°Π·Π²Π΅ΡΠ½ΡΡΡ Π½Π° ΠΊΠΎΠ½ΠΊΡΠ΅ΡΠ½ΡΡ Π½ΠΎΠ΄Π°Ρ , Π° Π΅ΡΠ»ΠΈ Π½Π΅ ΠΏΠΎΠ»ΡΡΠΈΡΡΡ, ΡΠΎ ΠΏΠΎΠΏΡΡΠ°Π΅ΡΡΡ ΡΠ°Π·Π²Π΅ΡΠ½ΡΡΡ Π½Π° ΡΠ»Π΅Π΄ΡΡΡΠ΅ΠΉ Π΄ΠΎΡΡΡΠΏΠ½ΠΎΠΉ Π½ΠΎΠ΄Π΅).
ΠΡ ΠΌΠΎΠΆΠ΅ΡΠ΅ Π·Π°Π΄Π°ΡΡ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΠ½Π½ΡΠΉ ΡΠΈΠ½ΡΠ°ΠΊΡΠΈΡ ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΡ ΠΌΠ΅ΡΠΊΠ°ΠΌΠΈ ΡΠ·Π»ΠΎΠ², Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, In
, NotIn
, Exists
, DoesNotExist
, Gt
ΠΈΠ»ΠΈ Lt
. ΠΠ΄Π½Π°ΠΊΠΎ ΠΏΠΎΠΌΠ½ΠΈΡΠ΅, ΡΡΠΎ ΡΠ»ΠΎΠΆΠ½ΡΠ΅ ΠΌΠ΅ΡΠΎΠ΄Ρ Π² Π΄Π»ΠΈΠ½Π½ΡΡ
ΡΠΏΠΈΡΠΊΠ°Ρ
ΠΌΠ΅ΡΠΎΠΊ Π·Π°ΠΌΠ΅Π΄Π»ΡΡ ΠΏΡΠΈΠ½ΡΡΠΈΠ΅ ΡΠ΅ΡΠ΅Π½ΠΈΠΉ Π² ΠΊΡΠΈΡΠΈΡΠ΅ΡΠΊΠΈΡ
ΡΠΈΡΡΠ°ΡΠΈΡΡ
. ΠΠ½ΡΠΌΠΈ ΡΠ»ΠΎΠ²Π°ΠΌΠΈ, Π½Π΅ ΡΡΠ»ΠΎΠΆΠ½ΡΠΉΡΠ΅.
ΠΠ°ΠΊ ΡΠΏΠΎΠΌΠΈΠ½Π°Π»ΠΎΡΡ Π²ΡΡΠ΅, Kubernetes ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ Π·Π°Π΄Π°ΡΡ ΠΏΡΠΈΠ²ΡΠ·ΠΊΡ ΡΠ΅ΠΊΡΡΠΈΡ ΠΏΠΎΠ΄ΠΎΠ². Π’ΠΎ Π΅ΡΡΡ Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΡΠ΄Π΅Π»Π°ΡΡ ΡΠ°ΠΊ, ΡΡΠΎΠ±Ρ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΠ½Π½ΡΠ΅ ΠΏΠΎΠ΄Ρ ΡΠ°Π±ΠΎΡΠ°Π»ΠΈ Π²ΠΌΠ΅ΡΡΠ΅ Ρ Π΄ΡΡΠ³ΠΈΠΌΠΈ ΠΏΠΎΠ΄Π°ΠΌΠΈ Π² ΡΠΎΠΉ ΠΆΠ΅ Π·ΠΎΠ½Π΅ Π΄ΠΎΡΡΡΠΏΠ½ΠΎΡΡΠΈ (Π°ΠΊΡΡΠ°Π»ΡΠ½ΠΎ Π΄Π»Ρ ΠΎΠ±Π»Π°ΠΊΠΎΠ²) ΠΈΠ»ΠΈ Π½ΠΎΠ΄Π°Ρ .
Π podAffinity
ΠΏΠΎΠ»Ρ affinity
ΡΠ°Π·Π΄Π΅Π»Π° spec
Π΄ΠΎΡΡΡΠΏΠ½Ρ ΡΠ΅ ΠΆΠ΅ ΠΏΠΎΠ»Ρ, ΡΡΠΎ ΠΈ Π² ΡΠ»ΡΡΠ°Π΅ Ρ nodeAffinity
: requiredDuringSchedulingIgnoredDuringExecution
ΠΈ preferredDuringSchedulingIgnoredDuringExecution
. ΠΠ΄ΠΈΠ½ΡΡΠ²Π΅Π½Π½ΠΎΠ΅ ΠΎΡΠ»ΠΈΡΠΈΠ΅ Π² ΡΠΎΠΌ, ΡΡΠΎ matchExpressions
ΠΏΡΠΈΠ²ΡΠΆΠ΅Ρ ΠΏΠΎΠ΄Ρ ΠΊ Π½ΠΎΠ΄Π΅, Π½Π° ΠΊΠΎΡΠΎΡΠΎΠΉ ΡΠΆΠ΅ ΠΈΡΠΏΠΎΠ»Π½ΡΠ΅ΡΡΡ ΠΏΠΎΠ΄ Ρ ΡΠ°ΠΊΠΎΠΉ ΠΌΠ΅ΡΠΊΠΎΠΉ.
ΠΡΡ Kubernetes ΠΏΡΠ΅Π΄Π»Π°Π³Π°Π΅Ρ ΠΏΠΎΠ»Π΅ podAntiAffinity
, ΠΊΠΎΡΠΎΡΠΎΠ΅, Π½Π°ΠΏΡΠΎΡΠΈΠ², Π½Π΅ ΠΏΡΠΈΠ²ΡΠ·ΡΠ²Π°Π΅Ρ ΠΏΠΎΠ΄ ΠΊ Π½ΠΎΠ΄Π΅ Ρ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΠ½Π½ΡΠΌΠΈ ΠΏΠΎΠ΄Π°ΠΌΠΈ.
ΠΠ°ΡΡΡΡ Π²ΡΡΠ°ΠΆΠ΅Π½ΠΈΠΉ nodeAffinity
ΠΌΠΎΠΆΠ½ΠΎ Π΄Π°ΡΡ ΡΠΎΡ ΠΆΠ΅ ΡΠΎΠ²Π΅Ρ: ΡΡΠ°ΡΠ°ΠΉΡΠ΅ΡΡ ΡΠΎΡ
ΡΠ°Π½ΡΡΡ ΠΏΡΠΎΡΡΠΎΡΡ ΠΈ Π»ΠΎΠ³ΠΈΡΠ½ΠΎΡΡΡ ΠΏΡΠ°Π²ΠΈΠ», Π½Π΅ Π½Π°Π΄ΠΎ ΠΏΡΡΠ°ΡΡΡΡ ΠΏΠ΅ΡΠ΅Π³ΡΡΠ·ΠΈΡΡ ΡΠΏΠ΅ΡΠΈΡΠΈΠΊΠ°ΡΠΈΡ ΠΏΠΎΠ΄ΠΎΠ² ΡΠ»ΠΎΠΆΠ½ΡΠΌ Π½Π°Π±ΠΎΡΠΎΠΌ ΠΏΡΠ°Π²ΠΈΠ». ΠΡΠ΅Π½Ρ Π»Π΅Π³ΠΊΠΎ ΡΠΎΠ·Π΄Π°ΡΡ ΠΏΡΠ°Π²ΠΈΠ»ΠΎ, ΠΊΠΎΡΠΎΡΡΠ΅ Π½Π΅ Π±ΡΠ΄Π΅Ρ ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΠΎΠ²Π°ΡΡ ΡΡΠ»ΠΎΠ²ΠΈΡΠΌ ΠΊΠ»Π°ΡΡΠ΅ΡΠ°, ΡΠΎΠ·Π΄Π°Π² Π»ΠΈΡΠ½ΡΡ Π½Π°Π³ΡΡΠ·ΠΊΡ Π½Π° ΠΏΠ»Π°Π½ΠΈΡΠΎΠ²ΡΠΈΠΊ ΠΈ ΡΠ½ΠΈΠ·ΠΈΠ² ΠΎΠ±ΡΡΡ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»ΡΠ½ΠΎΡΡΡ.
7. Taints & Tolerations
ΠΡΡΡ Π΅ΡΡ ΠΎΠ΄ΠΈΠ½ ΡΠΏΠΎΡΠΎΠ± ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΡ ΠΏΠ»Π°Π½ΠΈΡΠΎΠ²ΡΠΈΠΊΠΎΠΌ. ΠΡΠ»ΠΈ Ρ Π²Π°Ρ Π±ΠΎΠ»ΡΡΠΎΠΉ ΠΊΠ»Π°ΡΡΠ΅Ρ Ρ ΡΠΎΡΠ½ΡΠΌΠΈ Π½ΠΎΠ΄ ΠΈ ΡΡΡΡΡΠ°ΠΌΠΈ ΠΌΠΈΠΊΡΠΎΡΠ΅ΡΠ²ΠΈΡΠΎΠ², ΡΠΎ ΠΎΡΠ΅Π½Ρ ΡΠ»ΠΎΠΆΠ½ΠΎ Π½Π΅ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡΡ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΠ½Π½ΡΠΌ ΠΏΠΎΠ΄Π°ΠΌ ΡΠ°Π·ΠΌΠ΅ΡΠ°ΡΡΡΡ Π½Π° ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΠ½Π½ΡΡ Π½ΠΎΠ΄Π°Ρ .
Π ΡΡΠΎΠΌ ΠΏΠΎΠΌΠΎΠ³Π°Π΅Ρ ΠΌΠ΅Ρ
Π°Π½ΠΈΠ·ΠΌ taints β Π·Π°ΠΏΡΠ΅ΡΠ°ΡΡΠΈΡ
ΠΏΡΠ°Π²ΠΈΠ». ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, ΠΌΠΎΠΆΠ½ΠΎ Π² ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΠ½Π½ΡΡ
ΡΡΠ΅Π½Π°ΡΠΈΡΡ
Π·Π°ΠΏΡΠ΅ΡΠΈΡΡ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Π½ΡΠΌ Π½ΠΎΠ΄Π°ΠΌ Π·Π°ΠΏΡΡΠΊΠ°ΡΡ Ρ ΡΠ΅Π±Ρ ΠΏΠΎΠ΄Ρ. ΠΠ»Ρ ΠΏΡΠΈΠΌΠ΅Π½Π΅Π½ΠΈΡ taint ΠΊ ΠΊΠΎΠ½ΠΊΡΠ΅ΡΠ½ΠΎΠΌΡ ΡΠ·Π»Ρ Π½ΡΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΠΎΠΏΡΠΈΡ taint
Π² kubectl. Π£ΠΊΠ°ΠΆΠΈΡΠ΅ ΠΊΠ»ΡΡ ΠΈ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅, Π° Π·Π°ΡΠ΅ΠΌ taint Π²ΡΠΎΠ΄Π΅ NoSchedule
ΠΈΠ»ΠΈ NoExecute
:
$ kubectl taint nodes node10 node-role.kubernetes.io/ingress=true:NoSchedule
Π’Π°ΠΊΠΆΠ΅ ΡΡΠΎΠΈΡ ΠΎΡΠΌΠ΅ΡΠΈΡΡ, ΡΡΠΎ ΠΌΠ΅Ρ
Π°Π½ΠΈΠ·ΠΌ taint ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°Π΅Ρ ΡΡΠΈ ΠΎΡΠ½ΠΎΠ²Π½ΡΡ
ΡΡΡΠ΅ΠΊΡΠ°: NoSchedule
, NoExecute
ΠΈ PreferNoSchedule
.
-
NoSchedule
ΠΎΠ·Π½Π°ΡΠ°Π΅Ρ, ΡΡΠΎ ΠΏΠΎΠΊΠ° Π² ΡΠΏΠ΅ΡΠΈΡΠΈΠΊΠ°ΡΠΈΠΈ ΠΏΠΎΠ΄Π° Π½Π΅ Π±ΡΠ΄Π΅Ρ ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΡΡΡΠ΅ΠΉ Π·Π°ΠΏΠΈΡΠΈtolerations
, ΠΎΠ½ Π½Π΅ ΡΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ ΡΠ°Π·Π²Π΅ΡΠ½ΡΡ Π½Π° Π½ΠΎΠ΄Π΅ (Π² Π΄Π°Π½Π½ΠΎΠΌ ΠΏΡΠΈΠΌΠ΅ΡΠ΅node10
). -
PreferNoSchedule
β ΡΠΏΡΠΎΡΡΠ½Π½Π°Ρ Π²Π΅ΡΡΠΈΡNoSchedule
. Π ΡΡΠΎΠΌ ΡΠ»ΡΡΠ°Π΅ ΠΏΠ»Π°Π½ΠΈΡΠΎΠ²ΡΠΈΠΊ ΠΏΠΎΠΏΡΡΠ°Π΅ΡΡΡ Π½Π΅ ΡΠ°ΡΠΏΡΠ΅Π΄Π΅Π»ΡΡΡ ΠΏΠΎΠ΄Ρ, Ρ ΠΊΠΎΡΠΎΡΡΡ Π½Π΅Ρ ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΡΡΡΠ΅ΠΉ Π·Π°ΠΏΠΈΡΠΈtolerations
Π½Π° Π½ΠΎΠ΄Ρ, Π½ΠΎ ΡΡΠΎ Π½Π΅ ΠΆΡΡΡΠΊΠΎΠ΅ ΠΎΠ³ΡΠ°Π½ΠΈΡΠ΅Π½ΠΈΠ΅. ΠΡΠ»ΠΈ Π² ΠΊΠ»Π°ΡΡΠ΅ΡΠ΅ Π½Π΅ ΠΎΠΊΠ°ΠΆΠ΅ΡΡΡ ΡΠ΅ΡΡΡΡΠΎΠ², ΡΠΎ ΠΏΠΎΠ΄Ρ Π½Π°ΡΠ½ΡΡ ΡΠ°Π·Π²ΠΎΡΠ°ΡΠΈΠ²Π°ΡΡΡΡ Π½Π° ΡΡΠΎΠΉ Π½ΠΎΠ΄Π΅. -
NoExecute
β ΡΡΠΎΡ ΡΡΡΠ΅ΠΊΡ Π·Π°ΠΏΡΡΠΊΠ°Π΅Ρ Π½Π΅ΠΌΠ΅Π΄Π»Π΅Π½Π½ΡΡ ΡΠ²Π°ΠΊΡΠ°ΡΠΈΡ ΠΏΠΎΠ΄ΠΎΠ², Ρ ΠΊΠΎΡΠΎΡΡΡ Π½Π΅Ρ ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΡΡΡΠ΅ΠΉ Π·Π°ΠΏΠΈΡΠΈtolerations
.
ΠΡΠ±ΠΎΠΏΡΡΠ½ΠΎ, ΡΡΠΎ ΡΠ°ΠΊΠΎΠ΅ ΠΏΠΎΠ²Π΅Π΄Π΅Π½ΠΈΠ΅ ΠΌΠΎΠΆΠ½ΠΎ ΠΎΡΠΌΠ΅Π½ΠΈΡΡ Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΠΌΠ΅Ρ Π°Π½ΠΈΠ·ΠΌΠ° tolerations. ΠΡΠΎ ΡΠ΄ΠΎΠ±Π½ΠΎ, ΠΊΠΎΠ³Π΄Π° Π΅ΡΡΡ Β«Π·Π°ΠΏΡΠ΅ΡΠ΅Π½Π½Π°ΡΒ» Π½ΠΎΠ΄Π° ΠΈ Π²Π°ΠΌ ΠΏΠΎΠ½Π°Π΄ΠΎΠ±ΠΈΠ»ΠΎΡΡ ΡΠ°Π·ΠΌΠ΅ΡΡΠΈΡΡ Π½Π° Π½Π΅ΠΉ ΡΠΎΠ»ΡΠΊΠΎ ΠΈΠ½ΡΡΠ°ΡΡΡΡΠΊΡΡΡΠ½ΡΠ΅ ΡΠ΅ΡΠ²ΠΈΡΡ. ΠΠ°ΠΊ ΡΡΠΎ ΡΠ΄Π΅Π»Π°ΡΡ? Π Π°Π·ΡΠ΅ΡΠΈΡΡ ΡΠΎΠ»ΡΠΊΠΎ ΡΠ΅ ΠΏΠΎΠ΄Ρ, Π΄Π»Ρ ΠΊΠΎΡΠΎΡΡΡ Π΅ΡΡΡ ΠΏΠΎΠ΄Ρ ΠΎΠ΄ΡΡΠΈΠΉ toleration.
ΠΠΎΡ ΠΊΠ°ΠΊ Π±ΡΠ΄Π΅Ρ Π²ΡΠ³Π»ΡΠ΄Π΅ΡΡ ΡΠΏΠ΅ΡΠΈΡΠΈΠΊΠ°ΡΠΈΡ ΠΏΠΎΠ΄Π°:
spec:
tolerations:
- key: "node-role.kubernetes.io/ingress"
operator: "Equal"
value: "true"
effect: "NoSchedule"
ΠΡΠΎ Π½Π΅ Π·Π½Π°ΡΠΈΡ, ΡΡΠΎ ΠΏΡΠΈ ΡΠ»Π΅Π΄ΡΡΡΠ΅ΠΌ ΡΠ΅Π΄Π΅ΠΏΠ»ΠΎΠ΅ ΠΏΠΎΠ΄ ΠΏΠΎΠΏΠ°Π΄Π΅Ρ ΠΈΠΌΠ΅Π½Π½ΠΎ Π½Π° ΡΡΡ Π½ΠΎΠ΄Ρ, ΡΡΠΎ Π½Π΅ ΠΌΠ΅Ρ
Π°Π½ΠΈΠ·ΠΌ Node Affinity ΠΈ nodeSelector
. ΠΠΎ ΠΊΠΎΠΌΠ±ΠΈΠ½ΠΈΡΡΡ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ ΡΠΈΡ, Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ Π΄ΠΎΠ±ΠΈΡΡΡΡ ΠΎΡΠ΅Π½Ρ Π³ΠΈΠ±ΠΊΠΎΠΉ Π½Π°ΡΡΡΠΎΠΉΠΊΠΈ ΠΏΠ»Π°Π½ΠΈΡΠΎΠ²ΡΠΈΠΊΠ°.
8. ΠΠ°ΡΡΡΠΎΠΉΡΠ΅ ΠΏΡΠΈΠΎΡΠΈΡΠ΅Ρ ΡΠ°Π·Π²Π΅ΡΡΡΠ²Π°Π½ΠΈΡ ΠΏΠΎΠ΄ΠΎΠ²
Π’ΠΎ, ΡΡΠΎ Π²Ρ Π½Π°ΡΡΡΠΎΠΈΠ»ΠΈ ΠΏΡΠΈΠ²ΡΠ·ΠΊΡ ΠΏΠΎΠ΄ΠΎΠ² ΠΊ Π½ΠΎΠ΄Π°ΠΌ, Π½Π΅ ΠΎΠ·Π½Π°ΡΠ°Π΅Ρ, ΡΡΠΎ Π²ΡΠ΅ ΠΏΠΎΠ΄Ρ Π΄ΠΎΠ»ΠΆΠ½Ρ ΠΎΠ±ΡΠ°Π±Π°ΡΡΠ²Π°ΡΡΡΡ Ρ ΠΎΠ΄ΠΈΠ½Π°ΠΊΠΎΠ²ΡΠΌ ΠΏΡΠΈΠΎΡΠΈΡΠ΅ΡΠΎΠΌ. ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ Π·Π°Ρ ΠΎΡΠ΅ΡΡ ΡΠ°Π·Π²ΡΡΡΡΠ²Π°ΡΡ ΠΊΠ°ΠΊΠΈΠ΅-ΡΠΎ ΠΏΠΎΠ΄Ρ ΡΠ°Π½ΡΡΠ΅ ΠΎΡΡΠ°Π»ΡΠ½ΡΡ .
Kubernetes ΠΏΡΠ΅Π΄Π»Π°Π³Π°Π΅Ρ ΡΠ°Π·Π½ΡΠ΅ ΡΠΏΠΎΡΠΎΠ±Ρ Π½Π°ΡΡΡΠΎΠΉΠΊΠΈ ΠΏΡΠΈΠΎΡΠΈΡΠ΅ΡΠ½ΠΎΡΡΠΈ ΠΏΠΎΠ΄ΠΎΠ² (Pod Priority and Preemption). ΠΠ°ΡΡΡΠΎΠΉΠΊΠ° ΡΠΎΡΡΠΎΠΈΡ ΠΈΠ· Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΈΡ
ΡΠ°ΡΡΠ΅ΠΉ: ΠΎΠ±ΡΠ΅ΠΊΡΠ° PriorityClass
ΠΈ ΠΎΠΏΠΈΡΠ°Π½ΠΈΡ ΠΏΠΎΠ»Ρ priorityClassName
Π² ΡΠΏΠ΅ΡΠΈΡΠΈΠΊΠ°ΡΠΈΠΈ ΠΏΠΎΠ΄Π°. Π Π°ΡΡΠΌΠΎΡΡΠΈΠΌ ΠΏΡΠΈΠΌΠ΅Ρ:
apiVersion: scheduling.k8s.io/v1
kind: PriorityClass
metadata:
name: high-priority
value: 99999
globalDefault: false
description: "This priority class should be used for very important pods only"
ΠΡ ΡΠΎΠ·Π΄Π°Π΅ΠΌ PriorityClass
, Π·Π°Π΄Π°Π΅ΠΌ Π΅ΠΌΡ ΠΈΠΌΡ, ΠΎΠΏΠΈΡΠ°Π½ΠΈΠ΅ ΠΈ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅. Π§Π΅ΠΌ Π²ΡΡΠ΅ value
, ΡΠ΅ΠΌ Π²ΡΡΠ΅ ΠΏΡΠΈΠΎΡΠΈΡΠ΅Ρ. ΠΠ½Π°ΡΠ΅Π½ΠΈΠ΅ ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ Π»ΡΠ±ΡΠΌ 32-Π±ΠΈΡΠ½ΡΠΌ ΡΠ΅Π»ΡΠΌ ΡΠΈΡΠ»ΠΎΠΌ, ΠΌΠ΅Π½ΡΡΠ΅ ΠΈΠ»ΠΈ ΡΠ°Π²Π½ΡΠΌ 1 000 000 000. ΠΠΎΠ»Π΅Π΅ Π²ΡΡΠΎΠΊΠΈΠ΅ Π·Π½Π°ΡΠ΅Π½ΠΈΡ Π·Π°ΡΠ΅Π·Π΅ΡΠ²ΠΈΡΠΎΠ²Π°Π½Ρ Π΄Π»Ρ ΠΊΡΠΈΡΠΈΡΠ΅ΡΠΊΠΈ Π²Π°ΠΆΠ½ΡΡ
ΡΠΈΡΡΠ΅ΠΌΠ½ΡΡ
ΠΏΠΎΠ΄ΠΎΠ², ΠΊΠΎΡΠΎΡΡΠ΅, ΠΊΠ°ΠΊ ΠΏΡΠ°Π²ΠΈΠ»ΠΎ, Π½Π΅ ΠΌΠΎΠ³ΡΡ Π±ΡΡΡ Π²ΡΡΠ΅ΡΠ½Π΅Π½Ρ. ΠΡΡΠ΅ΡΠ½Π΅Π½ΠΈΠ΅ Π±ΡΠ΄Π΅Ρ ΠΏΡΠΎΠΈΡΡ
ΠΎΠ΄ΠΈΡΡ ΡΠΎΠ»ΡΠΊΠΎ Π΅ΡΠ»ΠΈ Π²ΡΡΠΎΠΊΠΎΠΏΡΠΈΠΎΡΠΈΡΠ΅ΡΠ½ΠΎΠΌΡ ΠΏΠΎΠ΄Ρ Π½Π΅Π³Π΄Π΅ Π±ΡΠ΄Π΅Ρ ΡΠ°Π·Π²Π΅ΡΠ½ΡΡΡΡΡ, ΡΠΎΠ³Π΄Π° ΡΠ°ΡΡΡ ΠΏΠΎΠ΄ΠΎΠ² Ρ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Π½ΠΎΠΉ Π½ΠΎΠ΄Ρ Π±ΡΠ΄ΡΡ ΡΠ²Π°ΠΊΡΠΈΡΠΎΠ²Π°Π½Ρ. ΠΡΠ»ΠΈ Π΄Π»Ρ Π²Π°Ρ ΡΡΠΎΡ ΠΌΠ΅Ρ
Π°Π½ΠΈΠ·ΠΌ ΡΠ»ΠΈΡΠΊΠΎΠΌ ΠΆΡΡΡΠΊΠΈΠΉ, ΡΠΎ ΠΌΠΎΠΆΠ½ΠΎ Π΄ΠΎΠ±Π°Π²ΠΈΡΡ ΠΎΠΏΡΠΈΡ preemptionPolicy: Never
, ΠΈ ΡΠΎΠ³Π΄Π° Π²ΡΡΠ΅ΡΠ½Π΅Π½ΠΈΡ Π½Π΅ Π±ΡΠ΄Π΅Ρ, ΠΏΠΎΠ΄ Π±ΡΠ΄Π΅Ρ ΡΡΠΎΡΡΡ ΠΏΠ΅ΡΠ²ΡΠΌ Π² ΠΎΡΠ΅ΡΠ΅Π΄ΠΈ ΠΈ ΠΆΠ΄Π°ΡΡ, ΠΊΠΎΠ³Π΄Π° ΠΏΠ»Π°Π½ΠΈΡΠΎΠ²ΡΠΈΠΊ Π½Π°ΠΉΠ΄ΡΡ Π΄Π»Ρ Π½Π΅Π³ΠΎ ΡΠ²ΠΎΠ±ΠΎΠ΄Π½ΡΠ΅ ΡΠ΅ΡΡΡΡΡ.
ΠΠ°Π»Π΅Π΅ ΠΌΡ ΡΠΎΠ·Π΄Π°Π΅ΠΌ ΠΏΠΎΠ΄, Π² ΠΊΠΎΡΠΎΡΠΎΠΌ ΡΠΊΠ°Π·ΡΠ²Π°Π΅ΠΌ ΠΈΠΌΡ priorityClassName
:
apiVersion: v1
kind: Pod
metadata:
name: static-web
labels:
role: myrole
spec:
containers:
- name: web
image: nginx
ports:
- name: web
containerPort: 80
protocol: TCP
priorityClassName: high-priority
ΠΠΎΠΆΠ½ΠΎ ΡΠΎΠ·Π΄Π°Π²Π°ΡΡ ΡΠΊΠΎΠ»ΡΠΊΠΎ ΡΠ³ΠΎΠ΄Π½ΠΎ ΠΊΠ»Π°ΡΡΠΎΠ² ΠΏΡΠΈΠΎΡΠΈΡΠ΅ΡΠ½ΠΎΡΡΠΈ, Ρ ΠΎΡΡ ΡΠ΅ΠΊΠΎΠΌΠ΅Π½Π΄ΡΠ΅ΡΡΡ Π½Π΅ ΡΠ²Π»Π΅ΠΊΠ°ΡΡΡΡ ΡΡΠΈΠΌ (ΡΠΊΠ°ΠΆΠ΅ΠΌ, ΠΎΠ³ΡΠ°Π½ΠΈΡΠΈΡΡΡΡ Π½ΠΈΠ·ΠΊΠΈΠΌ, ΡΡΠ΅Π΄Π½ΠΈΠΌ ΠΈ Π²ΡΡΠΎΠΊΠΈΠΌ ΠΏΡΠΈΠΎΡΠΈΡΠ΅ΡΠΎΠΌ).
Π’Π°ΠΊΠΈΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ, Π² ΡΠ»ΡΡΠ°Π΅ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎΡΡΠΈ Π²Ρ ΡΠΌΠΎΠΆΠ΅ΡΠ΅ ΠΏΠΎΠ²ΡΡΠΈΡΡ ΡΡΡΠ΅ΠΊΡΠΈΠ²Π½ΠΎΡΡΡ ΡΠ°Π·Π²ΡΡΡΡΠ²Π°Π½ΠΈΡ ΠΊΡΠΈΡΠΈΡΠ½ΡΡ ΡΠ΅ΡΠ²ΠΈΡΠΎΠ², ΡΠ°ΠΊΠΈΡ ΠΊΠ°ΠΊ nginx-ingress-controller, coredns ΠΈ Ρ.ΠΏ.
9. ΠΠΏΡΠΈΠΌΠΈΠ·ΠΈΡΡΠΉΡΠ΅ ETCD-ΠΊΠ»Π°ΡΡΠ΅Ρ
ETCD ΠΌΠΎΠΆΠ½ΠΎ Π½Π°Π·Π²Π°ΡΡ ΠΌΠΎΠ·Π³ΠΎΠΌ Π²ΡΠ΅Π³ΠΎ ΠΊΠ»Π°ΡΡΠ΅ΡΠ°. ΠΡΠ΅Π½Ρ Π²Π°ΠΆΠ½ΠΎ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°ΡΡ ΡΠ°Π±ΠΎΡΡ ΡΡΠΎΠΉ ΠΠ Π½Π° Π²ΡΡΠΎΠΊΠΎΠΌ ΡΡΠΎΠ²Π½Π΅, ΡΠ°ΠΊ ΠΊΠ°ΠΊ ΠΈΠΌΠ΅Π½Π½ΠΎ ΠΎΡ Π½Π΅Π΅ Π·Π°Π²ΠΈΡΠΈΡ ΡΠΊΠΎΡΠΎΡΡΡ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΉ Π² Β«ΠΡΠ±Π΅Β». ΠΠΎΡΡΠ°ΡΠΎΡΠ½ΠΎ ΡΡΠ°Π½Π΄Π°ΡΡΠ½ΡΠΌ, ΠΈ Π² ΡΠΎ ΠΆΠ΅ Π²ΡΠ΅ΠΌΡ Π½Π΅ΠΏΠ»ΠΎΡ ΠΈΠΌ ΡΠ΅ΡΠ΅Π½ΠΈΠ΅ΠΌ Π±ΡΠ΄Π΅Ρ Π΄Π΅ΡΠΆΠ°ΡΡ ΠΊΠ»Π°ΡΡΠ΅Ρ ETCD Π½Π° ΠΌΠ°ΡΡΠ΅Ρ-Π½ΠΎΠ΄Π°Ρ , ΡΡΠΎΠ±Ρ ΠΈΠΌΠ΅ΡΡ ΠΌΠΈΠ½ΠΈΠΌΠ°Π»ΡΠ½ΡΡ Π·Π°Π΄Π΅ΡΠΆΠΊΡ Π΄ΠΎ kube-apiserver. ΠΡΠ»ΠΈ Π½Π΅ ΠΏΠΎΠ»ΡΡΠ°Π΅ΡΡΡ ΡΠ°ΠΊ ΡΠ΄Π΅Π»Π°ΡΡ, ΡΠΎ ΡΠ°ΡΠΏΠΎΠ»Π°Π³Π°ΠΉΡΠ΅ ETCD ΠΊΠ°ΠΊ ΠΌΠΎΠΆΠ½ΠΎ Π±Π»ΠΈΠΆΠ΅, ΠΈΠΌΠ΅Ρ Ρ ΠΎΡΠΎΡΡΡ ΠΏΡΠΎΠΏΡΡΠΊΠ½ΡΡ ΡΠΏΠΎΡΠΎΠ±Π½ΠΎΡΡΡ ΠΌΠ΅ΠΆΠ΄Ρ ΡΡΠ°ΡΡΠ½ΠΈΠΊΠ°ΠΌΠΈ. Π’Π°ΠΊΠΆΠ΅ ΠΎΠ±ΡΠ°ΡΠ°ΠΉΡΠ΅ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅ Π½Π° ΡΠΎ, ΡΠΊΠΎΠ»ΡΠΊΠΎ Π½ΠΎΠ΄ ΠΈΠ· ETCD ΠΌΠΎΠΆΠ΅Ρ Π²ΡΠΏΠ°ΡΡΡ Π±Π΅Π· Π²ΡΠ΅Π΄Π° Π΄Π»Ρ ΠΊΠ»Π°ΡΡΠ΅ΡΠ°
ΠΠΌΠ΅ΠΉΡΠ΅ Π² Π²ΠΈΠ΄Ρ, ΡΡΠΎ ΡΡΠ΅Π·ΠΌΠ΅ΡΠ½ΠΎΠ΅ ΡΠ²Π΅Π»ΠΈΡΠ΅Π½ΠΈΠ΅ ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²Π° ΡΡΠ°ΡΡΠ½ΠΈΠΊΠΎΠ² Π² ΠΊΠ»Π°ΡΡΠ΅ΡΠ΅ ΠΌΠΎΠΆΠ΅Ρ ΠΏΠΎΠ²ΡΡΠΈΡΡ ΠΎΡΠΊΠ°Π·ΠΎΡΡΡΠΎΠΉΡΠΈΠ²ΠΎΡΡΡ Π² ΡΡΠ΅ΡΠ± ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»ΡΠ½ΠΎΡΡΠΈ, Π²ΡΡ Π΄ΠΎΠ»ΠΆΠ½ΠΎ Π±ΡΡΡ Π² ΠΌΠ΅ΡΡ.
ΠΡΠ»ΠΈ Π³ΠΎΠ²ΠΎΡΠΈΡΡ ΠΎ Π½Π°ΡΡΡΠΎΠΉΠΊΠ΅ ΡΠ΅ΡΠ²ΠΈΡΠ°, ΡΠΎ ΡΠ΅ΠΊΠΎΠΌΠ΅Π½Π΄Π°ΡΠΈΠΉ Π½Π΅ΠΌΠ½ΠΎΠ³ΠΎ:
-
ΠΠΌΠ΅ΡΡ Ρ ΠΎΡΠΎΡΠ΅Π΅ ΠΆΠ΅Π»Π΅Π·ΠΎ, ΠΈΡΡ ΠΎΠ΄Ρ ΠΈΠ· ΡΠ°Π·ΠΌΠ΅ΡΠΎΠ² ΠΊΠ»Π°ΡΡΠ΅ΡΠ° (ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠΎΡΠΈΡΠ°ΡΡ
ΡΡΡ ). -
ΠΠΎΠ΄ΠΊΡΡΡΠΈΡΡ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠΎΠ², Π΅ΡΠ»ΠΈ Π²Ρ ΡΠ°Π·ΠΌΠ°Π·Π°Π»ΠΈ ΠΊΠ»Π°ΡΡΠ΅Ρ ΠΌΠ΅ΠΆΠ΄Ρ ΠΏΠ°ΡΠΎΠΉ ΠΠ¦ ΠΈΠ»ΠΈ Π²Π°ΡΠ° ΡΠ΅ΡΡ ΠΈ Π΄ΠΈΡΠΊΠΈ ΠΎΡΡΠ°Π²Π»ΡΡΡ ΠΆΠ΅Π»Π°ΡΡ Π»ΡΡΡΠ΅Π³ΠΎ (ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠΎΡΠΈΡΠ°ΡΡ
ΡΡΡ ).
ΠΠ°ΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅
Π ΡΡΠΎΠΉ ΡΡΠ°ΡΡΠ΅ ΠΎΠΏΠΈΡΠ°Π½Ρ ΠΏΡΠ½ΠΊΡΡ, ΠΊΠΎΡΠΎΡΡΠ΅ Π½Π°ΡΠ° ΠΊΠΎΠΌΠ°Π½Π΄Π° ΡΡΠ°ΡΠ°Π΅ΡΡΡ ΡΠΎΠ±Π»ΡΠ΄Π°ΡΡ. ΠΡΠΎ Π½Π΅ ΠΏΠΎΡΠ°Π³ΠΎΠ²ΠΎΠ΅ ΠΎΠΏΠΈΡΠ°Π½ΠΈΠ΅ Π΄Π΅ΠΉΡΡΠ²ΠΈΠΉ, Π° Π²Π°ΡΠΈΠ°Π½ΡΡ, ΠΊΠΎΡΠΎΡΡΠ΅ ΠΌΠΎΠ³ΡΡ ΠΏΡΠΈΠ³ΠΎΠ΄ΠΈΡΡΡΡ Π΄Π»Ρ ΠΎΠΏΡΠΈΠΌΠΈΠ·Π°ΡΠΈΠΈ Π½Π°ΠΊΠ»Π°Π΄Π½ΡΡ ΡΠ°ΡΡ ΠΎΠ΄ΠΎΠ² Π½Π° ΠΊΠ»Π°ΡΡΠ΅Ρ. ΠΠΎΠ½ΡΡΠ½ΠΎ, ΡΡΠΎ ΠΊΠ°ΠΆΠ΄ΡΠΉ ΠΊΠ»Π°ΡΡΠ΅Ρ ΠΏΠΎ-ΡΠ²ΠΎΠ΅ΠΌΡ ΡΠ½ΠΈΠΊΠ°Π»Π΅Π½, ΠΈ ΡΠ΅ΡΠ΅Π½ΠΈΡ ΠΏΠΎ Π½Π°ΡΡΡΠΎΠΉΠΊΠ΅ ΠΌΠΎΠ³ΡΡ ΡΠΈΠ»ΡΠ½ΠΎ ΡΠ°Π·Π½ΠΈΡΡΡΡ, ΠΏΠΎΡΡΠΎΠΌΡ Π±ΡΠ»ΠΎ Π±Ρ ΠΈΠ½ΡΠ΅ΡΠ΅ΡΠ½ΠΎ ΠΏΠΎΠ»ΡΡΠΈΡΡ ΠΎΡ Π²Π°Ρ ΠΎΠ±ΡΠ°ΡΠ½ΡΡ ΡΠ²ΡΠ·Ρ: ΠΊΠ°ΠΊ Π²Ρ ΡΠ»Π΅Π΄ΠΈΡΠ΅ Π·Π° ΡΠ²ΠΎΠΈΠΌ ΠΊΠ»Π°ΡΡΠ΅ΡΠΎΠΌ Kubernetes, Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΡΠ΅Π³ΠΎ Π²Ρ ΡΠ»ΡΡΡΠ°Π΅ΡΠ΅ Π΅Π³ΠΎ ΡΠ°Π±ΠΎΡΡ. ΠΠ΅Π»ΠΈΡΠ΅ΡΡ ΡΠ²ΠΎΠΈΠΌ ΠΎΠΏΡΡΠΎΠΌ Π² ΠΊΠΎΠΌΠΌΠ΅Π½ΡΠ°ΡΠΈΡΡ , Π±ΡΠ΄Π΅Ρ ΠΈΠ½ΡΠ΅ΡΠ΅ΡΠ½ΠΎ Π΅Π³ΠΎ ΡΠ·Π½Π°ΡΡ.
ΠΡΡΠΎΡΠ½ΠΈΠΊ: habr.com