
Sel ööl Kubernetese järgmine väljalase - . Meie ajaveebi jaoks välja kujunenud traditsiooni kohaselt räägime selle imelise avatud lähtekoodiga toote uue versiooni peamistest muudatustest.
Selle materjali ettevalmistamiseks kasutatud teave on võetud , ja sellega seotud probleemid, tõmbamistaotlused, Kubernetes Enhancement Proposals (KEP).
Alustame olulise sissejuhatusega SIG-klastri elutsüklist: dünaamilised tõrkesiirdeklastrid Kubernetes (või täpsemalt öeldes isehostitavad HA juurutused) on nüüd olemas kasutades tuttavaid (ühesõlmeliste klastrite kontekstis) käske kubeadm (init и join). Lühidalt selle jaoks:
- klastri kasutatavad sertifikaadid kantakse üle saladustesse;
- Etdd klastri kasutamise võimaluse eest K8s klastri sees (st vabaneda varem eksisteerinud välisest sõltuvusest) ;
- Dokumenteerib välise koormuse tasakaalustaja soovitatavad sätted, mis pakub tõrketaluvusega konfiguratsiooni (tulevikus on plaanis see sõltuvus kõrvaldada, kuid mitte praeguses etapis).

Kubeadmi abil loodud Kubernetes HA klastri arhitektuur
Rakenduse üksikasjad leiate aadressilt . See funktsioon oli tõesti kauaoodatud: alfaversiooni oodati juba K8s 1.9-s, kuid see ilmus alles nüüd.
API
Meeskond apply ja üldiselt öeldes deklaratiivne objektihaldus kohta kubectl apiserveris. Arendajad ise selgitavad oma otsust lühidalt sellega kubectl apply - Kubernetese konfiguratsioonidega töötamise põhiosa, kuid "see on täis vigu ja seda on raske parandada" ning seetõttu tuleb see funktsioon taastada normaalseks ja üle kanda juhttasandile. Lihtsad ja selged näited tänapäeval eksisteerivatest probleemidest:

