Π”Π΅Π²Π΅Ρ‚ совСти Π·Π° ΠΈΠ·Π²Π΅Π΄Π±Π° Π½Π° Kubernetes

Π”Π΅Π²Π΅Ρ‚ совСти Π·Π° ΠΈΠ·Π²Π΅Π΄Π±Π° Π½Π° Kubernetes

Π—Π΄Ρ€Π°Π²ΠΎ Π½Π° ситС! Јас сС Π²ΠΈΠΊΠ°ΠΌ ОлСг Π‘ΠΈΠ΄ΠΎΡ€Π΅Π½ΠΊΠΎΠ², Ρ€Π°Π±ΠΎΡ‚Π°ΠΌ Π²ΠΎ DomClick ΠΊΠ°ΠΊΠΎ ΡˆΠ΅Ρ„ Π½Π° инфраструктурниот Ρ‚ΠΈΠΌ. ΠšΡƒΠ±ΠΈΠΊ Π³ΠΎ користимС Π²ΠΎ производство повСќС ΠΎΠ΄ Ρ‚Ρ€ΠΈ Π³ΠΎΠ΄ΠΈΠ½ΠΈ ΠΈ Π·Π° ΠΎΠ²Π° Π²Ρ€Π΅ΠΌΠ΅ Π΄ΠΎΠΆΠΈΠ²Π΅Π°Π²ΠΌΠ΅ ΠΌΠ½ΠΎΠ³Ρƒ Ρ€Π°Π·Π»ΠΈΡ‡Π½ΠΈ интСрСсни ΠΌΠΎΠΌΠ΅Π½Ρ‚ΠΈ со Π½Π΅Π³ΠΎ. ДСнСс ќС Π²ΠΈ ΠΊΠ°ΠΆΠ°ΠΌ ΠΊΠ°ΠΊΠΎ, со ΠΏΡ€Π°Π²ΠΈΠ»Π΅Π½ пристап, ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π΄Π° исцСдитС ΡƒΡˆΡ‚Π΅ повСќС пСрформанси ΠΎΠ΄ Kubernetes ΠΎΠ΄ Π²Π°Π½ΠΈΠ»Π° Π·Π° Π²Π°ΡˆΠΈΠΎΡ‚ кластСр. ΠŸΠΎΠ΄Π³ΠΎΡ‚Π²Π΅Π½ΠΈ стабилно ΠΎΠ΄Π΅Ρ‚Π΅!

Π‘ΠΈΡ‚Π΅ Π΄ΠΎΠ±Ρ€ΠΎ Π·Π½Π°Π΅Ρ‚Π΅ Π΄Π΅ΠΊΠ° Kubernetes Π΅ скалабилСн систСм со ΠΎΡ‚Π²ΠΎΡ€Π΅Π½ ΠΊΠΎΠ΄ Π·Π° ΠΎΡ€ΠΊΠ΅ΡΡ‚Ρ€Π°Ρ†ΠΈΡ˜Π° Π½Π° ΠΊΠΎΠ½Ρ‚Π΅Ρ˜Π½Π΅Ρ€ΠΈ; Π΄ΠΎΠ±Ρ€ΠΎ, ΠΈΠ»ΠΈ 5 Π±ΠΈΠ½Π°Ρ€Π½ΠΈ Π΄Π°Ρ‚ΠΎΡ‚Π΅ΠΊΠΈ ΠΊΠΎΠΈ Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ ΠΌΠ°Π³ΠΈΡ‡Π½ΠΎ со ΡƒΠΏΡ€Π°Π²ΡƒΠ²Π°ΡšΠ΅ со ΠΆΠΈΠ²ΠΎΡ‚Π½ΠΈΠΎΡ‚ циклус Π½Π° Π²Π°ΡˆΠΈΡ‚Π΅ микроуслуги Π²ΠΎ ΠΎΠΏΠΊΡ€ΡƒΠΆΡƒΠ²Π°ΡšΠ΅ Π½Π° сСрвСрот. ΠŸΠΎΠΊΡ€Π°Ρ˜ Ρ‚ΠΎΠ°, Ρ‚ΠΎΠ° Π΅ ΠΏΡ€ΠΈΠ»ΠΈΡ‡Π½ΠΎ флСксибилна Π°Π»Π°Ρ‚ΠΊΠ° која ΠΌΠΎΠΆΠ΅ Π΄Π° сС состави ΠΊΠ°ΠΊΠΎ Lego Π·Π° максимална ΠΏΡ€ΠΈΡΠΏΠΎΡΠΎΠ±ΡƒΠ²Π°ΡšΠ΅ Π·Π° Ρ€Π°Π·Π»ΠΈΡ‡Π½ΠΈ Π·Π°Π΄Π°Ρ‡ΠΈ.

И сС Ρ‡ΠΈΠ½ΠΈ Π΄Π΅ΠΊΠ° сè Π΅ Π²ΠΎ Ρ€Π΅Π΄: Ρ„Ρ€Π»Π΅Ρ‚Π΅ Π³ΠΈ сСрвСритС Π²ΠΎ кластСрот ΠΊΠ°ΠΊΠΎ ΠΎΠ³Ρ€Π΅Π²Π½ΠΎ Π΄Ρ€Π²ΠΎ Π²ΠΎ Π»ΠΎΠΆΠΈΡˆΡ‚Π΅, ΠΈ Π½Π΅ΠΌΠ° Π΄Π° Π·Π½Π°Π΅Ρ‚Π΅ Π½ΠΈΠΊΠ°ΠΊΠ²Π° Ρ‚Π°Π³Π°. Но, Π°ΠΊΠΎ стС Π·Π° ΠΆΠΈΠ²ΠΎΡ‚Π½Π°Ρ‚Π° срСдина, ќС помислитС: β€žΠšΠ°ΠΊΠΎ Π΄Π° Π³ΠΎ ΠΎΠ΄Ρ€ΠΆΠ°ΠΌ ΠΎΠ³Π½ΠΎΡ‚ Π·Π°ΠΏΠ°Π»Π΅Π½ ΠΈ Π΄Π° ја ΠΏΠΎΡˆΡ‚Π΅Π΄Π°ΠΌ ΡˆΡƒΠΌΠ°Ρ‚Π°? Π‘ΠΎ Π΄Ρ€ΡƒΠ³ΠΈ Π·Π±ΠΎΡ€ΠΎΠ²ΠΈ, ΠΊΠ°ΠΊΠΎ Π΄Π° сС Π½Π°Ρ˜Π΄Π°Ρ‚ Π½Π°Ρ‡ΠΈΠ½ΠΈ Π·Π° ΠΏΠΎΠ΄ΠΎΠ±Ρ€ΡƒΠ²Π°ΡšΠ΅ Π½Π° инфраструктурата ΠΈ Π½Π°ΠΌΠ°Π»ΡƒΠ²Π°ΡšΠ΅ Π½Π° Ρ‚Ρ€ΠΎΡˆΠΎΡ†ΠΈΡ‚Π΅.

1. Π‘Π»Π΅Π΄Π΅Ρ‚Π΅ Π³ΠΈ рСсурситС Π½Π° Ρ‚ΠΈΠΌΠΎΡ‚ ΠΈ Π°ΠΏΠ»ΠΈΠΊΠ°Ρ†ΠΈΠΈΡ‚Π΅

Π”Π΅Π²Π΅Ρ‚ совСти Π·Π° ΠΈΠ·Π²Π΅Π΄Π±Π° Π½Π° Kubernetes

Π•Π΄Π΅Π½ ΠΎΠ΄ Π½Π°Ρ˜Π²ΠΎΠΎΠ±ΠΈΡ‡Π°Π΅Π½ΠΈΡ‚Π΅, Π½ΠΎ Π΅Ρ„Π΅ΠΊΡ‚ΠΈΠ²Π½ΠΈ ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΈ Π΅ Π²ΠΎΠ²Π΅Π΄ΡƒΠ²Π°ΡšΠ΅Ρ‚ΠΎ Π½Π° Π±Π°Ρ€Π°ΡšΠ°/Π»ΠΈΠΌΠΈΡ‚ΠΈ. ΠŸΠΎΠ΄Π΅Π»Π΅Ρ‚Π΅ Π³ΠΈ Π°ΠΏΠ»ΠΈΠΊΠ°Ρ†ΠΈΠΈΡ‚Π΅ ΠΏΠΎ имСнски простори ΠΈ имСнскитС простори ΠΏΠΎ Ρ‚ΠΈΠΌΠΎΠ²ΠΈΡ‚Π΅ Π·Π° Ρ€Π°Π·Π²ΠΎΡ˜. ΠŸΡ€Π΅Π΄ Ρ€Π°ΡΠΏΠΎΡ€Π΅Π΄ΡƒΠ²Π°ΡšΠ΅Ρ‚ΠΎ, поставСтС Π³ΠΈ врСдноститС Π½Π° Π°ΠΏΠ»ΠΈΠΊΠ°Ρ†ΠΈΡ˜Π°Ρ‚Π° Π·Π° ΠΏΠΎΡ‚Ρ€ΠΎΡˆΡƒΠ²Π°Ρ‡ΠΊΠ° Π½Π° Π²Ρ€Π΅ΠΌΠ΅ Π½Π° процСсорот, ΠΌΠ΅ΠΌΠΎΡ€ΠΈΡ˜Π° ΠΈ ΠΌΠΈΠ½Π»ΠΈΠ²ΠΎ ΡΠΊΠ»Π°Π΄ΠΈΡ€Π°ΡšΠ΅.

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, Π°ΠΊΠΎ опс Ρ‚ΠΈΠΌΠΎΡ‚ сака Π΄Π° распорСди ΠΏΠΎΠ΄Π»ΠΎΠ³ΠΈ ΡˆΡ‚ΠΎ ќС Ρ‚Ρ€ΠΎΡˆΠ°Ρ‚ ΡƒΡˆΡ‚Π΅ 10 процСсорски процСсори, распорСдувачот Π½Π΅ΠΌΠ° Π΄Π° Π³ΠΎ Π΄ΠΎΠ·Π²ΠΎΠ»ΠΈ Ρ‚ΠΎΠ° ΠΈ ќС Π½Π°ΠΏΡ€Π°Π²ΠΈ Π³Ρ€Π΅ΡˆΠΊΠ°:

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. Π˜Π·Π±Π΅Ρ€Π΅Ρ‚Π΅ ΠΎΠΏΡ‚ΠΈΠΌΠ°Π»Π½ΠΎ ΡΠΊΠ»Π°Π΄ΠΈΡ€Π°ΡšΠ΅ Π½Π° Π΄Π°Ρ‚ΠΎΡ‚Π΅ΠΊΠΈ

