{"id":30272,"date":"2019-10-31T21:34:36","date_gmt":"2019-10-31T18:34:36","guid":{"rendered":"https:\/\/prohoster.info\/blog\/kubernetes-1-14-obzor-osnovnyh-novshestv\/"},"modified":"2019-10-31T21:34:36","modified_gmt":"2019-10-31T18:34:36","slug":"kubernetes-1-14-obzor-osnovnyh-novshestv","status":"publish","type":"post","link":"https:\/\/prohoster.info\/ro\/blog\/kubernetes-1-14-obzor-osnovnyh-novshestv","title":{"rendered":"Kubernetes 1.14: o privire asupra principalelor nout\u0103\u021bi","gt_translate_keys":[{"key":"rendered","format":"text"}]},"content":{"rendered":"<p><img decoding=\"async\" alt=\"Kubernetes 1.14: o privire asupra principalelor nout\u0103\u021bi\" src=\"\/wp-content\/uploads\/2019\/03\/8fb5be29668f55ec42d31eb47200b639.png\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\n\u00cen noaptea aceasta <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/kubernetes\/sig-release\/tree\/master\/releases\/release-1.14#timeline\">va avea loc<\/a><\/noindex> o nou\u0103 lansare Kubernetes \u2014 <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/kubernetes\/sig-release\/tree\/master\/releases\/release-1.14\">1.14<\/a><\/noindex>. Conform tradi\u021biei blogului nostru, v\u0103 spunem despre schimb\u0103rile cheie din noua versiune a acestui minunat produs Open Source.<\/p>\n<p>Informa\u021biile folosite pentru redactarea acestui material provin din <noindex><a rel=\"nofollow\" href=\"https:\/\/docs.google.com\/spreadsheets\/u\/1\/d\/116X6E-lmDJG5UZPlqDAFw8hN9vS6SNY4qRNZ9fKtsMU\/edit#gid=0\">tabelul de urm\u0103rire a \u00eembun\u0103t\u0103\u021birilor Kubernetes<\/a><\/noindex>, <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/kubernetes\/kubernetes\/blob\/release-1.14\/CHANGELOG-1.14.md\">CHANGELOG-1.14<\/a><\/noindex> \u0219i din problemele, cererile de tragere, Propunerile de \u00cembun\u0103t\u0103\u021bire Kubernetes (KEP) relevante.<noindex><a rel=\"nofollow\" name=\"habracut\"><\/a><\/noindex><\/p>\n<p>S\u0103 \u00eencepem cu o introducere important\u0103 din partea SIG cluster-lifecycle: <b>clustere dinamice rezistente la defec\u021biuni<\/b> Kubernetes (sau, mai exact, implement\u0103ri HA auto-g\u0103zduite) pot fi acum <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/kubernetes\/enhancements\/issues\/357\">crea\u021bi<\/a><\/noindex> folosind comenzile obi\u0219nuite (\u00een contextul clusterelor cu un singur nod) <code>kubeadm<\/code> (<code>init<\/code> \u0219i <code>join<\/code>). Pe scurt, pentru aceasta:<\/p>\n<ul>\n<li> certificatele utilizate de cluster sunt mutate \u00een secrete;<\/li>\n<li> pentru a permite utilizarea clusterului etcd \u00een interiorul clusterului K8s (adic\u0103 eliminarea dependen\u021bei externe existente), este activat <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/coreos\/etcd-operator\">etcd-operator<\/a><\/noindex>;<\/li>\n<li> sunt documentate configura\u021biile recomandate pentru un echilibrator de sarcin\u0103 extern, care asigur\u0103 o configura\u021bie rezistent\u0103 la defec\u021biuni (pe viitor se preconizeaz\u0103 posibilitatea elimin\u0103rii acestei dependen\u021be, dar nu \u00een aceast\u0103 etap\u0103).<\/li>\n<\/ul>\n<p>\n<img decoding=\"async\" alt=\"Kubernetes 1.14: o privire asupra principalelor nout\u0103\u021bi\" src=\"\/wp-content\/uploads\/2019\/03\/0e82b7e8db1ad117dc87f68fa4669431.png\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<i>Arhitectura clusterului HA Kubernetes, creat\u0103 cu kubeadm<\/i><\/p>\n<p>Detalii despre implementare pot fi g\u0103site \u00een <noindex><a rel=\"nofollow\" href=\"https:\/\/docs.google.com\/document\/d\/1P3oUJ_kdaRSTlGONujadGBpYegjn4RjBNZLHZ4zU7lI\/edit#\">propunerea de design<\/a><\/noindex>. Aceast\u0103 caracteristic\u0103 a fost foarte a\u0219teptat\u0103: versiunea alfa a fost anticipat\u0103 \u00eenc\u0103 din K8s 1.9, dar a ap\u0103rut abia acum.<\/p>\n<h2>API<\/h2>\n<p>\nComanda <code>aplicare<\/code> \u0219i \u00een general <b>gestionarea declarativ\u0103 a obiectelor<\/b> <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/kubernetes\/enhancements\/issues\/555\">a fost mutat\u0103<\/a><\/noindex> din <code>kubectl<\/code> \u00een apiserver. Dezvoltatorii \u00een\u0219i\u0219i explic\u0103 pe scurt decizia lor astfel: <code>kubectl apply<\/code> \u2014 o parte fundamental\u0103 a muncii cu configura\u021biile \u00een Kubernetes, dar este \u201eplin\u0103 de bug-uri \u0219i greu de reparat\u201d, motiv pentru care aceast\u0103 func\u021bionalitate trebuie readus\u0103 la un standard normal \u0219i mutat\u0103 \u00een control plane. Exemple simple \u0219i clare ale problemelor existente ast\u0103zi:<\/p>\n<p><img decoding=\"async\" alt=\"Kubernetes 1.14: o privire asupra principalelor nout\u0103\u021bi\" src=\"\/wp-content\/uploads\/2019\/03\/379b0d830491bbb0e7ac3c3ccfff71c4.png\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nDetalii despre implementare \u2014 \u00een <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/kubernetes\/enhancements\/blob\/master\/keps\/sig-api-machinery\/0006-apply.md\">KEP<\/a><\/noindex>. Starea actual\u0103 \u2014 versiune alfa (promovarea la beta este planificat\u0103 pentru urm\u0103toarea lansare Kubernetes).<\/p>\n<p>\u00cen versiunea alfa a devenit disponibil <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/kubernetes\/enhancements\/issues\/692\">posibilitatea<\/a><\/noindex> utilizarea schemei OpenAPI v3 pentru <b>crearea \u0219i publicarea documenta\u021biei OpenAPI pentru CustomResources<\/b> (CR), utilizate pentru validarea (pe partea serverului) a resurselor K8s definite de utilizator (CustomResourceDefinition, CRD). Publicarea OpenAPI pentru CRD permite clien\u021bilor (de exemplu, <code>kubectl<\/code>) s\u0103 efectueze valid\u0103ri pe partea lor (\u00een cadrul <code>kubectl create<\/code> \u0219i <code>kubectl apply<\/code>) \u0219i s\u0103 emit\u0103 documenta\u021bie schema (<code>kubectl explain<\/code>). Detalii \u2014 \u00een <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/kubernetes\/enhancements\/blob\/master\/keps\/sig-api-machinery\/00xx-publish-crd-openapi.md\">KEP<\/a><\/noindex>.<\/p>\n<p>Log-urile existente anterior <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/kubernetes\/kubernetes\/pull\/74837\">acum sunt deschise<\/a><\/noindex> cu flag-ul <code>O_APPEND<\/code> (nu <code>O_TRUNC<\/code>) pentru a evita pierderea jurnalele \u00een anumite situa\u021bii \u0219i pentru a facilita truncarea jurnalele externe cu uneltele pentru rotirea acestora.<\/p>\n<p>De asemenea, \u00een contextul API-ului Kubernetes se poate men\u021biona c\u0103 \u00een <code>PodSandbox<\/code> \u0219i <code>PodSandboxStatus<\/code> <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/kubernetes\/kubernetes\/pull\/73833\">ad\u0103ugat<\/a><\/noindex> c\u00e2mpul <code>runtime_handler<\/code> pentru a \u00eenregistra informa\u021bii despre <code>RuntimeClass<\/code> \u00een pod&#8217;ul (mai multe detalii despre acesta se g\u0103sesc \u00een textul despre <noindex><a rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/company\/flant\/blog\/424331\/\">lansarea Kubernetes 1.12<\/a><\/noindex>, unde aceast\u0103 clas\u0103 a ap\u0103rut ca versiune alfa), iar \u00een Admission Webhooks <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/kubernetes\/kubernetes\/pull\/74998\">a fost implementat\u0103<\/a><\/noindex> posibilitatea de a determina ce versiuni <code>AdmissionReview<\/code> ele suport\u0103. \u00cen cele din urm\u0103, \u00een regulile Admission Webhooks acum <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/kubernetes\/kubernetes\/pull\/74477\">se pot restric\u021biona<\/a><\/noindex> scopurile utiliz\u0103rii acestora cu namespace-uri \u0219i limitele clusterului.<\/p>\n<h2>Stoc\u0103rile<\/h2>\n<p>\n<noindex><a rel=\"nofollow\" href=\"https:\/\/kubernetes.io\/docs\/concepts\/storage\/volumes\/#local\"><code><b>PersistentLocalVolumes<\/b><\/code><\/a><\/noindex>, care au avut statut de versiune beta de la lansarea <noindex><a rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/company\/flant\/blog\/353114\/\">K8s 1.10<\/a><\/noindex>, <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/kubernetes\/kubernetes\/pull\/74769\">au fost declarate<\/a><\/noindex> stabile (GA): aceast\u0103 func\u021bie nu mai poate fi dezactivat\u0103 \u0219i va fi eliminat\u0103 \u00een Kubernetes 1.17.<\/p>\n<p><noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/kubernetes\/enhancements\/issues\/559\">Posibilitatea<\/a><\/noindex> utilizarea variabilelor de mediu numite <noindex><a rel=\"nofollow\" href=\"https:\/\/kubernetes.io\/docs\/tasks\/inject-data-application\/downward-api-volume-expose-pod-information\/#capabilities-of-the-downward-api\">Downward API<\/a><\/noindex> (de exemplu, numele pod&#8217;ului) pentru denumirile directoarelor montate ca <noindex><a rel=\"nofollow\" href=\"https:\/\/kubernetes.io\/docs\/concepts\/storage\/volumes\/#using-subpath\"><code>subPath<\/code><\/a><\/noindex>, a evoluat \u2014 sub forma unui nou c\u00e2mp <code>subPathExpr<\/code>, prin care acum se determin\u0103 numele directorului necesar. Ini\u021bial, func\u021bia a ap\u0103rut \u00een Kubernetes 1.11, dar pentru 1.14 a r\u0103mas \u00een statut de versiune alfa.<\/p>\n<p>Ca \u0219i \u00een lansarea anterioar\u0103 a Kubernetes, multe schimb\u0103ri semnificative au fost prezentate pentru CSI (Container Storage Interface) \u00een continu\u0103 dezvoltare:<\/p>\n<h3>CSI<\/h3>\n<p>\nA devenit disponibil (\u00een cadrul versiunii alfa) <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/kubernetes\/enhancements\/issues\/556\">suport pentru<\/a><\/noindex> <b>extinderea dimensiunilor pentru volumele CSI<\/b>. Pentru utilizarea ei, va fi necesar\u0103 activarea func\u021biei cu denumirea <code>ExpandCSIVolumes<\/code>, precum \u0219i suportul acestei opera\u021bii \u00een driverul CSI specific.<\/p>\n<p>O alt\u0103 func\u021bie pentru CSI \u00een versiune alfa \u2014 <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/kubernetes\/enhancements\/issues\/596\">posibilitatea<\/a><\/noindex> a se referi direct (adic\u0103 f\u0103r\u0103 utilizarea PV\/PVC) la volumele CSI \u00een cadrul specifica\u021biei pod&#8217;urilor. Aceasta <b>\u00eendep\u0103rteaz\u0103 restric\u021bia utiliz\u0103rii CSI ca fiind exclusiv stoc\u0103ri de date externe<\/b>, deschiz\u00e2nd pentru ele por\u021bile \u00een lumea <noindex><a rel=\"nofollow\" href=\"https:\/\/kubernetes-csi.github.io\/docs\/ephemeral-local-volumes.html\">volumelor ephemere locale.<\/a><\/noindex>Pentru utilizare (<noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/vladimirvivien\/kubernetes.github.io\/blob\/b78107abfdb2b5877973b84062d93cdf98ef1b9c\/content\/en\/docs\/concepts\/storage\/volumes.md#csi-ephemeral-volumes\">exemplu din documenta\u021bie<\/a><\/noindex>) trebuie activat <code>CSIInlineVolume<\/code> feature gate.<\/p>\n<p>A ap\u0103rut un progres \u0219i \u00een \u00abinteriorul\u00bb Kubernetes, legat de CSI, care nu este at\u00e2t de vizibil utilizatorilor finali (administratorilor de sistem)... \u00cen prezent, dezvoltatorii sunt nevoi\u021bi s\u0103 men\u021bin\u0103 dou\u0103 versiuni ale fiec\u0103rui plugin de stocare: una \u2014 \u00abpe vechi\u00bb, \u00een interiorul bazei de cod K8s (in-tree), iar a doua \u2014 \u00een cadrul noului CSI <i>(despre acesta citi\u021bi mai multe, de exemplu, \u00een <noindex><a rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/company\/flant\/blog\/424211\/\">aici<\/a><\/noindex>)<\/i>. Aceasta genereaz\u0103 disconforturi evidente, care trebuie eliminate pe m\u0103sur\u0103 ce CSI se stabilizeaz\u0103 ca atare. Pur \u0219i simplu declararea ca fiind \u00eenvechite (deprecated) a API-urilor interne (in-tree) ale plugin-urilor nu este posibil\u0103 din cauza <noindex><a rel=\"nofollow\" href=\"https:\/\/kubernetes.io\/docs\/reference\/using-api\/deprecation-policy\/#deprecating-parts-of-the-api\">politicii corespunz\u0103toare Kubernetes<\/a><\/noindex>.<\/p>\n<p>Tot acest lucru a dus la faptul c\u0103 versiunile alpha au atins <b><noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/kubernetes\/enhancements\/issues\/625\">procesul de migrare<\/a><\/noindex> codului intern al plugin-urilor<\/b>, implementate ca in-tree, \u00een plugin-urile CSI, ceea ce va reduce preocup\u0103rile dezvoltatorilor la suportul pentru o singur\u0103 versiune a plugin-urilor lor, iar compatibilitatea cu API-urile vechi va fi men\u021binut\u0103, permi\u021b\u00e2ndu-le s\u0103 fie declarate \u00eenvechite conform scenariului obi\u0219nuit. Se a\u0219teapt\u0103 ca, p\u00e2n\u0103 la urm\u0103toarea versiune Kubernetes (1.15), migrarea tuturor plugin-urilor furnizorilor de cloud s\u0103 fie realizat\u0103, implementarea va ob\u021bine statutul de versiune beta \u0219i va fi activat\u0103 \u00een instala\u021biile K8s implicit. Detalii pot fi g\u0103site \u00een <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/kubernetes\/community\/blob\/master\/contributors\/design-proposals\/storage\/csi-migration.md\">propunerea de design<\/a><\/noindex>. Ca urmare a acestei migra\u021bii, de asemenea, a avut loc <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/kubernetes\/kubernetes\/pull\/74544\">renun\u021barea<\/a><\/noindex> la restric\u021biile pentru volumele definite de anumi\u021bi furnizori de cloud (AWS, Azure, GCE, Cinder).<\/p>\n<p>\u00cen plus, suportul pentru dispozitivele de blocare cu CSI (<code>CSIBlockVolume<\/code>) <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/kubernetes\/kubernetes\/pull\/74909\">a fost trecut<\/a><\/noindex> \u00een versiune beta.<\/p>\n<h2>Noduri \/ Kubelet<\/h2>\n<p>\nA fost prezentat\u0103 versiunea alpha <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/kubernetes\/enhancements\/issues\/727\">a noului endpoint<\/a><\/noindex> \u00een Kubelet, destinat pentru <b>oferirea de metrici pentru resursele de baz\u0103<\/b>. \u00cen general, dac\u0103 anterior Kubelet primea statistici despre utilizarea containerelor din cAdvisor, acum aceste date sunt ob\u021binute din mediul de execu\u021bie al containerului prin CRI (Container Runtime Interface), totu\u0219i compatibilitatea cu versiunile vechi de Docker a fost p\u0103strat\u0103. Statistica anterior colectat\u0103 \u00een Kubelet era expus\u0103 prin REST API, iar acum acest lucru se face printr-un endpoint situat la adresa <code>\/metrics\/resource\/v1alpha1<\/code>. Strategia pe termen lung a dezvoltatorilor <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/kubernetes\/kubernetes\/issues\/68522\">const\u0103<\/a><\/noindex> \u00een minimizarea setului de metrici oferite de Kubelet. <i>Apropo, aceste metrici <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/kubernetes\/enhancements\/pull\/726\">sunt acum denumite<\/a><\/noindex> nu \u00abcore metrics\u00bb, ci \u00abresource metrics\u00bb, descriindu-le ca \u00abresurse de prim\u0103 clas\u0103, cum ar fi cpu \u0219i memorie\u00bb.<\/i><\/p>\n<p>Un detaliu foarte interesant: \u00een ciuda avantajului evident de performan\u021b\u0103 al endpoint-ului gRPC \u00een compara\u021bie cu diferitele utiliz\u0103ri ale formatului Prometheus <i>(rezultatul unuia dintre benchmark&#8217;uri, vezi mai jos)<\/i>, autorii au preferat formatul text Prometheus datorit\u0103 pozi\u021biei predominante a acestui sistem de monitorizare \u00een comunitate.<\/p>\n<blockquote><p><i>\u00abgRPC nu este compatibil cu principalele fluxuri de monitorizare. Endpoint-ul va fi util doar pentru livrarea metricilor \u00een Metrics Server sau \u00een componentele de monitorizare care se integreaz\u0103 direct cu acesta. Atunci c\u00e2nd se folose\u0219te caching \u00een Metrics Server, performan\u021ba formatului text Prometheus <b>este suficient de bun\u0103<\/b> pentru noi, pentru a prefera Prometheus \u00een loc de gRPC, av\u00e2nd \u00een vedere popularitatea larg\u0103 a Prometheus \u00een comunitate. C\u00e2nd formatul OpenMetrics va deveni mai stabil, vom putea s\u0103 ne apropiem de performan\u021ba gRPC folosind un format bazat pe proto\u00bb.<\/i><\/p><\/blockquote>\n<p>\n<img decoding=\"async\" alt=\"Kubernetes 1.14: o privire asupra principalelor nout\u0103\u021bi\" src=\"\/wp-content\/uploads\/2019\/03\/ad7e45b61fc4676a2df3c2d33d5688b5.png\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<i>Unul dintre testele comparative de performan\u021b\u0103 \u00eentre formatele gRPC \u0219i Prometheus \u00een noul endpoint&#8217;ul Kubelet pentru metrici. Mai multe grafice \u0219i alte detalii pot fi g\u0103site \u00een <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/kubernetes\/enhancements\/blob\/master\/keps\/sig-node\/kubelet-resource-metrics-endpoint.md\">KEP<\/a><\/noindex>.<\/i><\/p>\n<p>Printre alte modific\u0103ri:<\/p>\n<ul>\n<li> Kubelet acum (o singur\u0103 dat\u0103) <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/kubernetes\/kubernetes\/pull\/73802\">\u00eencerc\u0103 s\u0103 opreasc\u0103<\/a><\/noindex> containerele \u00een stare necunoscut\u0103 (unknown) \u00eenainte de opera\u021biile de restart \u0219i \u0219tergere.<\/li>\n<li> C\u00e2nd folose\u0219ti <noindex><a rel=\"nofollow\" href=\"https:\/\/kubernetes.io\/docs\/concepts\/workloads\/pods\/podpreset\/\"><code>PodPresets<\/code><\/a><\/noindex> acum controleaz\u0103 ini\u021bializarea containerului <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/kubernetes\/kubernetes\/pull\/71479\">se adaug\u0103<\/a><\/noindex> acelea\u0219i informa\u021bii ca un container obi\u0219nuit.<\/li>\n<li> Kubelet <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/kubernetes\/kubernetes\/pull\/73659\">a \u00eenceput s\u0103 utilizeze<\/a><\/noindex> <code>usageNanoCores<\/code> din furnizorul de statistici CRI, iar pentru noduri \u0219i containere \u00een Windows <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/kubernetes\/kubernetes\/pull\/74788\">a fost ad\u0103ugat\u0103<\/a><\/noindex> statistici de re\u021bea.<\/li>\n<li> Informa\u021biile despre sistemul de operare \u0219i arhitectur\u0103 sunt acum \u00eenregistrate \u00een etichete <code>kubernetes.io\/os<\/code> \u0219i <code>kubernetes.io\/arch<\/code> ale obiectelor Node (traduse din beta \u00een GA).<\/li>\n<li> Posibilitatea de a specifica un grup sistematic de utilizatori pentru containerele din pod&#8217;ul (<code>RunAsGroup<\/code>, a ap\u0103rut \u00een <noindex><a rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/company\/flant\/blog\/415349\/\">K8s 1.11<\/a><\/noindex>) <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/kubernetes\/kubernetes\/pull\/73007\">a avansat<\/a><\/noindex> la versiunea beta (activat\u0103 implicit).<\/li>\n<li> du \u0219i find, utilizate \u00een cAdvisor, <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/kubernetes\/kubernetes\/pull\/74675\">au fost \u00eenlocuite<\/a><\/noindex> cu implement\u0103ri Go.<\/li>\n<\/ul>\n<p><\/p>\n<h2>CLI<\/h2>\n<p>\n\u00cen cli-runtime \u0219i kubectl <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/kubernetes\/kubernetes\/pull\/74140\">ad\u0103ugat<\/a><\/noindex> flagul -k pentru integrarea cu <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/kubernetes-sigs\/kustomize\"><b>kustomize<\/b><\/a><\/noindex> (de altfel, dezvoltarea sa se desf\u0103\u0219oar\u0103 acum \u00eentr-un repository separat), adic\u0103 pentru tratarea fi\u0219ierelor YAML suplimentare din directoare speciale de kustomization (detalii despre utilizarea acestora poate fi g\u0103sit\u0103 \u00een <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/kubernetes\/enhancements\/blob\/master\/keps\/sig-cli\/kustomize-file-processing-integration.md\">KEP<\/a><\/noindex>):<\/p>\n<p><img decoding=\"async\" alt=\"Kubernetes 1.14: o privire asupra principalelor nout\u0103\u021bi\" src=\"\/wp-content\/uploads\/2019\/03\/e38550cfb642d81237aad4d87b9b3386.png\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<i>Exemplu de utilizare simpl\u0103 a fi\u0219ierului <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/kubernetes-sigs\/kustomize\/blob\/master\/docs\/glossary.md#kustomization\">kustomization<\/a><\/noindex> (posibil \u0219i aplicarea mai complex\u0103 a kustomize \u00een cadrul <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/kubernetes-sigs\/kustomize\/blob\/master\/docs\/glossary.md#overlay\">overlays<\/a><\/noindex>)<\/i><\/p>\n<p>\u00cen plus:<\/p>\n<ul>\n<li> <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/kubernetes\/kubernetes\/pull\/71651\">Ad\u0103ugat<\/a><\/noindex> noua comand\u0103 <code>kubectl create cronjob<\/code>, numele s\u0103u vorbe\u0219te de la sine.<\/li>\n<li> \u00cen <code>kubectl logs<\/code> acum se poate <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/kubernetes\/kubernetes\/pull\/67573\">combina<\/a><\/noindex> flagg <code>-f<\/code> (<code>--follow<\/code> pentru streaming-ul jurnalelor) \u0219i <code>-l<\/code> (<code>--selector<\/code> pentru interogarea etichetelor).<\/li>\n<li> kubectl <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/kubernetes\/kubernetes\/pull\/72641\">am \u00eenv\u0103\u021bat<\/a><\/noindex> s\u0103 copiem fi\u0219iere, selectate folosind wildcard.<\/li>\n<li> \u00cen comanda <code>kubectl wait<\/code> <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/kubernetes\/kubernetes\/pull\/70599\">a fost ad\u0103ugat\u0103<\/a><\/noindex> steag <code>--all<\/code> pentru a selecta toate resursele din spa\u021biul de nume de tipul specificat de resurse.<\/li>\n<\/ul>\n<p><\/p>\n<h2>Altele<\/h2>\n<p>\nUrm\u0103toarele func\u021bionalit\u0103\u021bi au ob\u021binut statut stabil (GA):<\/p>\n<ul>\n<li> <noindex><a rel=\"nofollow\" href=\"https:\/\/kubernetes.io\/docs\/concepts\/workloads\/pods\/pod-lifecycle\/#pod-readiness-gate\"><code>ReadinessGate<\/code><\/a><\/noindex>, utilizat \u00een specifica\u021bia pod&#8217;ului pentru a defini condi\u021bii suplimentare luate \u00een considerare la evaluarea st\u0103rii pod&#8217;ului;<\/li>\n<li> Suport pentru pagini mari (feature gate numit <noindex><a rel=\"nofollow\" href=\"https:\/\/kubernetes.io\/docs\/tasks\/manage-hugepages\/scheduling-hugepages\/\"><code>HugePages<\/code><\/a><\/noindex>);<\/li>\n<li> <noindex><a rel=\"nofollow\" href=\"https:\/\/kubernetes.io\/docs\/concepts\/services-networking\/dns-pod-service\/#pod-s-dns-config\">CustomPodDNS<\/a><\/noindex>;<\/li>\n<li> PriorityClass API, <noindex><a rel=\"nofollow\" href=\"https:\/\/kubernetes.io\/docs\/concepts\/configuration\/pod-priority-preemption\/\">Prioritate Pod &amp; Preemptie<\/a><\/noindex>.<\/li>\n<\/ul>\n<p>\nAlte schimb\u0103ri introduse \u00een Kubernetes 1.14:<\/p>\n<ul>\n<li> Politica RBAC implicit\u0103 nu mai ofer\u0103 acces la API <code>descoperire<\/code> \u0219i <code>revizuire de acces<\/code> utilizatorilor f\u0103r\u0103 autentificare <i>(neautentificat)<\/i>.<\/li>\n<li> Suport oficial pentru CoreDNS <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/kubernetes\/kubernetes\/pull\/69940\">este asigurat<\/a><\/noindex> doar pentru Linux, a\u0219adar, atunci c\u00e2nd folosi\u021bi kubeadm pentru implementarea sa (CoreDNS) \u00een cluster, nodurile trebuie s\u0103 func\u021bioneze doar \u00een Linux (pentru aceast\u0103 restric\u021bie se folosesc nodeSelectors).<\/li>\n<li> Configurarea implicit\u0103 a CoreDNS acum <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/kubernetes\/kubernetes\/pull\/73267\">folose\u0219te<\/a><\/noindex> <noindex><a rel=\"nofollow\" href=\"https:\/\/coredns.io\/plugins\/forward\/\">plugin forward<\/a><\/noindex> \u00een loc de proxy. De asemenea, \u00een CoreDNS <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/kubernetes\/kubernetes\/pull\/74137\">a fost ad\u0103ugat\u0103<\/a><\/noindex> readinessProbe, care \u00eempiedic\u0103 echilibrarea \u00eenc\u0103rc\u0103rii asupra pod&#8217;urilor corespunz\u0103toare (nepreg\u0103tite pentru servicii).<\/li>\n<li> \u00cen kubeadm, \u00een fazele <code>init<\/code> sau <code>upload-certs<\/code>, <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/kubernetes\/kubernetes\/pull\/73907\">a devenit posibil<\/a><\/noindex> s\u0103 \u00eenc\u0103rca\u021bi certificatele necesare pentru conectarea noului control-plane la secretul kubeadm-certs (se folose\u0219te op\u021biunea <code>--experimental-upload-certs<\/code>).<\/li>\n<li> Pentru instala\u021biile Windows a fost lansat\u0103 o versiune alpha <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/kubernetes\/enhancements\/issues\/689\">suport<\/a><\/noindex> gMSA (Group Managed Service Account) \u2014 conturi speciale \u00een Active Directory, care pot fi folosite \u0219i de containere.<\/li>\n<li> Pentru GCE <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/kubernetes\/kubernetes\/pull\/70144\">s-a activat<\/a><\/noindex> criptarea mTLS \u00eentre etcd \u0219i kube-apiserver.<\/li>\n<li> Actualiz\u0103ri \u00een software-ul utilizat\/dependen\u021belor: Go 1.12.1, CSI 1.1, CoreDNS 1.3.1, suport pentru Docker 18.09 \u00een kubeadm, iar versiunea minim suportat\u0103 a API-ului Docker a devenit 1.26.<\/li>\n<\/ul>\n<p><\/p>\n<h2>P.S.<\/h2>\n<p>\nCiti\u021bi \u0219i \u00een blogul nostru:<\/p>\n<ul>\n<li> \u00ab<noindex><a rel=\"nofollow\" href=\"https:\/\/habr.com\/company\/flant\/blog\/432208\/\">Kubernetes 1.13: o privire asupra principalelor nout\u0103\u021bi<\/a><\/noindex>\u00bb;<\/li>\n<li> \u00ab<noindex><a rel=\"nofollow\" href=\"https:\/\/habr.com\/company\/flant\/blog\/424331\/\">Kubernetes 1.12: prezentare general\u0103 a principalelor nout\u0103\u021bi<\/a><\/noindex>\u00bb;<\/li>\n<li> \u00ab<noindex><a rel=\"nofollow\" href=\"https:\/\/habr.com\/company\/flant\/blog\/415349\/\">Kubernetes 1.11: prezentare general\u0103 a principalelor nout\u0103\u021bi<\/a><\/noindex>\u00bb;<\/li>\n<li> \u00ab<noindex><a rel=\"nofollow\" href=\"https:\/\/habr.com\/company\/flant\/blog\/353114\/\">Kubernetes 1.10: prezentare general\u0103 a principalelor nout\u0103\u021bi<\/a><\/noindex>\u00bb.<\/li>\n<\/ul>\n<p>Sursa: <a content=\"nofollow\" rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/company\/flant\/blog\/445196\/\">habr.com<\/a><\/p>","protected":false,"gt_translate_keys":[{"key":"rendered","format":"html"}]},"excerpt":{"rendered":"<p>\u042d\u0442\u043e\u0439 \u043d\u043e\u0447\u044c\u044e \u0441\u043e\u0441\u0442\u043e\u0438\u0442\u0441\u044f \u043e\u0447\u0435\u0440\u0435\u0434\u043d\u043e\u0439 \u0440\u0435\u043b\u0438\u0437 Kubernetes \u2014 1.14. \u041f\u043e \u0441\u043b\u043e\u0436\u0438\u0432\u0448\u0435\u0439\u0441\u044f \u0434\u043b\u044f \u043d\u0430\u0448\u0435\u0433\u043e \u0431\u043b\u043e\u0433\u0430 \u0442\u0440\u0430\u0434\u0438\u0446\u0438\u0438, \u0440\u0430\u0441\u0441\u043a\u0430\u0437\u044b\u0432\u0430\u0435\u043c \u043e \u043a\u043b\u044e\u0447\u0435\u0432\u044b\u0445 \u0438\u0437\u043c\u0435\u043d\u0435\u043d\u0438\u044f\u0445 \u0432 \u043d\u043e\u0432\u043e\u0439 \u0432\u0435\u0440\u0441\u0438\u0438 \u044d\u0442\u043e\u0433\u043e \u0437\u0430\u043c\u0435\u0447\u0430\u0442\u0435\u043b\u044c\u043d\u043e\u0433\u043e Open Source-\u043f\u0440\u043e\u0434\u0443\u043a\u0442\u0430. \u0418\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u044f, \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u043d\u0430\u044f \u0434\u043b\u044f \u043f\u043e\u0434\u0433\u043e\u0442\u043e\u0432\u043a\u0438 \u044d\u0442\u043e\u0433\u043e \u043c\u0430\u0442\u0435\u0440\u0438\u0430\u043b\u0430, \u0432\u0437\u044f\u0442\u0430 \u0438\u0437 \u0442\u0430\u0431\u043b\u0438\u0446\u044b Kubernetes enhancements tracking, CHANGELOG-1.14 \u0438 \u0441\u043e\u043e\u0432\u0435\u0442\u0441\u0442\u0432\u0443\u044e\u0449\u0438\u0445 issues, pull requests, Kubernetes Enhancement Proposals (KEP). \u041d\u0430\u0447\u043d\u0451\u043c \u0441 \u0432\u0430\u0436\u043d\u043e\u0433\u043e \u0432\u0432\u0435\u0434\u0435\u043d\u0438\u044f \u043e\u0442 SIG cluster-lifecycle: \u0434\u0438\u043d\u0430\u043c\u0438\u0447\u0435\u0441\u043a\u0438\u0435 [&hellip;]<\/p>\n","protected":false,"gt_translate_keys":[{"key":"rendered","format":"html"}]},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[],"tags":[],"class_list":["post-30272","post","type-post","status-publish","format-standard","hentry"],"aioseo_notices":[],"aioseo_head":"\n\t\t<!-- All in One SEO 5.0.2.1 - aioseo.com -->\n\t<meta name=\"description\" content=\"\u042d\u0442\u043e\u0439 \u043d\u043e\u0447\u044c\u044e\" \/>\n\t<meta name=\"robots\" content=\"max-image-preview:large\" \/>\n\t<meta name=\"author\" content=\"Yuri Gagarin\"\/>\n\t<link rel=\"canonical\" href=\"https:\/\/prohoster.info\/ro\/blog\/kubernetes-1-14-obzor-osnovnyh-novshestv\" \/>\n\t<meta name=\"generator\" content=\"All in One SEO (AIOSEO) 5.0.2.1\" \/>\n\t\t<meta property=\"og:locale\" content=\"ro_RO\" \/>\n\t\t<meta property=\"og:site_name\" content=\"ProHoster | \u041a\u0443\u043f\u0438\u0442\u044c \u043d\u0430\u0434\u0435\u0436\u043d\u044b\u0439 \u0445\u043e\u0441\u0442\u0438\u043d\u0433 \u0434\u043b\u044f \u0441\u0430\u0439\u0442\u043e\u0432 \u0441 \u0437\u0430\u0449\u0438\u0442\u043e\u0439 \u043e\u0442 DDoS, VPS VDS \u0441\u0435\u0440\u0432\u0435\u0440\u044b\" \/>\n\t\t<meta property=\"og:type\" content=\"article\" \/>\n\t\t<meta property=\"og:title\" content=\"\ud83e\udd47Kubernetes 1.14: \u043e\u0431\u0437\u043e\u0440 \u043e\u0441\u043d\u043e\u0432\u043d\u044b\u0445 \u043d\u043e\u0432\u0448\u0435\u0441\u0442\u0432 | ProHoster\" \/>\n\t\t<meta property=\"og:description\" content=\"\u042d\u0442\u043e\u0439 \u043d\u043e\u0447\u044c\u044e\" \/>\n\t\t<meta property=\"og:url\" content=\"https:\/\/prohoster.info\/ro\/blog\/kubernetes-1-14-obzor-osnovnyh-novshestv\" \/>\n\t\t<meta property=\"og:image\" content=\"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg\" \/>\n\t\t<meta property=\"og:image:secure_url\" content=\"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg\" \/>\n\t\t<meta property=\"og:image:width\" content=\"350\" \/>\n\t\t<meta property=\"og:image:height\" content=\"350\" \/>\n\t\t<meta property=\"article:published_time\" content=\"2019-10-31T18:34:36+00:00\" \/>\n\t\t<meta property=\"article:modified_time\" content=\"2019-10-31T18:34:36+00:00\" \/>\n\t\t<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/prohoster\" \/>\n\t\t<meta property=\"article:author\" content=\"https:\/\/www.facebook.com\/prohoster\" \/>\n\t\t<!-- All in One SEO -->\n\n","aioseo_head_json":{"title":"\ud83e\udd47Kubernetes 1.14: prezentare general\u0103 a principalelor nout\u0103\u021bi | ProHoster","description":"\u00cen noaptea aceasta","canonical_url":"https:\/\/prohoster.info\/ro\/blog\/kubernetes-1-14-obzor-osnovnyh-novshestv","robots":"max-image-preview:large","keywords":"","webmasterTools":{"miscellaneous":""},"schema":null,"og:locale":"ro_RO","og:site_name":"ProHoster | \u041a\u0443\u043f\u0438\u0442\u044c \u043d\u0430\u0434\u0435\u0436\u043d\u044b\u0439 \u0445\u043e\u0441\u0442\u0438\u043d\u0433 \u0434\u043b\u044f \u0441\u0430\u0439\u0442\u043e\u0432 \u0441 \u0437\u0430\u0449\u0438\u0442\u043e\u0439 \u043e\u0442 DDoS, VPS VDS \u0441\u0435\u0440\u0432\u0435\u0440\u044b","og:type":"article","og:title":"\ud83e\udd47Kubernetes 1.14: \u043e\u0431\u0437\u043e\u0440 \u043e\u0441\u043d\u043e\u0432\u043d\u044b\u0445 \u043d\u043e\u0432\u0448\u0435\u0441\u0442\u0432 | ProHoster","og:description":"\u042d\u0442\u043e\u0439 \u043d\u043e\u0447\u044c\u044e","og:url":"https:\/\/prohoster.info\/ro\/blog\/kubernetes-1-14-obzor-osnovnyh-novshestv","og:image":"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg","og:image:secure_url":"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg","og:image:width":350,"og:image:height":350,"article:published_time":"2019-10-31T18:34:36+00:00","article:modified_time":"2019-10-31T18:34:36+00:00","article:publisher":"https:\/\/www.facebook.com\/prohoster","article:author":"https:\/\/www.facebook.com\/prohoster"},"aioseo_meta_data":{"post_id":"30272","title":null,"description":null,"keywords":null,"keyphrases":null,"primary_term":null,"canonical_url":null,"og_title":null,"og_description":null,"og_object_type":"default","og_image_type":"default","og_image_url":null,"og_image_width":null,"og_image_height":null,"og_image_custom_url":null,"og_image_custom_fields":null,"og_video":null,"og_custom_url":null,"og_article_section":null,"og_article_tags":null,"twitter_use_og":false,"twitter_card":"default","twitter_image_type":"default","twitter_image_url":null,"twitter_image_custom_url":null,"twitter_image_custom_fields":null,"twitter_title":null,"twitter_description":null,"schema":{"blockGraphs":[],"customGraphs":[],"default":{"data":{"Article":[],"Course":[],"Dataset":[],"FAQPage":[],"Movie":[],"Person":[],"Product":[],"ProductReview":[],"Car":[],"Recipe":[],"Service":[],"SoftwareApplication":[],"WebPage":[]},"graphName":"Article","isEnabled":true},"graphs":[]},"schema_type":null,"schema_type_options":null,"pillar_content":false,"robots_default":true,"robots_noindex":false,"robots_noarchive":false,"robots_nosnippet":false,"robots_nofollow":false,"robots_noimageindex":false,"robots_noodp":false,"robots_notranslate":false,"robots_max_snippet":null,"robots_max_videopreview":null,"robots_max_imagepreview":"large","priority":null,"frequency":null,"local_seo":null,"seo_analyzer_scan_date":"2026-01-21 00:28:09","breadcrumb_settings":null,"limit_modified_date":false,"reviewed_by":null,"ai":null,"created":"2021-03-01 03:37:28","updated":"2026-01-21 00:28:09","focus_keyword":null,"additional_keywords":null,"truseo_locale":null},"gt_translate_keys":[{"key":"link","format":"url"}],"_links":{"self":[{"href":"https:\/\/prohoster.info\/ro\/wp-json\/wp\/v2\/posts\/30272","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/prohoster.info\/ro\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/prohoster.info\/ro\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/prohoster.info\/ro\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/prohoster.info\/ro\/wp-json\/wp\/v2\/comments?post=30272"}],"version-history":[{"count":0,"href":"https:\/\/prohoster.info\/ro\/wp-json\/wp\/v2\/posts\/30272\/revisions"}],"wp:attachment":[{"href":"https:\/\/prohoster.info\/ro\/wp-json\/wp\/v2\/media?parent=30272"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/prohoster.info\/ro\/wp-json\/wp\/v2\/categories?post=30272"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/prohoster.info\/ro\/wp-json\/wp\/v2\/tags?post=30272"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}