Rakenduse üksikasjad on kirjas . Praegune valmisolek on alfa (üleminek beetaversiooniks on kavandatud järgmise Kubernetese väljaande jaoks).
Saadaval alfa-versioonis kasutades OpenAPI v3 skeemi OpenAPI dokumentatsiooni loomine ja avaldamine CustomResourcesi jaoks (CR), mida kasutatakse (serveripoolsete) K8s kasutaja määratud ressursside valideerimiseks (CustomResourceDefinition, CRD). OpenAPI avaldamine CRD jaoks võimaldab klientidel (nt. kubectl) teostage valideerimine teie poolel (sees kubectl create и kubectl apply) ja väljastada dokumentatsiooni vastavalt skeemile (kubectl explain). Üksikasjad - sisse .
Olemasolevad palgid lipuga O_APPEND (kuid mitte O_TRUNC), et vältida teatud olukordades palkide kadumist ja väliste utiliitidega palkide kärpimise mugavuse huvides.
Ka Kubernetes API kontekstis võib märkida, et in PodSandbox и PodSandboxStatus väli runtime_handler kohta teabe salvestamiseks RuntimeClass kaunas (loe selle kohta lähemalt tekstist , kus see klass ilmus alfaversioonina) ja sissepääsu veebihaagides võimalus määrata, millised versioonid AdmissionReview nad toetavad. Lõpuks kehtivad sissepääsu veebihaagi reeglid nende kasutuse ulatus nimeruumide ja klastriraamistike poolt.
Vaults
, millel oli alates avaldamisest beetaversioon , stabiilne (GA): see funktsioonivärav pole enam keelatud ja Kubernetes 1.17 eemaldatakse.
nimega keskkonnamuutujaid kasutades (nt pod nimi) kataloogide nimede jaoks, mis on ühendatud kui , töötati välja – uue valdkonna näol subPathExpr, mida kasutatakse nüüd soovitud kataloogi nime määramiseks. Funktsioon ilmus algselt versioonis Kubernetes 1.11, kuid 1.14 puhul jäi see alfaversiooni olekusse.
Nagu eelmise Kubernetese väljaande puhul, tehakse aktiivselt arenevas CSI-s (konteinerite salvestusliides) palju olulisi muudatusi:
CSI
Sai saadavale (alfa versiooni osana) CSI mahtude suuruse muutmine. Selle kasutamiseks peate lubama funktsioonivärava nimega ExpandCSIVolumes, samuti selle toimingu toe olemasolu konkreetses CSI draiveris.
Teine alfaversiooni CSI funktsioon - viitavad otse (st ilma PV/PVC-d kasutamata) CSI-mahtudele podi spetsifikatsioonis. See eemaldab piirangu CSI kasutamisele eranditult kaugandmesalvestusena, avades neile uksed maailma . Kasutamiseks () peab olema lubatud CSIInlineVolume funktsiooni värav.
Edu on saavutatud ka CSI-ga seotud Kubernetese sisemistes, mis pole lõppkasutajatele (süsteemiadministraatoritele) nii nähtavad ... Praegu on arendajad sunnitud toetama iga salvestusplugina kahte versiooni: üks - " vana moodi”, K8s koodibaasi sees (-puus) ja teine - uue CSI osana (loe selle kohta lähemalt nt ). See põhjustab arusaadavaid ebamugavusi, millega tuleb tegeleda, kuna CSI ise stabiliseerub. Sisemiste (puusiseste) pistikprogrammide API-d ei ole võimalik lihtsalt katkestada, kuna .
Kõik see viis selleni, et alfa versioon jõudis sisemine pistikprogrammi kood, mis on juurutatud puusisesena, CSI pluginates, tänu millele taandub arendajate mure oma pluginate ühe versiooni toetamisele ning ühilduvus vanade API-dega säilib ning need saab tavapärase stsenaariumi korral aegunuks kuulutada. Eeldatakse, et järgmiseks Kubernetese (1.15) väljalaseks migreeritakse kõik pilveteenuse pakkuja pistikprogrammid, juurutus saab beetaoleku ja aktiveeritakse vaikimisi K8s installides. Üksikasju vt . Selle migratsiooni tulemuseks oli ka konkreetsete pilveteenuse pakkujate (AWS, Azure, GCE, Cinder) määratud mahupiirangutest.
Lisaks toetab CSI-ga (CSIBlockVolume) beetaversioonile.
Sõlmed/Kubelet
Esitatud alfaversioon Kubeletis, mis on mõeldud põhiressursside tagastamise mõõdikud. Üldiselt võib öelda, et kui varem sai Kubelet konteineri kasutamise statistika cAdvisorist, siis nüüd tulevad need andmed konteineri käituskeskkonnast CRI (Container Runtime Interface) kaudu, kuid ühilduvus töötamiseks Dockeri vanemate versioonidega on samuti säilinud. Varem saadeti Kubeletis kogutud statistika REST API kaudu, nüüd aga otspunkt, mis asub aadressil /metrics/resource/v1alpha1. Arendajate pikaajaline strateegia on Kubeleti pakutavate mõõdikute komplekti minimeerimine. Muide, need mõõdikud ise mitte "põhimõõdikud", vaid "ressursside mõõdikud" ja neid kirjeldatakse kui "esimese klassi ressursse, nagu protsessor ja mälu".
Väga huvitav nüanss: hoolimata gRPC lõpp-punkti selgest jõudluse eelisest võrreldes Prometheuse vormingu erinevate kasutusjuhtudega (vt ühe võrdlusuuringu tulemust allpool), eelistasid autorid Prometheuse tekstivormingut selle seiresüsteemi selge juhtimise tõttu kogukonnas.
„gRPC ei ühildu suuremate seiretorustikega. Lõpp-punkt on kasulik ainult mõõdikute edastamiseks Metrics Serverisse või sellega otse integreeritavate komponentide jälgimiseks. Prometheuse tekstivormingu jõudlus vahemällu kasutamisel Metrics Serveris piisavalt hea et me eelistaksime Prometheust gRPC-le, arvestades Prometheuse laialdast kasutuselevõttu kogukonnas. Kui OpenMetricsi vorming muutub stabiilsemaks, saame läheneda gRPC jõudlusele protopõhise vorminguga.