Π”Π΅Π²Π΅Ρ‚ совСти Π·Π° ΠΈΠ·Π²Π΅Π΄Π±Π° Π½Π° Kubernetes

ОвдС Π±ΠΈ сакал Π΄Π° ја Π΄ΠΎΠΏΡ€Π°ΠΌ Ρ‚Π΅ΠΌΠ°Ρ‚Π° Π·Π° ΠΏΠΎΡΡ‚ΠΎΡ˜Π°Π½ΠΈ Π²ΠΎΠ»ΡƒΠΌΠ΅Π½ΠΈ ΠΈ потсистСмот Π½Π° дискот Π½Π° Ρ€Π°Π±ΠΎΡ‚Π½ΠΈΡ‡ΠΊΠΈΡ‚Π΅ јазли Π½Π° Kubernetes. Π‘Π΅ Π½Π°Π΄Π΅Π²Π°ΠΌ Π΄Π΅ΠΊΠ° никој Π½Π΅ ја користи β€žΠšΠΎΡ†ΠΊΠ°Ρ‚Π°β€œ Π½Π° HDD Π²ΠΎ производството, Π½ΠΎ понСкогаш ΠΎΠ±ΠΈΡ‡Π½ΠΈΠΎΡ‚ SSD вСќС Π½Π΅ Π΅ Π΄ΠΎΠ²ΠΎΠ»Π΅Π½. НаидовмС Π½Π° ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌ ΠΊΠΎΠ³Π° Π΄Π½Π΅Π²Π½ΠΈΡ†ΠΈΡ‚Π΅ Π³ΠΎ ΡƒΠ±ΠΈΠ²Π°Π° дискот ΠΏΠΎΡ€Π°Π΄ΠΈ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈΡ‚Π΅ Π½Π° Π’/И ΠΈ Π½Π΅ΠΌΠ° ΠΌΠ½ΠΎΠ³Ρƒ Ρ€Π΅ΡˆΠ΅Π½ΠΈΡ˜Π°:

  • ΠšΠΎΡ€ΠΈΡΡ‚Π΅Ρ‚Π΅ SSD-дискови со високи пСрформанси ΠΈΠ»ΠΈ ΠΏΡ€Π΅Ρ„Ρ€Π»Π΅Ρ‚Π΅ сС Π½Π° NVMe (Π°ΠΊΠΎ ΡƒΠΏΡ€Π°Π²ΡƒΠ²Π°Ρ‚Π΅ со свој Ρ…Π°Ρ€Π΄Π²Π΅Ρ€).

  • НамалСтС Π³ΠΎ Π½ΠΈΠ²ΠΎΡ‚ΠΎ Π½Π° сСча.

  • НаправСтС β€žΠΏΠ°ΠΌΠ΅Ρ‚Π½ΠΎβ€œ Π±Π°Π»Π°Π½ΡΠΈΡ€Π°ΡšΠ΅ Π½Π° ΠΌΠ΅ΡˆΡƒΠ½ΠΊΠΈΡ‚Π΅ ΡˆΡ‚ΠΎ Π³ΠΎ силуваат дискот (podAntiAffinity).

На Π΅ΠΊΡ€Π°Π½ΠΎΡ‚ ΠΏΠΎΠ³ΠΎΡ€Π΅ сС Π³Π»Π΅Π΄Π° ΡˆΡ‚ΠΎ сС случува ΠΏΠΎΠ΄ nginx-ingress-controller Π½Π° дискот ΠΊΠΎΠ³Π° Π΅ ΠΎΠ²ΠΎΠ·ΠΌΠΎΠΆΠ΅Π½ΠΎ Π΅Π²ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ€Π°ΡšΠ΅ Π½Π° access_logs (~ 12 илјади Π΄Π½Π΅Π²Π½ΠΈΡ†ΠΈ/сСк). Оваа ΡΠΎΡΡ‚ΠΎΡ˜Π±Π°, сС Ρ€Π°Π·Π±ΠΈΡ€Π°, ΠΌΠΎΠΆΠ΅ Π΄Π° Π΄ΠΎΠ²Π΅Π΄Π΅ Π΄ΠΎ Π΄Π΅Π³Ρ€Π°Π΄Π°Ρ†ΠΈΡ˜Π° Π½Π° ситС Π°ΠΏΠ»ΠΈΠΊΠ°Ρ†ΠΈΠΈ Π½Π° овој јазол.

Π¨Ρ‚ΠΎ сС однСсува Π΄ΠΎ PV, Π·Π° ΠΆΠ°Π», Π½Π΅ сум ΠΏΡ€ΠΎΠ±Π°Π» сС Π²ΠΈΠ΄ΠΎΠ²ΠΈ ΠŸΠΎΡΡ‚ΠΎΡ˜Π°Π½ΠΈ Π²ΠΎΠ»ΡƒΠΌΠ΅Π½ΠΈ. ΠšΠΎΡ€ΠΈΡΡ‚Π΅Ρ‚Π΅ ја Π½Π°Ρ˜Π΄ΠΎΠ±Ρ€Π°Ρ‚Π° ΠΎΠΏΡ†ΠΈΡ˜Π° ΡˆΡ‚ΠΎ Π²ΠΈ ΠΎΠ΄Π³ΠΎΠ²Π°Ρ€Π°. Π˜ΡΡ‚ΠΎΡ€ΠΈΡΠΊΠΈ, кај нас сС случувало ΠΌΠ°Π» Π΄Π΅Π» ΠΎΠ΄ услугитС Π΄Π° Π±Π°Ρ€Π°Π°Ρ‚ RWX Ρ‚ΠΎΠΌΠ°, Π° ΠΎΠ΄Π°ΠΌΠ½Π° ΠΏΠΎΡ‡Π½Π°Π»Π΅ Π΄Π° користат NFS ΡΠΊΠ»Π°Π΄ΠΈΡ€Π°ΡšΠ΅ Π·Π° ΠΎΠ²Π°Π° Π·Π°Π΄Π°Ρ‡Π°. Π•Ρ„Ρ‚ΠΈΠ½ΠΎ ΠΈ... Π΄ΠΎΠ²ΠΎΠ»Π½ΠΎ. Π‘Π΅ Ρ€Π°Π·Π±ΠΈΡ€Π°, Ρ‚ΠΎΡ˜ ΠΈ јас јадСвмС Π³ΠΎΠΌΠ½Π° - благослови си, Π½ΠΎ Π½Π°ΡƒΡ‡ΠΈΠ²ΠΌΠ΅ Π΄Π° Π³ΠΎ срСдимС, Π° Π³Π»Π°Π²Π°Ρ‚Π° повСќС Π½Π΅ ΠΌΠ΅ Π±ΠΎΠ»ΠΈ. И Π°ΠΊΠΎ Π΅ ΠΌΠΎΠΆΠ½ΠΎ, прСмСстСтС сС Π²ΠΎ ΡΠΊΠ»Π°Π΄ΠΈΡ€Π°ΡšΠ΅ Π½Π° ΠΎΠ±Ρ˜Π΅ΠΊΡ‚ΠΈ S3.

3. Π‘ΠΎΠ±Π΅Ρ€Π΅Ρ‚Π΅ ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·ΠΈΡ€Π°Π½ΠΈ слики

Π”Π΅Π²Π΅Ρ‚ совСти Π·Π° ΠΈΠ·Π²Π΅Π΄Π±Π° Π½Π° Kubernetes

ΠΠ°Ρ˜Π΄ΠΎΠ±Ρ€ΠΎ Π΅ Π΄Π° користитС слики ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·ΠΈΡ€Π°Π½ΠΈ Π·Π° ΠΊΠΎΠ½Ρ‚Π΅Ρ˜Π½Π΅Ρ€ΠΈ Π·Π° Π΄Π° ΠΌΠΎΠΆΠ΅ Kubernetes Π΄Π° Π³ΠΈ ΠΏΡ€Π΅Π·Π΅ΠΌΠ΅ ΠΏΠΎΠ±Ρ€Π·ΠΎ ΠΈ Π΄Π° Π³ΠΈ ΠΈΠ·Π²Ρ€ΡˆΠΈ поСфикасно. 

