Crocusoft | Kubernetes Nədir? Konteynerləşdirmənin Növbəti Addımı
Kubernetes klaster sxemi: Pod-lar, Node-lar və avtomatik miqyaslanma prosesi
Texnologiya 5 MIN READ 27.08.2026 07:13:33

Kubernetes Nədir? Konteynerləşdirmənin Növbəti Addımı

Tutaq ki, komandanız Docker-i öyrənib, tətbiqi Konteynerlərə bölüb və hər şey gözəl işləyir. Sonra məhsul böyüyür — artıq 5 yox, 50 Konteyner var, bunlar bir yox, on serverdə paylanıb. Gecə saat üçdə serverlərdən biri çökür, üzərindəki Konteynerlər dayanır və heç kim bunu əl ilə izləyib yenidən işə salmır, çünki bu artıq fiziki olaraq mümkün deyil. Məhz bu miqyasda Docker özü kifayət etmir — buraya Kubernetes daxil olur.

Bu yazıda Kubernetes-in nə olduğunu, Docker-dən nə ilə fərqləndiyini, əsas komponentlərini, işləmə məntiqini və hansı layihələr üçün həqiqətən lazım olduğunu, hansıları üçün isə artıq mürəkkəblik olacağını sadə dildə izah edəcəyik.

Kubernetes Nədir?

Kubernetes — çoxlu sayda Konteynerin işə salınmasını, miqyaslanmasını və idarə olunmasını avtomatlaşdıran açıq mənbəli orkestrasiya platformasıdır. Google tərəfindən hazırlanıb, hazırda isə Cloud Native Computing Foundation təşkilatı tərəfindən idarə olunur. Adı yunan dilində "sükançı" mənasını verir — və bu, təsadüfi deyil: Kubernetes məhz onlarla, hətta minlərlə Konteynerdən ibarət "gəmini" idarə etmək üçün yaradılıb.

Sadə dillə desək, Docker sizə bir Konteyneri necə yaratmağı və işə salmağı öyrədir, Kubernetes isə həmin Konteynerlərin yüzlərlə nüsxəsini müxtəlif serverlər arasında necə bölüşdürməyi, nasaz olanı necə avtomatik dəyişdirməyi və yükə görə sayını necə artırıb-azaltmağı öz üzərinə götürür.

Niyə Təkcə Docker Kifayət Etmir?

Docker əla işləyir — bir serverdə, məhdud sayda Konteynerlə. Amma real production mühitində bir neçə sual yaranır: Konteynerlərdən biri çökərsə, onu kim yenidən işə salacaq? Trafik artdıqda yeni Konteynerləri kim yaradacaq? Yüzlərlə Konteyner arasında sorğuları kim düzgün paylaşdıracaq? Yeni versiya buraxılanda köhnə və yeni Konteynerlər arasında keçidi kim idarə edəcək?

Docker bu sualların heç birinə cavab vermir — onun işi Konteyner yaratmaqdır, onları idarə etmək deyil. Kubernetes məhz bu boşluğu doldurur: o, "bu tətbiqin həmişə 10 nüsxəsi işləməlidir" kimi bir qayda təyin etməyinizə imkan verir və bundan sonra bu qaydanı qorumaq onun öhdəsinə düşür.

Kubernetes-in Əsas Komponentləri

TerminNə deməkdir
PodKubernetes-də ən kiçik idarəolunan vahid, adətən bir və ya bir neçə sıx bağlı Konteyneri özündə saxlayır
NodePod-ların üzərində işlədiyi fiziki və ya virtual server
ClusterBir yerdə idarə olunan Node-ların məcmusu
DeploymentNeçə Pod-un işləməli olduğunu və yeniləmələrin necə aparılacağını təsvir edən qayda
ServiceDəyişkən Pod-lara sabit bir ünvan və giriş nöqtəsi təmin edən komponent

Bu komponentlər bir-biri ilə iyerarxik şəkildə bağlıdır: bir Cluster bir neçə Node-dan ibarətdir, hər Node öz üzərində bir neçə Pod işlədir, Deployment isə bu Pod-ların sayını və vəziyyətini idarə edir. Service isə bütün bu daxili mürəkkəbliyi gizlədərək istifadəçiyə və digər sistemlərə sabit, dəyişməyən bir giriş nöqtəsi təqdim edir — Pod-lar arxa planda yaradılıb silinsə belə, bu ünvan dəyişmir.