Üks võrdlevatest toimivustestidest gRPC ja Prometheuse vormingute kasutamisel mõõdikute uues Kubeleti lõpp-punktis. Rohkem graafikuid ja muid üksikasju leiate aadressilt .
Muude muudatuste hulgas:
- Kubelet nüüd (üks kord) enne taaskäivitamist ja kustutamistoiminguid tundmatus olekus konteinerid.
- Kui kasutate nüüd init konteinerisse sama teave, mis tavalise konteineri puhul.
- kubelet
usageNanoCoresCRI statistikapakkujalt ning sõlmede ja konteinerite jaoks Windows võrgu statistika. - Operatsioonisüsteemi ja arhitektuuri teave on nüüd salvestatud siltidele
kubernetes.io/osиkubernetes.io/archSõlmeobjektid (üle viidud beetaversioonist GA-sse). - Võimalus määrata kaustas olevate konteinerite jaoks konkreetne süsteemi kasutajarühm (
RunAsGroup, ilmus aastal ) enne beetaversiooni (vaikimisi lubatud). - du ja find kasutatakse cAdvisoris, on Go rakendamine.
CLI
Cli-runtime'is ja kubectlis -k lipp integreerimiseks (muide, selle arendus toimub nüüd eraldi hoidlas), st. täiendavate YAML-failide töötlemiseks spetsiaalsetest kustomimiskataloogidest (üksikasju nende kasutamise kohta vt ):

Näide lihtsast failikasutusest (Sees on võimalik kustomize'i keerulisem rakendus )
Lisaks:
- uus meeskond
kubectl create cronjob, mille nimi räägib enda eest. - В
kubectl logsnüüd sa saad lipud-f(--followlogide voogesituse jaoks) ja-l(--selectorsildi päringu jaoks). - kubectl kopeerida metamärgiga valitud failid.
- Meeskonnale
kubectl waitlipp--allet valida kõik määratud ressursitüübi nimeruumis olevad ressursid.
Teised
Järgmised võimalused on saanud stabiilse (GA) oleku:
- , mida kasutatakse kauna spetsifikatsioonis täiendavate tingimuste määratlemiseks, mida kauna valmisolekus arvesse võetakse;
- Suurte lehtede tugi (funktsiooni värav );
- ;
- PriorityClass API .
Muud versioonis Kubernetes 1.14 tehtud muudatused:
- RBAC-i vaikepoliitika ei võimalda enam API-le juurdepääsu
discoveryиaccess-reviewkasutajad ilma autentimiseta (autentimata). - Ametlik CoreDNS-i tugi ainult Linux, seega kui seda klastris kubeadm-i abil juurutada (CoreDNS), peaksid sõlmed töötama ainult Linux (selle piirangu jaoks kasutatakse nodeSelectoreid).
- CoreDNS-i vaikekonfiguratsioon on nüüd puhverserveri asemel. Samuti CoreDNS-is ReadinessProbe, mis takistab koormuse tasakaalustamist sobivatel (hoolduseks mittevalmis) kaustadel.
- Kubeadmis, faasides
initvõiupload-certs, laadige sertifikaadid, mis on vajalikud uue juhttasandi ühendamiseks kubeadm-certs secretiga (kasutage lippu--experimental-upload-certs). - eest Windows-Installatsioonide alfaversioon on ilmunud. gMSA (Group Managed Service Account) – Active Directory spetsiaalsed kontod, mida saavad kasutada ka konteinerid.
- G.C.E. mTLS-i krüptimine etcd ja kube-apiserveri vahel.
- Värskendused kasutatud/sõltuvas tarkvaras: Go 1.12.1, CSI 1.1, CoreDNS 1.3.1, Docker 18.09 tugi kubeadmis ja minimaalne toetatud Docker API versioon on nüüd 1.26.
PS
Loe ka meie blogist:
- «";
- «";
- «";
- «'.
Allikas: www.habr.com