ΠžΠΏΡ‚ΠΈΠΌΠΈΠ·ΠΈΡ€Π°Π½ΠΎ Π·Π½Π°Ρ‡ΠΈ Π΄Π΅ΠΊΠ° сликитС:

  • содрТи само Π΅Π΄Π½Π° Π°ΠΏΠ»ΠΈΠΊΠ°Ρ†ΠΈΡ˜Π° ΠΈΠ»ΠΈ ΠΈΠ·Π²Ρ€ΡˆΡƒΠ²Π° само Π΅Π΄Π½Π° Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡ˜Π°;

  • ΠΌΠ°Π»ΠΈ ΠΏΠΎ Π³ΠΎΠ»Π΅ΠΌΠΈΠ½Π°, бидСјќи Π³ΠΎΠ»Π΅ΠΌΠΈΡ‚Π΅ слики сС прСнСсуваат полошо ΠΏΡ€Π΅ΠΊΡƒ ΠΌΡ€Π΅ΠΆΠ°Ρ‚Π°;

  • ΠΈΠΌΠ°Π°Ρ‚ ΠΊΡ€Π°Ρ˜Π½ΠΈ Ρ‚ΠΎΡ‡ΠΊΠΈ Π·Π° Π·Π΄Ρ€Π°Π²Ρ˜Π΅ ΠΈ подготвСност ΡˆΡ‚ΠΎ ΠΌΡƒ ΠΎΠ²ΠΎΠ·ΠΌΠΎΠΆΡƒΠ²Π°Π°Ρ‚ Π½Π° ΠšΡƒΠ±Π΅Ρ€Π½Π΅Ρ‚ΠΈΡ Π΄Π° ΠΏΡ€Π΅Π·Π΅ΠΌΠ΅ Π°ΠΊΡ†ΠΈΡ˜Π° Π²ΠΎ ΡΠ»ΡƒΡ‡Π°Ρ˜ Π½Π° ΠΏΡ€Π΅ΠΊΠΈΠ½;

  • користСтС ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΈΠ²Π½ΠΈ систСми ΠΏΠΎΠ³ΠΎΠ΄Π½ΠΈ Π·Π° ΠΊΠΎΠ½Ρ‚Π΅Ρ˜Π½Π΅Ρ€ΠΈ (ΠΊΠ°ΠΊΠΎ Alpine ΠΈΠ»ΠΈ CoreOS), ΠΊΠΎΠΈ сС ΠΏΠΎΠΎΡ‚ΠΏΠΎΡ€Π½ΠΈ Π½Π° конфигурациски Π³Ρ€Π΅ΡˆΠΊΠΈ;

  • користСтС ΠΏΠΎΠ²Π΅ΡœΠ΅ΡΡ‚Π΅ΠΏΠ΅Π½ΠΈ Π³Ρ€Π°Π΄Π±ΠΈ Π·Π° Π΄Π° ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π΄Π° распорСдитС само ΠΊΠΎΠΌΠΏΠ°Ρ˜Π»ΠΈΡ€Π°Π½ΠΈ Π°ΠΏΠ»ΠΈΠΊΠ°Ρ†ΠΈΠΈ, Π° Π½Π΅ ΠΏΡ€ΠΈΠ΄Ρ€ΡƒΠΆΠ½ΠΈΡ‚Π΅ ΠΈΠ·Π²ΠΎΡ€ΠΈ.

ΠŸΠΎΡΡ‚ΠΎΡ˜Π°Ρ‚ ΠΌΠ½ΠΎΠ³Ρƒ Π°Π»Π°Ρ‚ΠΊΠΈ ΠΈ услуги ΠΊΠΎΠΈ Π²ΠΈ Π΄ΠΎΠ·Π²ΠΎΠ»ΡƒΠ²Π°Π°Ρ‚ Π΄Π° Π³ΠΈ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΡƒΠ²Π°Ρ‚Π΅ ΠΈ ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·ΠΈΡ€Π°Ρ‚Π΅ сликитС Π²ΠΎ Π»Π΅Ρ‚. Π’Π°ΠΆΠ½ΠΎ Π΅ сСкогаш Π΄Π° Π³ΠΈ ΠΎΠ΄Ρ€ΠΆΡƒΠ²Π°Ρ‚Π΅ Π°ΠΆΡƒΡ€ΠΈΡ€Π°Π½ΠΈ ΠΈ тСстирани Π·Π° бСзбСдност. Како Ρ€Π΅Π·ΡƒΠ»Ρ‚Π°Ρ‚ Π΄ΠΎΠ±ΠΈΠ²Π°Ρ‚Π΅:

  1. НамалСно ΠΎΠΏΡ‚ΠΎΠ²Π°Ρ€ΡƒΠ²Π°ΡšΠ΅ Π½Π° ΠΌΡ€Π΅ΠΆΠ°Ρ‚Π° Π½Π° Ρ†Π΅Π»ΠΈΠΎΡ‚ кластСр.

  2. ΠΠ°ΠΌΠ°Π»ΡƒΠ²Π°ΡšΠ΅ Π½Π° Π²Ρ€Π΅ΠΌΠ΅Ρ‚ΠΎ Π·Π° ΡΡ‚Π°Ρ€Ρ‚ΡƒΠ²Π°ΡšΠ΅ Π½Π° ΠΊΠΎΠ½Ρ‚Π΅Ρ˜Π½Π΅Ρ€ΠΎΡ‚.

  3. Помала Π³ΠΎΠ»Π΅ΠΌΠΈΠ½Π° Π½Π° Ρ†Π΅Π»ΠΈΠΎΡ‚ ваш Docker рСгистар.

4. ΠšΠΎΡ€ΠΈΡΡ‚Π΅Ρ‚Π΅ DNS кСш

Π”Π΅Π²Π΅Ρ‚ совСти Π·Π° ΠΈΠ·Π²Π΅Π΄Π±Π° Π½Π° Kubernetes

Ако Π·Π±ΠΎΡ€ΡƒΠ²Π°ΠΌΠ΅ Π·Π° Π³ΠΎΠ»Π΅ΠΌΠΈ ΠΎΠΏΡ‚ΠΎΠ²Π°Ρ€ΡƒΠ²Π°ΡšΠ°, Ρ‚ΠΎΠ³Π°Ρˆ ΠΆΠΈΠ²ΠΎΡ‚ΠΎΡ‚ Π΅ ΠΏΡ€ΠΈΠ»ΠΈΡ‡Π½ΠΎ лош Π±Π΅Π· ΠΏΠΎΠ΄Π΅ΡΡƒΠ²Π°ΡšΠ΅ Π½Π° DNS систСмот Π½Π° кластСрот. НСкогаш, Ρ€Π°Π·Π²ΠΈΠ²Π°Ρ‡ΠΈΡ‚Π΅ Π½Π° Kubernetes Π³ΠΎ ΠΏΠΎΠ΄Π΄Ρ€ΠΆΠ°Π° Π½ΠΈΠ²Π½ΠΎΡ‚ΠΎ Ρ€Π΅ΡˆΠ΅Π½ΠΈΠ΅ kube-dns. И Ρ‚ΡƒΠΊΠ° бСшС ΠΈΠΌΠΏΠ»Π΅ΠΌΠ΅Π½Ρ‚ΠΈΡ€Π°Π½, Π½ΠΎ овој софтвСр Π½Π΅ бСшС особСно подСсСн ΠΈ Π½Π΅ Π³ΠΈ ΠΏΡ€ΠΎΠΈΠ·Π²Π΅Π΄Π΅ ΠΏΠΎΡ‚Ρ€Π΅Π±Π½ΠΈΡ‚Π΅ пСрформанси, ΠΈΠ°ΠΊΠΎ сС Ρ‡ΠΈΠ½Π΅ΡˆΠ΅ Π΄Π΅ΠΊΠ° Π΅ Сдноставна Π·Π°Π΄Π°Ρ‡Π°. ΠŸΠΎΡ‚ΠΎΠ° сС појавија coredns, Π½Π° ΠΊΠΎΠΈ сС ΠΏΡ€Π΅Ρ„Ρ€Π»ΠΈΠ²ΠΌΠ΅ ΠΈ Π½Π΅ΠΌΠ°Π²ΠΌΠ΅ Ρ‚Π°Π³Π°; ΠΏΠΎΠ΄ΠΎΡ†Π½Π° стана стандардна DNS услуга Π²ΠΎ K8s. Π’ΠΎ ΠΎΠ΄Ρ€Π΅Π΄Π΅Π½ ΠΌΠΎΠΌΠ΅Π½Ρ‚, пораснавмС Π΄ΠΎ 40 илјади Π²Ρ€Ρ‚Π΅ΠΆΠΈ Π²ΠΎ сСкунда Π΄ΠΎ систСмот DNS, Π° ΠΎΠ²Π° Ρ€Π΅ΡˆΠ΅Π½ΠΈΠ΅ исто Ρ‚Π°ΠΊΠ° стана Π½Π΅Π΄ΠΎΠ²ΠΎΠ»Π½ΠΎ. Но, Π·Π° ΡΡ€Π΅ΡœΠ°, ΠΈΠ·Π»Π΅Π·Π΅ Nodelocaldns, Π°ΠΊΠ° јазол Π»ΠΎΠΊΠ°Π»Π΅Π½ кСш, Π°ΠΊΠ° NodeLocal DNSCache.

Π—ΠΎΡˆΡ‚ΠΎ Π³ΠΎ користимС ΠΎΠ²Π°? ΠŸΠΎΡΡ‚ΠΎΠΈ Π³Ρ€Π΅ΡˆΠΊΠ° Π²ΠΎ ΠΊΠ΅Ρ€Π½Π΅Π»ΠΎΡ‚ Π½Π° Linux ΡˆΡ‚ΠΎ, ΠΊΠΎΠ³Π° ΠΏΠΎΠ²Π΅ΡœΠ΅ΠΊΡ€Π°Ρ‚Π½ΠΈ ΠΏΠΎΠ²ΠΈΡ†ΠΈ ΠΏΡ€Π΅ΠΊΡƒ conntrack NAT ΠΏΡ€Π΅ΠΊΡƒ UDP, Π΄ΠΎΠ²Π΅Π΄ΡƒΠ²Π° Π΄ΠΎ ΡΠΎΡΡ‚ΠΎΡ˜Π±Π° Π½Π° Ρ‚Ρ€ΠΊΠ° Π·Π° записи Π²ΠΎ Ρ‚Π°Π±Π΅Π»ΠΈΡ‚Π΅ Π·Π° conntrack, Π° Π΄Π΅Π» ΠΎΠ΄ ΡΠΎΠΎΠ±Ρ€Π°ΡœΠ°Ρ˜ΠΎΡ‚ ΠΏΡ€Π΅ΠΊΡƒ NAT сС Π³ΡƒΠ±ΠΈ (сСкоС ΠΏΠ°Ρ‚ΡƒΠ²Π°ΡšΠ΅ Π½ΠΈΠ· услугата Π΅ NAT). Nodelocaldns Π³ΠΎ Ρ€Π΅ΡˆΠ°Π²Π° овој ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌ со ΠΎΡΠ»ΠΎΠ±ΠΎΠ΄ΡƒΠ²Π°ΡšΠ΅ ΠΎΠ΄ NAT ΠΈ Π½Π°Π΄Π³Ρ€Π°Π΄Π±Π° Π½Π° врската со TCP Π΄ΠΎ спротиводно DNS, ΠΊΠ°ΠΊΠΎ ΠΈ Π»ΠΎΠΊΠ°Π»Π½ΠΎ ΠΊΠ΅ΡˆΠΈΡ€Π°ΡšΠ΅ Π½Π°Π³ΠΎΡ€Π΅ DNS ΠΏΡ€Π°ΡˆΠ°ΡšΠ° (Π²ΠΊΠ»ΡƒΡ‡ΡƒΠ²Π°Ρ˜ΡœΠΈ ΠΊΡ€Π°Ρ‚ΠΎΠΊ Π½Π΅Π³Π°Ρ‚ΠΈΠ²Π΅Π½ кСш ΠΎΠ΄ 5 сСкунди).

