Qazanclar:
- Əsas obyektləri (Pod, Deployment, Service, ConfigMap, Secret, Namespace) və Kubernetesin deklarativ fəlsəfəsini anlamaq və süni intellekt üçün möhkəm manifestlər hazırlamaq bacarığı
- Manifestləri istehsala hazır etmək və resurs məhdudiyyətləri, sağlamlıq yoxlamaları (zondlar), sabit şəkil etiketləri və dar RBAC ilə təmin etmək bacarığı
- İcradan əvvəl düzgün konteksti yoxlamaq və quru qaçış/diff ilə quru qaçış intizamını tətbiq etmək bacarığı
Bir konteyneri idarə etmək asandır. Bəs yüzlərlə konteyneri onlarla server arasında yayan, onlardan biri qəzaya uğrayanda avtomatik olaraq yenidən işə salınan, yük artdıqda onu təkrarlayan və sıfır iş vaxtı ilə yeniləyən bir sistem qurmaq? Bu orkestrasiyadır və sənaye standartı aləti Kubernetesdir (qısaca K8s) — klaster üzrə konteynerləri avtomatik yerləşdirən, ölçən və idarə edən platforma. Kubernetes güclü, lakin mürəkkəbdir: hər şey manifest adlanan uzun, girintiyə həssas YAML faylları ilə müəyyən edilir. Bu, AI-nin təmiz hava nəfəs verdiyi yerdir; Düzgün kontekstlə o, tez bir zamanda bu manifestləri yaradır və onların sirli səhvlərini deşifrə edir.
Lakin Kubernetes-də səhv manifest bütöv bir xidmətin öhdəsindən gələ bilməmək, səhv miqyas vermək və ya zəiflik buraxmaq deməkdir. Xüsusilə kubectl tətbiq etməzdən əvvəl AI-nin yaratdığı hər bir təzahürü anlamaq və yoxlamaq sizin məsuliyyətinizdir.
Kubernetes əsas obyektləri
Kubernetes-i yoxlamaq üçün əsas anlayışları bilməlisiniz:
- Pod: Ən kiçik iş vahidi; Bir və ya bir neçə konteynerdən ibarətdir. Ümumiyyətlə, Pod birbaşa istifadə edilmir, lakin onu idarə edən ana obyektlər istifadə olunur.
- Yerləşdirmə: Tətbiqin neçə nüsxəsinin işləyəcəyini, hansı təsvirdən istifadə edəcəyini və necə yenilənəcəyini müəyyən edir. Pod qəzaya uğrasa, avtomatik olaraq onu yenidən yaradacaq.
- Xidmət: Sabit şəbəkə ünvanı və podlara yük balansını təmin edir; Podlar gəlib getsə də, giriş ünvanı dəyişmir.
- ConfigMap və Secret: Konfiqurasiya dəyərlərini və məxfi məlumatları Podlardan ayrı saxlayır. ConfigMap açıq parametrlər üçün, Gizli həssas dəyərlər üçündür.
- Ad sahəsi: Resursları məntiqi olaraq bölən və təcrid edən sahə (məsələn, dev, prod).
- Giriş: Xarici dünyadan HTTP trafikini klasterdəki xidmətlərə yönləndirən qaydalar dəsti.
Helm Kubernetes-in "paket meneceri"dir: o, təkrarlanan manifestləri (diaqramları) şablonlaşdırmağa və bir əmrlə müxtəlif mühitlərdə müxtəlif dəyərlərlə quraşdırmağa imkan verir. Süni intellekt həm xam manifest, həm də Helm chart istehsal edir.
Niyə bu qədər çox obyekt var? Çünki Kubernetes-in əsas fəlsəfəsi deklarativdir: siz "sistemin son nəticədə necə görünməsini istədiyinizi" müəyyən edirsiniz (məsələn, "həmişə bu proqramın 3 nüsxəsi işləyir"), Kubernetes isə cari vəziyyəti davamlı olaraq həmin arzu olunan vəziyyətə yaxınlaşdırır. Pod ölürsə, yenisini yaradır; bir qovşaq aşağı düşərsə, iş yükünü başqa qovşağa köçürür. Ona görə də manifestlər “edin” əmrləri deyil, “belə olsun” reseptləridir. Süni intellektin yaratdığı təzahürləri oxuyarkən bu fərqi dərk etmək çox vacibdir: hər bir domen sistemin istənilən vəziyyətinin bir hissəsini təsvir edir. Səhv bir domen Kubernetesin səhv məqsədə doğru işlədiyini bildirir - və bu məqsəd səssizcə, israrla icra olunur.
İpucu: Kubernetes-də ən vacib təhlükəsiz sınaq vasitəsi kubectl apply --dry-run=server -f file.yaml-dir: o, serverin qəbul edib-etməyəcəyini və faktiki olaraq manifest tətbiq etmədən nə edəcəyini göstərir. Məhsula manifest tətbiq etməzdən əvvəl dry-run və kubectl diff işlətdiyinizə əmin olun.
Addım-addım: AI ilə manifestlərin yaradılması
- Tətbiqi və ehtiyacı təsvir edin. Şəklin adı, port, neçə replika, resurs məhdudiyyətləri (CPU/yaddaş).
- Yerləşdirmə + Xidmət tələb edin. Adətən hər ikisi birlikdə tələb olunur.
- Ayrı-ayrı konfiqurasiya və gizli. Parametrlər ConfigMap, həssas dəyərlər Gizli.
- Sağlamlıq yoxlamaları əlavə edin. livenessProbe (canlıdır) və ReadinessProbe (trafik üçün hazırdır) kritikdir.
- Resurs limiti təyin edin. Sorğular/məhdudiyyətlər olmadan Pod bütün nodu istehlak edə bilər.
- `--dry-run` və `diff` ilə təsdiqləyin, sonra tətbiq edin. Test ad sahəsində ilk.
Təhlükəsizlik: Kubernetes-ə xas risklər
- Gizli həqiqətən sirr deyil - sadəcə base64. Kubernetes Secret obyekt base64 dəyərləri kodlayır; Bu şifrələmə deyil, asanlıqla deşifrə edilir. Həqiqi məxfilik üçün s. şifrələmə və xarici kassa (Vault, bulud gizli meneceri) tələb olunur. Heç vaxt gizli təzahürləri birbaşa Git-ə verməyin (bunun üçün Möhürlənmiş Sirlər/Xarici Sirlər kimi həllər var).
- Resurs limiti təyin edin. Məhdudiyyətsiz bir Pod yaddaş sızması ilə bütün nodu sıradan çıxara bilər.
- Minimum səlahiyyət (RBAC). Rol Əsaslı Giriş Nəzarəti ilə hər bir xidmət/istifadəçi yalnız ehtiyac duyduğu icazələrə malikdir. AI bəzən böyük klaster-admin verir; bunu daralt.
- `ən son` şəkil etiketindən istifadə etməyin. Hansı versiyanın işlədiyini bilmirsiniz və onu geri qaytara bilməzsiniz.
Diqqət: kubectl silmək və ya səhv tətbiq canlı Yerləşdirməni məhv edə bilər. Əmrləri işə salmazdan əvvəl hansı ad məkanında olduğunuzu (kubectl config cari kontekst) yoxladığınızdan əmin olun; Təsadüfi iş istehsal kontekstində ümumi bir fəlakətdir.
Raw manifest vs. Helm cədvəli
meyar
Raw YAML manifest
Sükan diaqramı
Quraşdırma
kubectl tətbiq -f
sükan quraşdırmaq
Multimedia (inkişaf/məhsul)
Kopyala-yapışdır, xətaya meyllidir
Tək diaqram, müxtəlif qiymətlər.yaml
Versiya/geri qaytarma
əl ilə
sükanı geri qaytarmaqla asan
Öyrənmə əyrisi
aşağı
orta
nə vaxt
Kiçik, tək mühit
Multimedia, təkrarlanan xidmət
üç mini qutu
1-ci hal - qəzaya uğrayan xidmətin sirri. Pod daim yenidən işə salınırdı (CrashLoopBackOff). Komanda qeydləri və manifestləri AI-yə verdi; Süni intellekt göstərdi ki, Pod heç vaxt "hazır" hesab edilmir, çünki ReadinessProbe səhv porta baxırdı. Limanı düzəltdilər, xidmət 10 dəqiqəyə sabitləşdi. Bu əlaqəni əl ilə qurmaq saatlar çəkə bilər.
2-ci hal - məhdudiyyətlərin qoyulmaması düyünü qırdı. Yerləşdirmədə heç bir məhdudiyyət yox idi; Yaddaş sızması Pod-u şişirdi və bütün qovşağı sıradan çıxardı, qonşu xidmətləri də sıradan çıxardı. Hadisədən sonra onlar süni intellektə “bütün Yerləşdirmələrə ağlabatan CPU/yaddaş sorğuları və məhdudiyyətlər əlavə et” deməyə məcbur etdilər və onu standart hala gətirdilər. Bir əskik xətt saatlarla işləməyə başa gəlir.
3-cü hal - böyük RBAC tutuldu. Tədqiqat zamanı süni intellekt tərəfindən yaradılan ServiceAccount manifestinin klaster-inzibatçı roluna bağlı olduğu aşkar edildi, yəni xidmət bütün klasteri idarə edə bilər. Komanda ad məkanında yalnız Podları oxumaq üçün icazəni daraltdı. Ən az imtiyaz prinsipi təhlükəsizlik açığını bağladı.
Dörd kopyalana bilən şablon
1) Yerləşdirmə + Xidmət istehsalı:
Kubernetes üçün Yerləşdirmə və Xidmət manifestini yazın. Tətbiq: [AD], şəkil: [şəkil: sabit versiya], port: [X], replika: [N]. Qaydalar:- CPU/yaddaş sorğuları və limitləri əlavə edin.- CanlılıqProbunu və hazırlığı yoxlayın.- Konfiqurasiyanı ConfigMap-dən oxuyun, Gizli obyektdən gizli; Manifestdə dəyərləri yerləşdirməyin, yer tutuculardan istifadə edin. - ":latest" şəkil etiketindən istifadə etməyin. Təsviri ilə verin.
2) Manifest səhvinin həlli:
Cari Pod [CrashLoopBackOff / Gözləyən / ImagePullBackOff] vəziyyətindədir. Aşağıdakı manifest və 'kubectl describe' çıxışına uyğun olaraq, mümkün əsas səbəbləri ehtimal sırasına görə sadalayın və hər biri üçün doğrulama əmrini verin. Manifest: [YAML] Təsvir et: [OUTPUT]
3) Təhlükəsizlik/bütövlük yoxlanışı:
Bu Kubernetes manifestini yoxlayın: resurs limiti yoxdurmu, problem yoxdurmu, :son teq varmı, həddən artıq geniş RBAC/icazə varmı, sirr manifestə daxil edilibmi? Nəticələri əhəmiyyət sırası ilə və düzəlişlə yazın. Manifest: [YAML]
4) Helm diaqramına çevrilmə:
Aşağıdakı xam manifestləri təkrar istifadə edilə bilən Helm diaqramına çevirin: hansı dəyərlər dəyərlərə keçməlidir.yaml (şəkil, replika, mənbə, mühit)? Diaqram strukturunu və nümunə dəyərlərini göstərin.yaml.Manifestlər: [YAML]
Zəif məlumat / Güclü göstəriş
Zəif: "Tətbiqim üçün Kubernetes YAML yazın."
Nəticə: araşdırmasız, limitsiz Yerləşdirmə: ən son teq, gizli düzənliyi daxil edən; Məhsulda etibarsız və kövrək.
Güclü: "Kubernetes Deployment + Service yazın. Şəkil mənim tətbiqim:1.4.2, 3 replika, 8080 port. CPU 100m-500m, yaddaş 128Mi-512Mi əlavə sorğular/limitlər. /healthz üçün canlılıq zondu qoyun, /ready obyekti üçün hazırlıq zondunu oxuyun, gizli obyekti dondurun. təsviri ilə verin."
Fərq: ikinci operativ versiya miqyas, resurs məhdudiyyətləri, sağlamlıq yoxlamaları və gizli qayda verir; Çıxış istehsala yaxındır və təhlükəsizdir.
Ümumi səhvlər
- Resurs limitlərini təyin etməmək. Tək bir Pod bütün nodu istehlak edə bilər.
- Sağlamlıq yoxlaması (zond) əlavə edilmir. Kubernetes qəzaya uğramış/hazır olmayan Pod-u aşkar edə bilmir.
- `:son` teqi. Hansı versiyanın işlədiyi bəlli deyil, onu geri qaytarmaq mümkün deyil.
- Sirri birbaşa Git-ə vermək. Base64 şifrələmə deyil; hamı həll edir.
- Səhv kontekstdə/ad sahəsində əmrlərin icrası. Məhsulda qəzaya uğramağın ən ümumi yolu.
- `--dry-run`/`diff` atlanır. Həyata keçirməmişdən əvvəl nə olacağını görmürük.
Xülasə
Kubernetes klaster üzrə konteynerləri avtomatik yerləşdirən, ölçən və optimallaşdıran güclü, lakin mürəkkəb bir orkestrdir; Hər şey Helm-in şablonlaşdırdığı manifest YAML-lərlə müəyyən edilir. Süni intellekt tez bir zamanda Yerləşdirmə/Xidmət manifestlərini və Helm qrafiklərini yaradır, sirli səhvləri həll edir – lakin siz açıq şəkildə resurs limiti, sağlamlıq yoxlanışı, dəyişməz şəkil etiketi, dar RBAC və gizli təhlükəsizlik qaydaları tələb etməlisiniz. --dry-run, diff və düzgün kontekst yoxlaması istehsal qəzalarının qarşısını alan vərdişlərdir.
Tətbiq tapşırığı
Süni intellektdən "Yerləşdirmə + Xidmətin yaradılması" şablonu ilə nümunə tətbiq üçün manifest yaratmasını təmin edin. Sonra: (1) "Təhlükəsizlik/sağlamlıq yoxlanışı" şablonu ilə onu resurs limiti, araşdırma, :son və sirr üçün yoxlayın; (2) mümkünsə test klasterində/minikube-də kubectl apply --dry-run=server işlədin və nəticəni oxuyun; (3) itkin tapdığınız iki ən vacib təhlükəsizlik/sağlamlıq elementini qeyd edin.
yoxlama siyahısı
- [ ] Sorğuma şəkil versiyasını, replikaların sayını, port və resurs limitlərini əlavə etdim.
- [ ] Mən manifestə canlılıq və hazırlıq zondu əlavə etdim.
- [ ] Şəkil teqi düzəldildi; Mən istifadə etməmişəm :son.
- [ ] Sirr manifestə daxil edilməyib; Gizli obyekt/xarici kassadan istifadə etdim.
- [ ] Mən RBAC/icazələri minimum icazələrə qədər daraltdım.
- [ ] Müraciət etməzdən əvvəl düzgün kontekstdə olduğumu və --dry-run/diff nəticələrini təsdiqlədim.