Kubernetes Necə İşləyir?

Kubernetes-lə iş adi proqramlaşdırmadan fərqli məntiqlə aparılır: siz addım-addım əmr vermirsiniz, əvəzində sistemin "arzu olunan vəziyyətini" (desired state) YAML faylında təsvir edirsiniz — məsələn, "bu Image-dən 5 Pod işləsin, hər birinə bu qədər yaddaş ayrılsın". Kubernetes bu təsviri oxuyur və real vəziyyəti ona uyğunlaşdırmaq üçün daim işləyir.

Əgər Pod-lardan biri çökərsə, Kubernetes bunu dərhal görür və yenisini yaradır — bu proses Self-Healing adlanır. Əgər trafik artırsa, müəyyən edilmiş qaydalara əsasən yeni Pod-lar avtomatik yaradılır — buna Auto-Scaling deyilir. Sistem inzibatçısının bu proseslərin heç birinə əl ilə müdaxilə etməsinə ehtiyac qalmır.

Load Balancing: Trafik Necə Bölüşdürülür?

Bir tətbiqin eyni anda 20 Pod-u işləyirsə, gələn hər sorğu hansı Pod-a getməlidir? Bu sualı Kubernetes-in Service komponenti həll edir — o, gələn sorğuları mövcud Pod-lar arasında bərabər şəkildə paylayır. Bu, həm heç bir Pod-un həddindən artıq yüklənməməsini, həm də bir Pod çöksə belə istifadəçinin bunu hiss etməməsini təmin edir.

Kubernetes və Mikroservis Arxitekturası

Kubernetes və Mikroservis arxitekturası demək olar ki, əl-ələ gedir. Mikroservis modelində hər xidmət ayrıca inkişaf etdirilir və Deploy olunur, amma bu, onlarla ayrı xidməti idarə etmək problemini yaradır — məhz Kubernetes bu mürəkkəbliyi öz üzərinə götürür: hər Mikroservisi ayrıca Pod qrupu kimi işlədir, onları avtomatik miqyaslayır və aralarında şəbəkə əlaqəsini qurur. Monolit tətbiq üçün isə bu səviyyədə orkestrasiya adətən artıqdır.

Kubernetes Nə Vaxt Lazım Deyil?

Kubernetes güclü alətdir, amma hər layihə üçün doğru seçim deyil. Kiçik komanda, aşağı trafikli tətbiq və ya hələ MVP mərhələsində olan məhsul üçün Kubernetes-in gətirdiyi əməliyyat mürəkkəbliyi faydadan çox yükə çevrilir. Bir neçə Konteyneri idarə etmək üçün sadə Docker Compose qurulumu kifayət edə bilər, halbuki Kubernetes klasterini qurmaq və saxlamaq ayrıca bilik və vaxt tələb edir.

Qərar meyarı sadədir: əgər sisteminiz onlarla xidmətdən ibarətdirsə, trafik dalğalı şəkildə dəyişirsə və yüksək əlçatanlıq (high availability) kritikdirsə, Kubernetes öz dəyərini doğruldur. Əks halda, sadəlik həmişə daha ağıllı başlanğıc nöqtəsidir.

Praktikada Necə Görünür: Bir Nümunə

Fərz edək ki, bir e-ticarət platformasının Qara Cümə endirimi başlayır. Adi günlərdə tətbiq 5 Pod ilə rahat işləyir, amma kampaniya başlayan kimi trafik 10 dəfə artır. Kubernetes-ə əvvəlcədən qoyulmuş Auto-Scaling qaydası bu artımı avtomatik aşkarlayır və bir neçə dəqiqə ərzində Pod sayını 5-dən 40-a qədər artırır — heç kim gecə yarısı ayağa qalxıb server əlavə etmir. Kampaniya bitib trafik normala düşdükdən sonra isə Kubernetes lazımsız Pod-ları öz-özünə söndürərək resurslara qənaət edir.

Eyni ssenaridə Node-lardan biri gözlənilmədən çöksə, üzərindəki Pod-lar Kubernetes tərəfindən avtomatik olaraq sağlam Node-lara köçürülür. İstifadəçi tərəfindən bu keçid adətən hiss belə olunmur — sayt sadəcə işləməyə davam edir.