5. Π‘Ρ‚Π°Π²Π΅Ρ‚Π΅ Π³ΠΈ ΠΌΠ΅ΡˆΡƒΠ½ΠΊΠΈΡ‚Π΅ Ρ…ΠΎΡ€ΠΈΠ·ΠΎΠ½Ρ‚Π°Π»Π½ΠΎ ΠΈ Π²Π΅Ρ€Ρ‚ΠΈΠΊΠ°Π»Π½ΠΎ автоматски

Π”Π΅Π²Π΅Ρ‚ совСти Π·Π° ΠΈΠ·Π²Π΅Π΄Π±Π° Π½Π° Kubernetes

ΠœΠΎΠΆΠ΅Ρ‚Π΅ Π»ΠΈ со сигурност Π΄Π° ΠΊΠ°ΠΆΠ΅Ρ‚Π΅ Π΄Π΅ΠΊΠ° ситС ваши микросСрвиси сС ΠΏΠΎΠ΄Π³ΠΎΡ‚Π²Π΅Π½ΠΈ Π·Π° Π΄Π²Π° Π΄ΠΎ Ρ‚Ρ€ΠΈΠΊΡ€Π°Ρ‚Π½ΠΎ Π·Π³ΠΎΠ»Π΅ΠΌΡƒΠ²Π°ΡšΠ΅ Π½Π° ΠΎΠΏΡ‚ΠΎΠ²Π°Ρ€ΡƒΠ²Π°ΡšΠ΅Ρ‚ΠΎ? Како ΠΏΡ€Π°Π²ΠΈΠ»Π½ΠΎ Π΄Π° Π³ΠΈ распрСдСлитС рСсурситС Π½Π° Π²Π°ΡˆΠΈΡ‚Π΅ Π°ΠΏΠ»ΠΈΠΊΠ°Ρ†ΠΈΠΈ? ΠžΠ΄Ρ€ΠΆΡƒΠ²Π°ΡšΠ΅Ρ‚ΠΎ Π½Π° Π½Π΅ΠΊΠΎΠ»ΠΊΡƒ ΠΏΠΎΠ΄Π»ΠΎΠ³ΠΈ Π΄Π° Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ Π½Π°Π΄Π²ΠΎΡ€ ΠΎΠ΄ ΠΎΠ±Π΅ΠΌΠΎΡ‚ Π½Π° Ρ€Π°Π±ΠΎΡ‚Π° ΠΌΠΎΠΆΠ΅ Π΄Π° Π±ΠΈΠ΄Π΅ излишно, Π½ΠΎ Π°ΠΊΠΎ Π³ΠΈ Ρ‡ΡƒΠ²Π°Ρ‚Π΅ Π΅Π΄Π΅Π½ Π΄ΠΎ Π΄Ρ€ΡƒΠ³, постои Ρ€ΠΈΠ·ΠΈΠΊ ΠΎΠ΄ Π·Π°ΡΡ‚ΠΎΡ˜ ΠΎΠ΄ нСнадСјно Π·Π³ΠΎΠ»Π΅ΠΌΡƒΠ²Π°ΡšΠ΅ Π½Π° ΡΠΎΠΎΠ±Ρ€Π°ΡœΠ°Ρ˜ΠΎΡ‚ Π΄ΠΎ услугата. Услуги ΠΊΠ°ΠΊΠΎ ΡˆΡ‚ΠΎ сС Π₯ΠΎΡ€ΠΈΠ·ΠΎΠ½Ρ‚Π°Π»Π΅Π½ Pod Autoscaler ΠΈ Π’Π΅Ρ€Ρ‚ΠΈΠΊΠ°Π»Π΅Π½ Pod Autoscaler.

Π’ΠŸΠ Π²ΠΈ ΠΎΠ²ΠΎΠ·ΠΌΠΎΠΆΡƒΠ²Π° автоматски Π΄Π° Π³ΠΈ ΠΏΠΎΠ΄ΠΈΠ³Π°Ρ‚Π΅ Π±Π°Ρ€Π°ΡšΠ°Ρ‚Π°/ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡ΡƒΠ²Π°ΡšΠ°Ρ‚Π° Π½Π° Π²Π°ΡˆΠΈΡ‚Π΅ ΠΊΠΎΠ½Ρ‚Π΅Ρ˜Π½Π΅Ρ€ΠΈ Π²ΠΎ ΠΏΠΎΠ΄Π»ΠΎΠ³Π°Ρ‚Π° Π²ΠΎ зависност ΠΎΠ΄ вистинската ΡƒΠΏΠΎΡ‚Ρ€Π΅Π±Π°. Како ΠΌΠΎΠΆΠ΅ Π΄Π° Π±ΠΈΠ΄Π΅ корисно? Ако ΠΈΠΌΠ°Ρ‚Π΅ ΠΌΠ΅ΡˆΡƒΠ½ΠΊΠΈ ΠΊΠΎΠΈ ΠΏΠΎΡ€Π°Π΄ΠΈ нСкоја ΠΏΡ€ΠΈΡ‡ΠΈΠ½Π° Π½Π΅ ΠΌΠΎΠΆΠ°Ρ‚ Π΄Π° сС Π½Π°ΠΌΠ°Π»Π°Ρ‚ Ρ…ΠΎΡ€ΠΈΠ·ΠΎΠ½Ρ‚Π°Π»Π½ΠΎ (ΡˆΡ‚ΠΎ Π½Π΅ Π΅ цСлосно Π΄ΠΎΠ²Π΅Ρ€Π»ΠΈΠ²ΠΎ), Ρ‚ΠΎΠ³Π°Ρˆ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π΄Π° сС ΠΎΠ±ΠΈΠ΄Π΅Ρ‚Π΅ Π΄Π° Π³ΠΈ Π΄ΠΎΠ²Π΅Ρ€ΠΈΡ‚Π΅ ΠΏΡ€ΠΎΠΌΠ΅Π½ΠΈΡ‚Π΅ Π²ΠΎ Π½Π΅Π³ΠΎΠ²ΠΈΡ‚Π΅ рСсурси Π½Π° VPA. НСговата карактСристика Π΅ систСм Π·Π° ΠΏΡ€Π΅ΠΏΠΎΡ€Π°ΠΊΠΈ Π±Π°Π·ΠΈΡ€Π°Π½ Π½Π° историски ΠΈ Ρ‚Π΅ΠΊΠΎΠ²Π½ΠΈ ΠΏΠΎΠ΄Π°Ρ‚ΠΎΡ†ΠΈ ΠΎΠ΄ ΠΌΠ΅Ρ‚Ρ€ΠΈΡ‡ΠΊΠΈΠΎΡ‚ сСрвСр, ΠΏΠ° Π°ΠΊΠΎ Π½Π΅ сакатС автоматски Π΄Π° Π³ΠΈ ΠΌΠ΅Π½ΡƒΠ²Π°Ρ‚Π΅ Π±Π°Ρ€Π°ΡšΠ°Ρ‚Π°/ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡ΡƒΠ²Π°ΡšΠ°Ρ‚Π°, ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Сдноставно Π΄Π° Π³ΠΈ слСдитС ΠΏΡ€Π΅ΠΏΠΎΡ€Π°Ρ‡Π°Π½ΠΈΡ‚Π΅ рСсурси Π·Π° Π²Π°ΡˆΠΈΡ‚Π΅ ΠΊΠΎΠ½Ρ‚Π΅Ρ˜Π½Π΅Ρ€ΠΈ ΠΈ Π΄Π° Π³ΠΈ ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·ΠΈΡ€Π°Ρ‚Π΅ поставкитС Π·Π° Π·Π°Ρ‡ΡƒΠ²ΡƒΠ²Π°ΡšΠ΅ Π½Π° процСсорот ΠΈ ΠΌΠ΅ΠΌΠΎΡ€ΠΈΡ˜Π° Π²ΠΎ кластСрот.

Π”Π΅Π²Π΅Ρ‚ совСти Π·Π° ΠΈΠ·Π²Π΅Π΄Π±Π° Π½Π° KubernetesΠ‘Π»ΠΈΠΊΠ°Ρ‚Π° Π΅ ΠΏΡ€Π΅Π·Π΅ΠΌΠ΅Π½Π° ΠΎΠ΄ https://levelup.gitconnected.com/kubernetes-autoscaling-101-cluster-autoscaler-horizontal-pod-autoscaler-and-vertical-pod-2a441d9ad231

РаспорСдувачот Π²ΠΎ Kubernetes сСкогаш сС заснова Π½Π° Π±Π°Ρ€Π°ΡšΠ°. Π‘Π΅Π· ΠΎΠ³Π»Π΅Π΄ Π½Π° врСдноста ΡˆΡ‚ΠΎ ќС ја ставитС Ρ‚Π°ΠΌΡƒ, распорСдувачот ќС Π±Π°Ρ€Π° соодвСтСн јазол Π²Ρ€Π· основа Π½Π° Π½Π΅Π³ΠΎ. Π“Ρ€Π°Π½ΠΈΡ‡Π½ΠΈΡ‚Π΅ врСдности сС ΠΏΠΎΡ‚Ρ€Π΅Π±Π½ΠΈ Π·Π° ΠΊΡƒΠ±Π΅Π»Π΅Ρ‚ΠΎΡ‚ Π΄Π° Ρ€Π°Π·Π±Π΅Ρ€Π΅ ΠΊΠΎΠ³Π° Π΄Π° Π³ΠΎ ΠΏΡ€ΠΈΠ³ΡƒΡˆΡƒΠ²Π° ΠΈΠ»ΠΈ ΡƒΠ±ΠΈΠ΅ ΠΌΠ΅ΡˆΡƒΠ½ΠΎΡ‚. И бидСјќи СдинствСниот Π²Π°ΠΆΠ΅Π½ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Π°Ρ€ Π΅ врСдноста Π½Π° Π±Π°Ρ€Π°ΡšΠ°Ρ‚Π°, VPA ќС Ρ€Π°Π±ΠΎΡ‚ΠΈ со Π½Π΅Π³ΠΎ. БСкогаш ΠΊΠΎΠ³Π° ќС ја Ρ€Π°Π·ΠΌΠ΅Ρ€ΠΈΡ‚Π΅ Π°ΠΏΠ»ΠΈΠΊΠ°Ρ†ΠΈΡ˜Π°Ρ‚Π° Π²Π΅Ρ€Ρ‚ΠΈΠΊΠ°Π»Π½ΠΎ, Π²ΠΈΠ΅ Π΄Π΅Ρ„ΠΈΠ½ΠΈΡ€Π°Ρ‚Π΅ ΠΊΠΎΠΈ Ρ‚Ρ€Π΅Π±Π° Π΄Π° Π±ΠΈΠ΄Π°Ρ‚ Π±Π°Ρ€Π°ΡšΠ°Ρ‚Π°. Π¨Ρ‚ΠΎ ќС сС случи со Π³Ρ€Π°Π½ΠΈΡ†ΠΈΡ‚Π΅ Ρ‚ΠΎΠ³Π°Ρˆ? Овој ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Π°Ρ€ исто Ρ‚Π°ΠΊΠ° ќС сС скалира ΠΏΡ€ΠΎΠΏΠΎΡ€Ρ†ΠΈΠΎΠ½Π°Π»Π½ΠΎ.

На ΠΏΡ€ΠΈΠΌΠ΅Ρ€, Ρ‚ΡƒΠΊΠ° сС Π²ΠΎΠΎΠ±ΠΈΡ‡Π°Π΅Π½ΠΈΡ‚Π΅ поставки Π·Π° pod:

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

Како ΡˆΡ‚ΠΎ спомСнавмС ΠΏΠΎΠ³ΠΎΡ€Π΅, ΠΎΠ²Π° Π΅ ΠΏΡ€ΠΎΠΏΠΎΡ€Ρ†ΠΈΠΎΠ½Π°Π»Π½ΠΎ ΡΠΊΠ°Π»ΠΈΡ€Π°ΡšΠ΅ Π²Ρ€Π· основа Π½Π° односот Π±Π°Ρ€Π°ΡšΠ°/ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡ΡƒΠ²Π°ΡšΠ° Π²ΠΎ манифСстот:

  • ΠŸΡ€ΠΎΡ†Π΅ΡΠΎΡ€: 200m β†’ 300m: сооднос 1:1.75;

  • ΠœΠ΅ΠΌΠΎΡ€ΠΈΡ˜Π°: 250Mi β†’ 500Mi: сооднос 1:2.

Π¨Ρ‚ΠΎ сС однСсува Π΄ΠΎ Π₯Π₯Н, Ρ‚ΠΎΠ³Π°Ρˆ ΠΌΠ΅Ρ…Π°Π½ΠΈΠ·ΠΌΠΎΡ‚ Π½Π° Ρ€Π°Π±ΠΎΡ‚Π° Π΅ потранспарСнтСн. ΠœΠ΅Ρ‚Ρ€ΠΈΠΊΠΈΡ‚Π΅ ΠΊΠ°ΠΊΠΎ ΡˆΡ‚ΠΎ сС процСсорот ΠΈ ΠΌΠ΅ΠΌΠΎΡ€ΠΈΡ˜Π°Ρ‚Π° сС ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡Π΅Π½ΠΈ, ΠΈ Π°ΠΊΠΎ просСкот Π½Π° ситС Ρ€Π΅ΠΏΠ»ΠΈΠΊΠΈ Π³ΠΎ Π½Π°Π΄ΠΌΠΈΠ½Π΅ ΠΏΡ€Π°Π³ΠΎΡ‚, Π°ΠΏΠ»ΠΈΠΊΠ°Ρ†ΠΈΡ˜Π°Ρ‚Π° сС скалира со +1 ΠΏΠΎΠ΄ Π΄ΠΎΠ΄Π΅ΠΊΠ° врСдноста Π½Π΅ ΠΏΠ°Π΄Π½Π΅ ΠΏΠΎΠ΄ ΠΏΡ€Π°Π³ΠΎΡ‚ ΠΈΠ»ΠΈ Π΄ΠΎΠ΄Π΅ΠΊΠ° Π½Π΅ сС достигнС максималниот Π±Ρ€ΠΎΡ˜ Π½Π° Ρ€Π΅ΠΏΠ»ΠΈΠΊΠΈ.

Π”Π΅Π²Π΅Ρ‚ совСти Π·Π° ΠΈΠ·Π²Π΅Π΄Π±Π° Π½Π° KubernetesΠ‘Π»ΠΈΠΊΠ°Ρ‚Π° Π΅ ΠΏΡ€Π΅Π·Π΅ΠΌΠ΅Π½Π° ΠΎΠ΄ https://levelup.gitconnected.com/kubernetes-autoscaling-101-cluster-autoscaler-horizontal-pod-autoscaler-and-vertical-pod-2a441d9ad231

ΠŸΠΎΠΊΡ€Π°Ρ˜ Π²ΠΎΠΎΠ±ΠΈΡ‡Π°Π΅Π½ΠΈΡ‚Π΅ ΠΌΠ΅Ρ‚Ρ€ΠΈΠΊΠΈ ΠΊΠ°ΠΊΠΎ процСсорот ΠΈ ΠΌΠ΅ΠΌΠΎΡ€ΠΈΡ˜Π°Ρ‚Π°, ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π΄Π° поставитС ΠΏΡ€Π°Π³ΠΎΠ²ΠΈ Π½Π° Π²Π°ΡˆΠΈΡ‚Π΅ сопствСни ΠΌΠ΅Ρ‚Ρ€ΠΈΠΊΠΈ ΠΎΠ΄ Prometheus ΠΈ Π΄Π° Ρ€Π°Π±ΠΎΡ‚ΠΈΡ‚Π΅ со Π½ΠΈΠ² Π°ΠΊΠΎ мислитС Π΄Π΅ΠΊΠ° Ρ‚ΠΎΠ° Π΅ Π½Π°Ρ˜Ρ‚ΠΎΡ‡Π½ΠΈΠΎΡ‚ ΠΏΠΎΠΊΠ°Π·Π°Ρ‚Π΅Π» Π·Π° Ρ‚ΠΎΠ° ΠΊΠΎΠ³Π° Π΄Π° ја Π·Π³ΠΎΠ»Π΅ΠΌΠΈΡ‚Π΅ Π²Π°ΡˆΠ°Ρ‚Π° Π°ΠΏΠ»ΠΈΠΊΠ°Ρ†ΠΈΡ˜Π°. Π¨Ρ‚ΠΎΠΌ Π°ΠΏΠ»ΠΈΠΊΠ°Ρ†ΠΈΡ˜Π°Ρ‚Π° ќС сС стабилизира ΠΏΠΎΠ΄ Π½Π°Π²Π΅Π΄Π΅Π½ΠΈΠΎΡ‚ ΠΌΠ΅Ρ‚Ρ€ΠΈΡ‡ΠΊΠΈ ΠΏΡ€Π°Π³, HPA ќС ΠΏΠΎΡ‡Π½Π΅ Π΄Π° Π³ΠΈ Π½Π°ΠΌΠ°Π»ΡƒΠ²Π° ΠΏΠ°Ρ€Ρ‡ΠΈΡšΠ°Ρ‚Π° Π΄ΠΎ ΠΌΠΈΠ½ΠΈΠΌΠ°Π»Π½ΠΈΠΎΡ‚ Π±Ρ€ΠΎΡ˜ Π½Π° Ρ€Π΅ΠΏΠ»ΠΈΠΊΠΈ ΠΈΠ»ΠΈ Π΄ΠΎΠ΄Π΅ΠΊΠ° ΠΎΠΏΡ‚ΠΎΠ²Π°Ρ€ΡƒΠ²Π°ΡšΠ΅Ρ‚ΠΎ Π½Π΅ Π³ΠΎ достигнС Π½Π°Π²Π΅Π΄Π΅Π½ΠΈΠΎΡ‚ ΠΏΡ€Π°Π³.

6. НС Π·Π°Π±ΠΎΡ€Π°Π²Π°Ρ˜Ρ‚Π΅ Π·Π° Node Affinity ΠΈ Pod Affinity

Π”Π΅Π²Π΅Ρ‚ совСти Π·Π° ΠΈΠ·Π²Π΅Π΄Π±Π° Π½Π° Kubernetes

НС ситС јазли Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ Π½Π° ист Ρ…Π°Ρ€Π΄Π²Π΅Ρ€, Π° Π½Π΅ ситС ΠΏΠΎΠ΄Π»ΠΎΠ³ΠΈ Ρ‚Ρ€Π΅Π±Π° Π΄Π° Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ со ΠΊΠΎΠΌΠΏΡ˜ΡƒΡ‚Π΅Ρ€ΡΠΊΠΈ ΠΈΠ½Ρ‚Π΅Π½Π·ΠΈΠ²Π½ΠΈ Π°ΠΏΠ»ΠΈΠΊΠ°Ρ†ΠΈΠΈ. Kubernetes Π²ΠΈ ΠΎΠ²ΠΎΠ·ΠΌΠΎΠΆΡƒΠ²Π° Π΄Π° ја поставитС ΡΠΏΠ΅Ρ†ΠΈΡ˜Π°Π»ΠΈΠ·Π°Ρ†ΠΈΡ˜Π°Ρ‚Π° Π½Π° Ρ˜Π°Π·Π»ΠΈΡ‚Π΅ ΠΈ ΠΌΠ΅ΡˆΡƒΠ½ΠΊΠΈΡ‚Π΅ ΠΊΠΎΡ€ΠΈΡΡ‚Π΅Ρ˜ΡœΠΈ АфинитСт Π½Π° јазли ΠΈ АфинитСт Π½Π° Pod.