kubectl: Kubernetes ilə Necə "Danışılır"?

Kubernetes klasterini idarə etmək üçün ən çox istifadə olunan alət kubectl komanda xəttidir. Sistem administratoru YAML faylında təsvir etdiyi "arzu olunan vəziyyəti" kubectl vasitəsilə klasterə göndərir, klasterin cari vəziyyətini yoxlayır, problemli Pod-ların loglarına baxır və lazım gəldikdə köhnə versiyaya geri qayıdır. Böyük komandalarda isə bu proses çox zaman Helm kimi əlavə alətlərlə daha da sadələşdirilir — Helm mürəkkəb tətbiqləri tək bir paket kimi qurmağa və idarə etməyə imkan verir.

Ən Çox Buraxılan Səhvlər

Kubernetes-ə keçən komandaların bir çoxu eyni tələlərə düşür. Birincisi, real ehtiyacdan əvvəl Kubernetes-ə keçməkdir — komanda hələ 3-4 Konteyner idarə edərkən artıq tam klaster qurur və nəticədə faydadan çox əməliyyat yükü yaranır. İkincisi, resurs limitlərini düzgün təyin etməməkdir: hər Pod üçün yaddaş və prosessor limiti qoyulmasa, bir xidmətdəki səhv bütün Node-un resurslarını tükədə bilər. Üçüncüsü isə monitorinqi diqqətdən qaçırmaqdır — Kubernetes özü problemləri müəyyən dərəcədə həll etsə də, komanda niyə Pod-ların daim yenidən işə düşdüyünü izləmirsə, kök səbəb heç vaxt tapılmır.

Managed Kubernetes Xidmətləri

Kubernetes klasterini sıfırdan qurmaq və saxlamaq mürəkkəb işdir, ona görə də əksər şirkətlər bulud provayderlərinin təklif etdiyi hazır həllərdən istifadə edir: Amazon-un EKS, Google-un GKE və Microsoft-un AKS xidmətləri infrastrukturun ən çətin hissəsini öz üzərinə götürür, komanda isə yalnız tətbiqinə fokuslana bilir.

Tez-tez Verilən Suallar

Kubernetes Docker-i əvəz edir?
Xeyr, onlar bir-birini tamamlayır. Docker Konteyner yaradır, Kubernetes isə həmin Konteynerləri miqyasda idarə edir.

Kubernetes öyrənmək nə qədər çətindir?
Əsas anlayışları başa düşmək bir neçə həftə çəkə bilər, amma real production mühitində effektiv istifadə etmək aylarla təcrübə tələb edir.

Kiçik layihə üçün Kubernetes istifadə etməyə dəyərmi?
Adətən yox. Kiçik, sabit trafikli layihələr üçün Docker Compose və ya sadə bulud xidmətləri daha sürətli və daha ucuz seçimdir.

Kubernetes xərcləri artırır, yoxsa azaldır?
Hər ikisi mümkündür. Düzgün konfiqurasiya edildikdə resurslardan səmərəli istifadə sayəsində xərcləri azaldır, səhv qurulduqda isə lazımsız infrastruktur xərci yaradır.

Kubernetes yalnız bulud üçündürmü?
Xeyr. Kubernetes klasterini şirkətin öz fiziki serverlərində, yəni On-Premise mühitdə də qurmaq mümkündür, amma əksər komandalar idarəetmə yükünü azaltmaq üçün bulud provayderlərinin Managed xidmətlərini üstün tutur.

Nəticə

Docker sizə Konteyner yaratmağı öyrədirsə, Kubernetes sizə yüzlərlə Konteyneri stress keçirmədən idarə etməyi öyrədir. Hər layihə üçün lazım olmasa da, sistem böyüdükcə, komanda genişləndikcə və yüksək əlçatanlıq tələbi artdıqca Kubernetes əvəzolunmaz bir alətə çevrilir.

Əgər layihənizin miqyası Kubernetes-ə keçidi tələb edib-etmədiyini müəyyənləşdirmək istəyirsinizsə, Crocusoft komandası ilə əlaqə saxlayaraq infrastruktur qiymətləndirməsi ala bilərsiniz.