Ако ΠΈΠΌΠ°Ρ‚Π΅ јазли ΠΊΠΎΠΈ сС ΠΏΠΎΠ³ΠΎΠ΄Π½ΠΈ Π·Π° ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ со ΠΈΠ½Ρ‚Π΅Π½Π·ΠΈΠ²Π½Π° прСсмСтка, Ρ‚ΠΎΠ³Π°Ρˆ Π·Π° максимална Сфикасност ΠΏΠΎΠ΄ΠΎΠ±Ρ€ΠΎ Π΅ Π΄Π° Π³ΠΈ Π²Ρ€Π·ΡƒΠ²Π°Ρ‚Π΅ Π°ΠΏΠ»ΠΈΠΊΠ°Ρ†ΠΈΠΈΡ‚Π΅ со соодвСтнитС јазли. Π—Π° Π΄Π° Π³ΠΎ Π½Π°ΠΏΡ€Π°Π²ΠΈΡ‚Π΅ ΠΎΠ²Π° користСтС 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 ќС Π³ΠΈ ΠΏΠΎΠ²Ρ€Π·Π΅ ΠΌΠ΅ΡˆΡƒΠ½ΠΊΠΈΡ‚Π΅ Π·Π° јазол кој вСќС Ρ€Π°Π±ΠΎΡ‚ΠΈ Π½Π° ΠΏΠΎΠ΄Π»ΠΎΠ³Π° со Ρ‚Π°Π° ΠΎΠ·Π½Π°ΠΊΠ°.

ΠšΡƒΠ±Π΅Ρ€Π½Π΅Ρ‚Π΅Ρ Π½ΡƒΠ΄ΠΈ ΠΈ ΠΏΠΎΠ»Π΅ podAntiAffinity, ΡˆΡ‚ΠΎ, Π½Π°ΠΏΡ€ΠΎΡ‚ΠΈΠ², Π½Π΅ Π³ΠΎ Π²Ρ€Π·ΡƒΠ²Π° ΠΌΠ΅ΡˆΡƒΠ½ΠΎΡ‚ Π·Π° јазол со спСцифични ΠΌΠ΅ΡˆΡƒΠ½ΠΊΠΈ.

Π—Π° ΠΈΠ·Ρ€Π°Π·ΠΈΡ‚Π΅ nodeAffinity МоТС Π΄Π° сС Π΄Π°Π΄Π΅ истиот совСт: ΠΎΠ±ΠΈΠ΄Π΅Ρ‚Π΅ сС Π΄Π° Π³ΠΈ ΠΎΠ΄Ρ€ΠΆΡƒΠ²Π°Ρ‚Π΅ ΠΏΡ€Π°Π²ΠΈΠ»Π°Ρ‚Π° Сдноставни ΠΈ Π»ΠΎΠ³ΠΈΡ‡Π½ΠΈ, Π½Π΅ ΠΎΠ±ΠΈΠ΄ΡƒΠ²Π°Ρ˜Ρ‚Π΅ сС Π΄Π° ја ΠΏΡ€Π΅ΠΎΠΏΡ‚ΠΎΠ²Π°Ρ€ΡƒΠ²Π°Ρ‚Π΅ ΡΠΏΠ΅Ρ†ΠΈΡ„ΠΈΠΊΠ°Ρ†ΠΈΡ˜Π°Ρ‚Π° Π½Π° ΠΏΠΎΠ΄Π»ΠΎΠ³Π°Ρ‚Π° со слоТСн сСт Π½Π° ΠΏΡ€Π°Π²ΠΈΠ»Π°. ΠœΠ½ΠΎΠ³Ρƒ Π΅ лСсно Π΄Π° сС создадС ΠΏΡ€Π°Π²ΠΈΠ»ΠΎ ΠΊΠΎΠ΅ Π½Π΅ΠΌΠ° Π΄Π° ΠΎΠ΄Π³ΠΎΠ²Π°Ρ€Π° Π½Π° условитС Π½Π° кластСрот, создавајќи Π½Π΅ΠΏΠΎΡ‚Ρ€Π΅Π±Π½ΠΎ ΠΎΠΏΡ‚ΠΎΠ²Π°Ρ€ΡƒΠ²Π°ΡšΠ΅ Π½Π° распорСдувачот ΠΈ Π½Π°ΠΌΠ°Π»ΡƒΠ²Π°Ρ˜ΡœΠΈ Π³ΠΈ Π²ΠΊΡƒΠΏΠ½ΠΈΡ‚Π΅ пСрформанси.

7. Π”Π°ΠΌΠΊΠΈ ΠΈ Ρ‚ΠΎΠ»Π΅Ρ€Π°Π½Ρ†ΠΈΠΈ

ΠŸΠΎΡΡ‚ΠΎΠΈ ΡƒΡˆΡ‚Π΅ Π΅Π΄Π΅Π½ Π½Π°Ρ‡ΠΈΠ½ Π·Π° ΡƒΠΏΡ€Π°Π²ΡƒΠ²Π°ΡšΠ΅ со распорСдувачот. Ако ΠΈΠΌΠ°Ρ‚Π΅ Π³ΠΎΠ»Π΅ΠΌ кластСр со стотици јазли ΠΈ ΠΈΠ»Ρ˜Π°Π΄Π½ΠΈΡ†ΠΈ микросСрвиси, Ρ‚ΠΎΠ³Π°Ρˆ Π΅ ΠΌΠ½ΠΎΠ³Ρƒ Ρ‚Π΅ΡˆΠΊΠΎ Π΄Π° Π½Π΅ Π΄ΠΎΠ·Π²ΠΎΠ»ΠΈΡ‚Π΅ ΠΎΠ΄Ρ€Π΅Π΄Π΅Π½ΠΈ ΠΏΠΎΠ΄ΠΎΠ²ΠΈ Π΄Π° Π±ΠΈΠ΄Π°Ρ‚ хостирани Π½Π° ΠΎΠ΄Ρ€Π΅Π΄Π΅Π½ΠΈ јазли.

ΠœΠ΅Ρ…Π°Π½ΠΈΠ·ΠΌΠΎΡ‚ Π½Π° Π΄Π°ΠΌΠΊΠΈ - ΠΏΡ€Π°Π²ΠΈΠ»Π° Π·Π° Π·Π°Π±Ρ€Π°Π½Π° - ΠΏΠΎΠΌΠ°Π³Π° Π²ΠΎ ΠΎΠ²Π°. На ΠΏΡ€ΠΈΠΌΠ΅Ρ€, Π²ΠΎ ΠΎΠ΄Ρ€Π΅Π΄Π΅Π½ΠΈ ΡΡ†Π΅Π½Π°Ρ€ΠΈΡ˜Π° ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π΄Π° Π·Π°Π±Ρ€Π°Π½ΠΈΡ‚Π΅ ΠΎΠ΄Ρ€Π΅Π΄Π΅Π½ΠΈ јазли Π΄Π° Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ Π½Π° ΠΏΠΎΠ΄Π»ΠΎΠ³ΠΈ. Π—Π° Π΄Π° ΠΏΡ€ΠΈΠΌΠ΅Π½ΠΈΡ‚Π΅ Π΄Π°ΠΌΠΊΠ° Π½Π° ΠΎΠ΄Ρ€Π΅Π΄Π΅Π½ јазол, Ρ‚Ρ€Π΅Π±Π° Π΄Π° ја користитС ΠΎΠΏΡ†ΠΈΡ˜Π°Ρ‚Π° taint Π²ΠΎ ΠΊΡƒΠ±Π΅ΠΊΡ‚Π». НавСдСтС Π³ΠΎ ΠΊΠ»ΡƒΡ‡ΠΎΡ‚ ΠΈ врСдноста ΠΈ ΠΏΠΎΡ‚ΠΎΠ° ΠΎΠ±ΠΎΡ˜Ρ‚Π΅ ΠΊΠ°ΠΊΠΎ NoSchedule ΠΈΠ»ΠΈ NoExecute:

$ kubectl taint nodes node10 node-role.kubernetes.io/ingress=true:NoSchedule

Π˜ΡΡ‚ΠΎ Ρ‚Π°ΠΊΠ°, Π²Ρ€Π΅Π΄ΠΈ Π΄Π° сС Π½Π°ΠΏΠΎΠΌΠ΅Π½Π΅ Π΄Π΅ΠΊΠ° ΠΌΠ΅Ρ…Π°Π½ΠΈΠ·ΠΌΠΎΡ‚ Π·Π° Π΄Π°ΠΌΠΊΠ° ΠΏΠΎΠ΄Π΄Ρ€ΠΆΡƒΠ²Π° Ρ‚Ρ€ΠΈ Π³Π»Π°Π²Π½ΠΈ Π΅Ρ„Π΅ΠΊΡ‚ΠΈ: NoSchedule, NoExecute ΠΈ PreferNoSchedule.

  • NoSchedule Π·Π½Π°Ρ‡ΠΈ Π΄Π΅ΠΊΠ° засСга Π½Π΅ΠΌΠ° Π΄Π° ΠΈΠΌΠ° соодвСтСн запис Π²ΠΎ ΡΠΏΠ΅Ρ†ΠΈΡ„ΠΈΠΊΠ°Ρ†ΠΈΡ˜Π°Ρ‚Π° Π½Π° pod tolerations, Π½Π΅ΠΌΠ° Π΄Π° ΠΌΠΎΠΆΠ΅ Π΄Π° сС распорСди Π½Π° Ρ˜Π°Π·ΠΎΠ»ΠΎΡ‚ (Π²ΠΎ овој ΠΏΡ€ΠΈΠΌΠ΅Ρ€ node10).

  • PreferNoSchedule - поСдноставСна Π²Π΅Ρ€Π·ΠΈΡ˜Π° NoSchedule. Π’ΠΎ овој ΡΠ»ΡƒΡ‡Π°Ρ˜, распорСдувачот ќС сС ΠΎΠ±ΠΈΠ΄Π΅ Π΄Π° Π½Π΅ Π΄ΠΎΠ΄Π΅Π»ΠΈ ΠΌΠ΅ΡˆΡƒΠ½ΠΊΠΈ ΠΊΠΎΠΈ Π½Π΅ΠΌΠ°Π°Ρ‚ соодвСтСн запис tolerations ΠΏΠΎ јазол, Π½ΠΎ ΠΎΠ²Π° Π½Π΅ Π΅ Ρ‚Π΅ΡˆΠΊΠΎ ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡ΡƒΠ²Π°ΡšΠ΅. Ако Π½Π΅ΠΌΠ° рСсурси Π²ΠΎ кластСрот, Ρ‚ΠΎΠ³Π°Ρˆ ΠΌΠ΅ΡˆΡƒΠ½ΠΊΠΈΡ‚Π΅ ќС ΠΏΠΎΡ‡Π½Π°Ρ‚ Π΄Π° сС распорСдуваат Π½Π° овој јазол.

  • NoExecute - овој Π΅Ρ„Π΅ΠΊΡ‚ ΠΏΡ€Π΅Π΄ΠΈΠ·Π²ΠΈΠΊΡƒΠ²Π° ΠΈΡ‚Π½Π° Π΅Π²Π°ΠΊΡƒΠ°Ρ†ΠΈΡ˜Π° Π½Π° ΠΌΠ΅ΡˆΡƒΠ½ΠΊΠΈΡ‚Π΅ ΠΊΠΎΠΈ Π½Π΅ΠΌΠ°Π°Ρ‚ соодвСтСн Π²Π»Π΅Π· tolerations.

Π˜Π½Ρ‚Π΅Ρ€Π΅ΡΠ½ΠΎ Π΅ ΡˆΡ‚ΠΎ ΠΎΠ²Π° ΠΎΠ΄Π½Π΅ΡΡƒΠ²Π°ΡšΠ΅ ΠΌΠΎΠΆΠ΅ Π΄Π° сС ΠΎΡ‚ΠΊΠ°ΠΆΠ΅ со помош Π½Π° ΠΌΠ΅Ρ…Π°Π½ΠΈΠ·ΠΌΠΎΡ‚ Π·Π° Ρ‚ΠΎΠ»Π΅Ρ€Π°Π½Ρ†ΠΈΡ˜Π°. Ова Π΅ ΠΏΠΎΠ³ΠΎΠ΄Π½ΠΎ ΠΊΠΎΠ³Π° ΠΈΠΌΠ° β€žΠ·Π°Π±Ρ€Π°Π½Π΅Ρ‚β€œ јазол ΠΈ Ρ‚Ρ€Π΅Π±Π° само Π΄Π° поставитС инфраструктурни услуги Π½Π° Π½Π΅Π³ΠΎ. Како Π΄Π° сС Π½Π°ΠΏΡ€Π°Π²ΠΈ Ρ‚ΠΎΠ°? Π”ΠΎΠ·Π²ΠΎΠ»Π΅Ρ‚Π΅ Π³ΠΈ само ΠΎΠ½ΠΈΠ΅ ΠΌΠ΅ΡˆΡƒΠ½ΠΊΠΈ Π·Π° ΠΊΠΎΠΈ постои соодвСтна Ρ‚ΠΎΠ»Π΅Ρ€Π°Π½Ρ†ΠΈΡ˜Π°.

Π•Π²Π΅ ΠΊΠ°ΠΊΠΎ Π±ΠΈ ΠΈΠ·Π³Π»Π΅Π΄Π°Π»Π° ΡΠΏΠ΅Ρ†ΠΈΡ„ΠΈΠΊΠ°Ρ†ΠΈΡ˜Π°Ρ‚Π° Π½Π° pod:

spec:
   tolerations:
     - key: "node-role.kubernetes.io/ingress"
        operator: "Equal"
        value: "true"
        effect: "NoSchedule"

Ова Π½Π΅ Π·Π½Π°Ρ‡ΠΈ Π΄Π΅ΠΊΠ° слСдното ΠΏΡ€Π΅Ρ€Π°ΡΠΏΠΎΡ€Π΅Π΄ΡƒΠ²Π°ΡšΠ΅ ќС ΠΏΠ°Π΄Π½Π΅ Π½Π° овој ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π΅Π½ јазол, ΠΎΠ²Π° Π½Π΅ Π΅ ΠΌΠ΅Ρ…Π°Π½ΠΈΠ·ΠΌΠΎΡ‚ Node Affinity ΠΈ nodeSelector. Но, со ΠΊΠΎΠΌΠ±ΠΈΠ½ΠΈΡ€Π°ΡšΠ΅ Π½Π° Π½Π΅ΠΊΠΎΠ»ΠΊΡƒ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ, ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π΄Π° постигнСтС ΠΌΠ½ΠΎΠ³Ρƒ флСксибилни поставки Π·Π° распорСдувачот.

8. ΠŸΠΎΡΡ‚Π°Π²Π΅Ρ‚Π΅ ΠΏΡ€ΠΈΠΎΡ€ΠΈΡ‚Π΅Ρ‚ Π·Π° Ρ€Π°ΡΠΏΠΎΡ€Π΅Π΄ΡƒΠ²Π°ΡšΠ΅ ΠΏΠΎΠ΄

Π‘Π°ΠΌΠΎ Π·Π°Ρ‚ΠΎΠ° ΡˆΡ‚ΠΎ ΠΈΠΌΠ°Ρ‚Π΅ ΠΏΠΎΠ΄Π»ΠΎΠ³ΠΈ Π΄ΠΎΠ΄Π΅Π»Π΅Π½ΠΈ Π½Π° јазли Π½Π΅ Π·Π½Π°Ρ‡ΠΈ Π΄Π΅ΠΊΠ° ситС ΠΏΠΎΠ΄Π»ΠΎΠ³ΠΈ ΠΌΠΎΡ€Π° Π΄Π° сС Ρ‚Ρ€Π΅Ρ‚ΠΈΡ€Π°Π°Ρ‚ со ист ΠΏΡ€ΠΈΠΎΡ€ΠΈΡ‚Π΅Ρ‚. На ΠΏΡ€ΠΈΠΌΠ΅Ρ€, ΠΌΠΎΠΆΠ΅Π±ΠΈ ќС сакатС Π΄Π° распорСдитС Π½Π΅ΠΊΠΎΠΈ ΠΏΠΎΠ΄Π»ΠΎΠ³ΠΈ ΠΏΡ€Π΅Π΄ Π΄Ρ€ΡƒΠ³ΠΈ.

Kubernetes Π½ΡƒΠ΄ΠΈ Ρ€Π°Π·Π»ΠΈΡ‡Π½ΠΈ Π½Π°Ρ‡ΠΈΠ½ΠΈ Π·Π° ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€ΠΈΡ€Π°ΡšΠ΅ Π½Π° Pod Priority ΠΈ 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. ΠŸΠΎΠ²ΠΈΡΠΎΠΊΠΈΡ‚Π΅ врСдности сС Ρ€Π΅Π·Π΅Ρ€Π²ΠΈΡ€Π°Π½ΠΈ Π·Π° систСмски ΠΏΠΎΠ΄Π»ΠΎΠ³ΠΈ ΠΊΠΎΠΈ сС ΠΊΡ€ΠΈΡ‚ΠΈΡ‡Π½ΠΈ Π·Π° ΠΌΠΈΡΠΈΡ˜Π°Ρ‚Π°, ΠΊΠΎΠΈ Π³Π΅Π½Π΅Ρ€Π°Π»Π½ΠΎ Π½Π΅ ΠΌΠΎΠΆΠ°Ρ‚ Π΄Π° сС ΠΏΡ€Π΅Π²Π΅Π½ΠΈΡ€Π°Π°Ρ‚. ΠŸΠΎΠΌΠ΅ΡΡ‚ΡƒΠ²Π°ΡšΠ΅Ρ‚ΠΎ ќС сС случи само Π°ΠΊΠΎ ΠΌΠ΅ΡˆΡƒΠ½ΠΊΠ°Ρ‚Π° со висок ΠΏΡ€ΠΈΠΎΡ€ΠΈΡ‚Π΅Ρ‚ Π½Π΅ΠΌΠ° ΠΊΠ°Π΄Π΅ Π΄Π° сС сврти, Ρ‚ΠΎΠ³Π°Ρˆ Π½Π΅ΠΊΠΎΠΈ ΠΎΠ΄ ΠΌΠ΅ΡˆΡƒΠ½ΠΊΠΈΡ‚Π΅ ΠΎΠ΄ ΠΎΠ΄Ρ€Π΅Π΄Π΅Π½ јазол ќС Π±ΠΈΠ΄Π°Ρ‚ Π΅Π²Π°ΠΊΡƒΠΈΡ€Π°Π½ΠΈ. Ако овој ΠΌΠ΅Ρ…Π°Π½ΠΈΠ·Π°ΠΌ Π΅ ΠΏΡ€Π΅ΠΌΠ½ΠΎΠ³Ρƒ ΠΊΡ€ΡƒΡ‚ Π·Π° вас, ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π΄Π° ја Π΄ΠΎΠ΄Π°Π΄Π΅Ρ‚Π΅ ΠΎΠΏΡ†ΠΈΡ˜Π°Ρ‚Π° 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 кластСрот

Π”Π΅Π²Π΅Ρ‚ совСти Π·Π° ΠΈΠ·Π²Π΅Π΄Π±Π° Π½Π° Kubernetes

ETCD ΠΌΠΎΠΆΠ΅ Π΄Π° сС Π½Π°Ρ€Π΅Ρ‡Π΅ ΠΌΠΎΠ·ΠΎΠΊ Π½Π° Ρ†Π΅Π»ΠΈΠΎΡ‚ кластСр. ΠœΠ½ΠΎΠ³Ρƒ Π΅ Π²Π°ΠΆΠ½ΠΎ Π΄Π° сС ΠΎΠ΄Ρ€ΠΆΠΈ Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚Π° Π½Π° ΠΎΠ²Π°Π° Π±Π°Π·Π° Π½Π° ΠΏΠΎΠ΄Π°Ρ‚ΠΎΡ†ΠΈ Π½Π° високо Π½ΠΈΠ²ΠΎ, бидСјќи Π±Ρ€Π·ΠΈΠ½Π°Ρ‚Π° Π½Π° ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈΡ‚Π΅ Π²ΠΎ Cube зависи ΠΎΠ΄ Ρ‚ΠΎΠ°. ΠŸΡ€ΠΈΠ»ΠΈΡ‡Π½ΠΎ стандардно, Π° Π²ΠΎ исто Π²Ρ€Π΅ΠΌΠ΅, Π΄ΠΎΠ±Ρ€ΠΎ Ρ€Π΅ΡˆΠ΅Π½ΠΈΠ΅ Π±ΠΈ Π±ΠΈΠ»ΠΎ Π΄Π° сС Π·Π°Π΄Ρ€ΠΆΠΈ ETCD кластСрот Π½Π° Π³Π»Π°Π²Π½ΠΈΡ‚Π΅ јазли со Ρ†Π΅Π» Π΄Π° ΠΈΠΌΠ° ΠΌΠΈΠ½ΠΈΠΌΠ°Π»Π½ΠΎ Π΄ΠΎΡ†Π½Π΅ΡšΠ΅ Π΄ΠΎ kube-apiserver. Ако Π½Π΅ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π΄Π° Π³ΠΎ Π½Π°ΠΏΡ€Π°Π²ΠΈΡ‚Π΅ ΠΎΠ²Π°, Ρ‚ΠΎΠ³Π°Ρˆ поставСтС Π³ΠΎ ETCD ΡˆΡ‚ΠΎ Π΅ ΠΌΠΎΠΆΠ½ΠΎ поблиску, со Π΄ΠΎΠ±Π°Ρ€ пропусСн опсСг ΠΏΠΎΠΌΠ΅Ρ“Ρƒ учСсницитС. Π˜ΡΡ‚ΠΎ Ρ‚Π°ΠΊΠ°, ΠΎΠ±Ρ€Π½Π΅Ρ‚Π΅ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅ Π½Π° Ρ‚ΠΎΠ° ΠΊΠΎΠ»ΠΊΡƒ јазли ΠΎΠ΄ ETCD ΠΌΠΎΠΆΠ΅ Π΄Π° испаднат Π±Π΅Π· Π΄Π° ΠΌΡƒ Π½Π°ΡˆΡ‚Π΅Ρ‚Π°Ρ‚ Π½Π° кластСрот

Π”Π΅Π²Π΅Ρ‚ совСти Π·Π° ΠΈΠ·Π²Π΅Π΄Π±Π° Π½Π° Kubernetes

Π˜ΠΌΠ°Ρ˜Ρ‚Π΅ Π½Π° ΡƒΠΌ Π΄Π΅ΠΊΠ° ΠΏΡ€Π΅ΠΊΡƒΠΌΠ΅Ρ€Π½ΠΎΡ‚ΠΎ Π·Π³ΠΎΠ»Π΅ΠΌΡƒΠ²Π°ΡšΠ΅ Π½Π° Π±Ρ€ΠΎΡ˜ΠΎΡ‚ Π½Π° Ρ‡Π»Π΅Π½ΠΎΠ²ΠΈ Π²ΠΎ кластСрот ΠΌΠΎΠΆΠ΅ Π΄Π° ја Π·Π³ΠΎΠ»Π΅ΠΌΠΈ Ρ‚ΠΎΠ»Π΅Ρ€Π°Π½Ρ†ΠΈΡ˜Π°Ρ‚Π° Π½Π° Π³Ρ€Π΅ΡˆΠΊΠΈ Π½Π° смСтка Π½Π° пСрформанситС, сè Ρ‚Ρ€Π΅Π±Π° Π΄Π° Π±ΠΈΠ΄Π΅ ΡƒΠΌΠ΅Ρ€Π΅Π½ΠΎ.

Ако Π·Π±ΠΎΡ€ΡƒΠ²Π°ΠΌΠ΅ Π·Π° ΠΏΠΎΡΡ‚Π°Π²ΡƒΠ²Π°ΡšΠ΅ Π½Π° услугата, ΠΈΠΌΠ° Π½Π΅ΠΊΠΎΠ»ΠΊΡƒ ΠΏΡ€Π΅ΠΏΠΎΡ€Π°ΠΊΠΈ:

  1. Π˜ΠΌΠ°Ρ˜Ρ‚Π΅ Π΄ΠΎΠ±Π°Ρ€ Ρ…Π°Ρ€Π΄Π²Π΅Ρ€, Π²Ρ€Π· основа Π½Π° Π³ΠΎΠ»Π΅ΠΌΠΈΠ½Π°Ρ‚Π° Π½Π° кластСрот (ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π΄Π° ΠΏΡ€ΠΎΡ‡ΠΈΡ‚Π°Ρ‚Π΅ Ρ‚ΡƒΠΊΠ°).

  2. ΠŸΡ€ΠΈΠ»Π°Π³ΠΎΠ΄Π΅Ρ‚Π΅ Π½Π΅ΠΊΠΎΠ»ΠΊΡƒ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΈ Π°ΠΊΠΎ стС Ρ€Π°ΡˆΠΈΡ€ΠΈΠ»Π΅ кластСр ΠΏΠΎΠΌΠ΅Ρ“Ρƒ ΠΏΠ°Ρ€ DC ΠΈΠ»ΠΈ Π²Π°ΡˆΠ°Ρ‚Π° ΠΌΡ€Π΅ΠΆΠ° ΠΈ дискови оставаат ΠΌΠ½ΠΎΠ³Ρƒ Π΄Π° сС посакуваат (ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π΄Π° ΠΏΡ€ΠΎΡ‡ΠΈΡ‚Π°Ρ‚Π΅ Ρ‚ΡƒΠΊΠ°).

Π—Π°ΠΊΠ»ΡƒΡ‡ΠΎΠΊ

Оваа ΡΡ‚Π°Ρ‚ΠΈΡ˜Π° Π³ΠΈ ΠΎΠΏΠΈΡˆΡƒΠ²Π° Ρ‚ΠΎΡ‡ΠΊΠΈΡ‚Π΅ со ΠΊΠΎΠΈ Π½Π°ΡˆΠΈΠΎΡ‚ Ρ‚ΠΈΠΌ сС ΠΎΠ±ΠΈΠ΄ΡƒΠ²Π° Π΄Π° сС усогласи. Ова Π½Π΅ Π΅ Ρ‡Π΅ΠΊΠΎΡ€-ΠΏΠΎ-Ρ‡Π΅ΠΊΠΎΡ€ опис Π½Π° Π΄Π΅Ρ˜ΡΡ‚Π²Π°Ρ‚Π°, Ρ‚ΡƒΠΊΡƒ ΠΎΠΏΡ†ΠΈΠΈ ΠΊΠΎΠΈ ΠΌΠΎΠΆΠ°Ρ‚ Π΄Π° Π±ΠΈΠ΄Π°Ρ‚ корисни Π·Π° ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·ΠΈΡ€Π°ΡšΠ΅ Π½Π° Π³ΠΎΡ€Π½ΠΈΡ‚Π΅ Ρ‚Ρ€ΠΎΡˆΠΎΡ†ΠΈ Π½Π° кластСрот. Јасно Π΅ Π΄Π΅ΠΊΠ° сСкој кластСр Π΅ ΡƒΠ½ΠΈΠΊΠ°Ρ‚Π΅Π½ Π½Π° свој Π½Π°Ρ‡ΠΈΠ½, Π° Ρ€Π΅ΡˆΠ΅Π½ΠΈΡ˜Π°Ρ‚Π° Π·Π° ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΡ˜Π° ΠΌΠΎΠΆΠ΅ ΠΌΠ½ΠΎΠ³Ρƒ Π΄Π° сС Ρ€Π°Π·Π»ΠΈΠΊΡƒΠ²Π°Π°Ρ‚, ΠΏΠ° Π±ΠΈ Π±ΠΈΠ»ΠΎ интСрСсно Π΄Π° сС Π΄ΠΎΠ±ΠΈΡ˜Π°Ρ‚ Π²Π°ΡˆΠΈΡ‚Π΅ ΠΏΠΎΠ²Ρ€Π°Ρ‚Π½ΠΈ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΈ Π·Π° Ρ‚ΠΎΠ° ΠΊΠ°ΠΊΠΎ Π³ΠΎ слСдитС Π²Π°ΡˆΠΈΠΎΡ‚ кластСр Kubernetes ΠΈ ΠΊΠ°ΠΊΠΎ Π³ΠΈ ΠΏΠΎΠ΄ΠΎΠ±Ρ€ΡƒΠ²Π°Ρ‚Π΅ Π½Π΅Π³ΠΎΠ²ΠΈΡ‚Π΅ пСрформанси. Π‘ΠΏΠΎΠ΄Π΅Π»Π΅Ρ‚Π΅ Π³ΠΎ Π²Π°ΡˆΠ΅Ρ‚ΠΎ искуство Π²ΠΎ ΠΊΠΎΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΡ‚Π΅, ќС Π±ΠΈΠ΄Π΅ интСрСсно Π΄Π° сС Π·Π½Π°Π΅.

Π˜Π·Π²ΠΎΡ€: www.habr.com