{"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\/it\/blog\/kubernetes-1-14-obzor-osnovnyh-novshestv","title":{"rendered":"Kubernetes 1.12: panoramica delle principali novit\u00e0","gt_translate_keys":[{"key":"rendered","format":"text"}]},"content":{"rendered":"<p><img decoding=\"async\" alt=\"Kubernetes 1.12: panoramica delle principali novit\u00e0\" src=\"\/wp-content\/uploads\/2019\/03\/8fb5be29668f55ec42d31eb47200b639.png\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nQuesta notte <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/kubernetes\/sig-release\/tree\/master\/releases\/release-1.14#timeline\">si svolger\u00e0<\/a><\/noindex> un altro rilascio di Kubernetes \u2014 <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/kubernetes\/sig-release\/tree\/master\/releases\/release-1.14\">1.14<\/a><\/noindex>. Secondo la tradizione del nostro blog, raccontiamo i cambiamenti chiave nella nuova versione di questo fantastico prodotto Open Source.<\/p>\n<p>Le informazioni utilizzate per preparare questo materiale provengono da <noindex><a rel=\"nofollow\" href=\"https:\/\/docs.google.com\/spreadsheets\/u\/1\/d\/116X6E-lmDJG5UZPlqDAFw8hN9vS6SNY4qRNZ9fKtsMU\/edit#gid=0\">tabella di tracciamento dei miglioramenti di 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> e le relative issue, pull request, Kubernetes Enhancement Proposals (KEP).<noindex><a rel=\"nofollow\" name=\"habracut\"><\/a><\/noindex><\/p>\n<p>Iniziamo con un'introduzione importante da parte di SIG cluster-lifecycle: <b>cluster dinamici a prova di guasto<\/b> Kubernetes (o, per essere pi\u00f9 precisi, deploy self-hosted HA) ora <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/kubernetes\/enhancements\/issues\/357\">pu\u00f2 essere creato<\/a><\/noindex> utilizzando i comandi familiari (nel contesto di cluster con un solo nodo) <code>kubeadm<\/code> (<code>join<\/code> e <code>upgrade<\/code>). In sintesi, per questo:<\/p>\n<ul>\n<li> i certificati utilizzati dal cluster vengono trasferiti in segreti;<\/li>\n<li> per consentire l'uso del cluster etcd all'interno del cluster K8s (cio\u00e8 eliminando la dipendenza esterna esistente) \u00e8 stato coinvolto <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/coreos\/etcd-operator\">etcd-operator<\/a><\/noindex>;<\/li>\n<li> si documentano le configurazioni consigliate per un bilanciatore di carico esterno che fornisce una configurazione a prova di guasto (in futuro \u00e8 prevista possibilit\u00e0 di liberarsi anche da questa dipendenza, ma non in questa fase).<\/li>\n<\/ul>\n<p>\n<img decoding=\"async\" alt=\"Kubernetes 1.12: panoramica delle principali novit\u00e0\" src=\"\/wp-content\/uploads\/2019\/03\/0e82b7e8db1ad117dc87f68fa4669431.png\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<i>Architettura del cluster HA di Kubernetes, creato con kubeadm<\/i><\/p>\n<p>Puoi consultare i dettagli sull'implementazione nel <noindex><a rel=\"nofollow\" href=\"https:\/\/docs.google.com\/document\/d\/1P3oUJ_kdaRSTlGONujadGBpYegjn4RjBNZLHZ4zU7lI\/edit#\">design proposal<\/a><\/noindex>. Questa funzione era veramente attesa: la versione alpha era attesa gi\u00e0 in K8s 1.9, ma \u00e8 apparsa solo ora.<\/p>\n<h2>API<\/h2>\n<p>\nTeam <code>apply<\/code> e in generale <b>gestione dichiarativa degli oggetti<\/b> <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/kubernetes\/enhancements\/issues\/555\">in un pacchetto \"<\/a><\/noindex> da <code>kubectl<\/code> nell'apiserver. Gli stessi sviluppatori spiegano brevemente la loro decisione dicendo che <code>kubectl apply<\/code> \u00e8 una parte fondamentale del lavoro con le configurazioni in Kubernetes, tuttavia \u00e8 \"piena di bug e difficile da correggere\", per cui \u00e8 necessario portare questa funzionalit\u00e0 a uno stato normale e trasferirla nel control plane. Ecco alcuni esempi semplici e evidenti dei problemi esistenti oggi:<\/p>\n<p><img decoding=\"async\" alt=\"Kubernetes 1.12: panoramica delle principali novit\u00e0\" src=\"\/wp-content\/uploads\/2019\/03\/379b0d830491bbb0e7ac3c3ccfff71c4.png\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nI dettagli sull'implementazione sono nel <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/kubernetes\/enhancements\/blob\/master\/keps\/sig-api-machinery\/0006-apply.md\">KEP<\/a><\/noindex>. L'attuale prontezza \u00e8 la versione alpha (il passaggio alla beta \u00e8 previsto per il prossimo rilascio di Kubernetes).<\/p>\n<p>Nella versione alpha \u00e8 diventato disponibile <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/kubernetes\/enhancements\/issues\/692\">la possibilit\u00e0<\/a><\/noindex> l'uso dello schema OpenAPI v3 per <b>la creazione e pubblicazione della documentazione OpenAPI per le CustomResources<\/b> (CR), utilizzate per la validazione (lato server) delle risorse K8s definite dall'utente (CustomResourceDefinition, CRD). La pubblicazione di OpenAPI per CRD consente ai clienti (ad esempio, <code>kubectl<\/code>) di eseguire la validazione sul lato loro (nell'ambito di <code>kubectl create<\/code> e <code>kubectl apply<\/code>) e fornire la documentazione dello schema (<code>kubectl explain<\/code>). I dettagli sono nel <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>I log esistenti <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/kubernetes\/kubernetes\/pull\/74837\">ora si aprono<\/a><\/noindex> con il flag <code>O_APPEND<\/code> (e non <code>O_TRUNC<\/code>) per evitare la perdita di log in alcune situazioni e per facilitare il truncate dei log da parte di utility esterne per la rotazione.<\/p>\n<p>Inoltre, nel contesto dell'API di Kubernetes, si pu\u00f2 notare che <code>PodSandbox<\/code> e <code>PodSandboxStatus<\/code> <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/kubernetes\/kubernetes\/pull\/73833\">aggiunto<\/a><\/noindex> il campo <code>runtime_handler<\/code> per considerare le informazioni su <code>RuntimeClass<\/code> nel pod (per maggiori dettagli leggi il testo su <noindex><a rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/company\/flant\/blog\/424331\/\">rilascio di Kubernetes 1.12<\/a><\/noindex>, dove questa classe \u00e8 emersa come versione alfa), e nei Webhook di ammissione <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/kubernetes\/kubernetes\/pull\/74998\">\u00e8 stata implementata<\/a><\/noindex> la possibilit\u00e0 di determinare quali versioni <code>AdmissionReview<\/code> sono supportate. Infine, nelle regole dei Webhook di ammissione ora <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/kubernetes\/kubernetes\/pull\/74477\">\u00e8 possibile limitare<\/a><\/noindex> le dimensioni del loro utilizzo nei namespace e nei limiti del cluster.<\/p>\n<h2>I volumi di storage<\/h2>\n<p>\n<noindex><a rel=\"nofollow\" href=\"https:\/\/kubernetes.io\/docs\/concepts\/storage\/volumes\/#local\"><code><b>PersistentLocalVolumes<\/b><\/code><\/a><\/noindex>, che avevano lo stato di beta dalla versione <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\">sono stati dichiarati<\/a><\/noindex> stabili (GA): questo feature gate non pu\u00f2 pi\u00f9 essere disattivato e sar\u00e0 rimosso in Kubernetes 1.17.<\/p>\n<p><noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/kubernetes\/enhancements\/issues\/559\">Capacit\u00e0<\/a><\/noindex> utilizzando variabili d'ambiente del cosiddetto <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> (ad esempio, il nome del pod) per i nomi delle directory montate come <noindex><a rel=\"nofollow\" href=\"https:\/\/kubernetes.io\/docs\/concepts\/storage\/volumes\/#using-subpath\"><code>subPath<\/code><\/a><\/noindex>, ha ricevuto sviluppo \u2014 sotto forma di un nuovo campo <code>subPathExpr<\/code>, tramite il quale ora viene determinato il nome della directory necessaria. Inizialmente, questa funzionalit\u00e0 \u00e8 apparsa in Kubernetes 1.11, ma \u00e8 rimasta in stato di versione alfa anche per 1.14.<\/p>\n<p>Come nel precedente rilascio di Kubernetes, sono state presentate molte modifiche significative per il CSI (Container Storage Interface) in continua evoluzione:<\/p>\n<h3>CSI<\/h3>\n<p>\n\u00c8 diventata disponibile (nel contesto della versione alfa) <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/kubernetes\/enhancements\/issues\/556\">highlightsFromPoint()<\/a><\/noindex> <b>il ridimensionamento dei volumi CSI<\/b>. Per utilizzarla, sar\u00e0 necessario abilitare il feature gate chiamato <code>ExpandCSIVolumes<\/code>, oltre a garantire il supporto di questa operazione in un determinato driver CSI.<\/p>\n<p>Un'altra funzionalit\u00e0 per il CSI in versione alfa \u2014 <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/kubernetes\/enhancements\/issues\/596\">la possibilit\u00e0<\/a><\/noindex> fare riferimento direttamente (cio\u00e8 senza l'uso di PV\/PVC) ai volumi CSI nell'ambito delle specifiche dei pod. Questo <b>elimina la limitazione sull'uso del CSI come esclusivamente archiviazione remota<\/b>, aprendo per loro le porte nel mondo <noindex><a rel=\"nofollow\" href=\"https:\/\/kubernetes-csi.github.io\/docs\/ephemeral-local-volumes.html\">dei volumi effimeri locali.<\/a><\/noindex>Per utilizzarlo (<noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/vladimirvivien\/kubernetes.github.io\/blob\/b78107abfdb2b5877973b84062d93cdf98ef1b9c\/content\/en\/docs\/concepts\/storage\/volumes.md#csi-ephemeral-volumes\">CASE<\/a><\/noindex>) \u00e8 necessario abilitare <code>il feature gate CSIInlineVolume.<\/code> C'\u00e8 stato un progresso anche nelle 'interno' di Kubernetes, relativo al CSI, che non \u00e8 cos\u00ec evidente per gli utenti finali (amministratori di sistema)\u2026 Attualmente, gli sviluppatori sono costretti a mantenere due versioni di ciascun plugin di storage: una 'alla vecchia maniera', all'interno della base di codice K8s (in-tree), e l'altra all'interno del nuovo CSI<\/p>\n<p>(per ulteriori dettagli, leggi ad esempio in <i>. Questo comporta inconvenienti comprensibili che devono essere risolti man mano che il CSI si stabilizza. Semplicemente dichiarare obsoleti (deprecated) le API dei plugin interni (in-tree) non \u00e8 possibile a causa di <noindex><a rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/company\/flant\/blog\/424211\/\">qui<\/a><\/noindex>)<\/i>Questo comporta inconvenienti comprensibili che devono essere risolti man mano che il CSI si stabilizza. \u00c8 semplicemente impossibile dichiarare obsoleti (deprecated) le API dei plugin interni (in-tree) per il semplice fatto che <noindex><a rel=\"nofollow\" href=\"https:\/\/kubernetes.io\/docs\/reference\/using-api\/deprecation-policy\/#deprecating-parts-of-the-api\">politiche corrispondenti di Kubernetes<\/a><\/noindex>.<\/p>\n<p>Tutto ci\u00f2 ha portato al raggiungimento delle versioni alpha <b><noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/kubernetes\/enhancements\/issues\/625\">processo di migrazione<\/a><\/noindex> codice interno dei plugin<\/b>, implementati come in-tree, nei plugin CSI, il che significa che le preoccupazioni degli sviluppatori saranno ridotte a supportare una sola versione dei loro plugin, mentre la compatibilit\u00e0 con le API vecchie sar\u00e0 mantenuta e potranno essere dichiarate deprecate secondo lo scenario abituale. Si prevede che entro il prossimo rilascio di Kubernetes (1.15) verr\u00e0 completata la migrazione di tutti i plugin dei provider cloud, e l'implementazione otterr\u00e0 lo stato di versione beta e sar\u00e0 attivata nelle installazioni K8s per impostazione predefinita. Per ulteriori dettagli, vedere <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/kubernetes\/community\/blob\/master\/contributors\/design-proposals\/storage\/csi-migration.md\">design proposal<\/a><\/noindex>. Una conseguenza di questa migrazione \u00e8 stata <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/kubernetes\/kubernetes\/pull\/74544\">la rimozione<\/a><\/noindex> la rimozione delle limitazioni per i volumi definiti da specifici provider cloud (AWS, Azure, GCE, Cinder).<\/p>\n<p>Inoltre, il supporto per i dispositivi di blocco con CSI (<code>CSIBlockVolume<\/code>) <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/kubernetes\/kubernetes\/pull\/74909\">\u00e8 stato portato<\/a><\/noindex> in versione beta.<\/p>\n<h2>Nodi \/ Kubelet<\/h2>\n<p>\n\u00c8 stata introdotta la versione alpha <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/kubernetes\/enhancements\/issues\/727\">di un nuovo endpoint<\/a><\/noindex> in Kubelet, destinato a <b>fornire metriche sui principali risorse<\/b>. In generale, prima Kubelet riceveva statistiche sull'uso dei contenitori da cAdvisor, mentre ora questi dati provengono dall'ambiente di esecuzione del contenitore tramite CRI (Container Runtime Interface), ma \u00e8 mantenuta la compatibilit\u00e0 con le vecchie versioni di Docker. In precedenza, le statistiche raccolte in Kubelet venivano fornite tramite API REST, mentre ora si utilizza un endpoint situato all'indirizzo <code>\/metrics\/resource\/v1alpha1<\/code>. La strategia a lungo termine degli sviluppatori <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/kubernetes\/kubernetes\/issues\/68522\">\u00e8 quella<\/a><\/noindex> di ridurre al minimo il set di metriche fornite da Kubelet. <i>A proposito, queste metriche stesse <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/kubernetes\/enhancements\/pull\/726\">sono ora chiamate<\/a><\/noindex> non \u201cmetriche core\u201d, ma \u201cmetriche delle risorse\u201d, e descrivono come \u201crisorse di prima classe, come CPU e memoria\u201d.<\/i><\/p>\n<p>Un aspetto interessante: nonostante il chiaro vantaggio in termini di prestazioni dell'endpoint gRPC rispetto a vari casi d'uso del formato Prometheus <i>(risultato di uno dei benchmark, vedi sotto)<\/i>, gli autori hanno preferito il formato di testo di Prometheus a causa del chiaro predominio di questo sistema di monitoraggio nella comunit\u00e0.<\/p>\n<blockquote><p><i>\u201cgRPC non \u00e8 compatibile con i principali pipeline di monitoraggio. Tuttavia, l'endpoint sar\u00e0 utile solo per fornire metriche al Metrics Server o ai componenti di monitoraggio che si integrano direttamente con esso. Utilizzando la cache nel Metrics Server, le prestazioni del formato di testo di Prometheus <b>sono abbastanza buone.<\/b> per noi, per preferire Prometheus invece di gRPC, considerando la sua ampia diffusione nella comunit\u00e0. Quando il formato OpenMetrics diventer\u00e0 pi\u00f9 stabile, potremo avvicinarci alle prestazioni di gRPC utilizzando un formato basato su proto.<\/i><\/p><\/blockquote>\n<p>\n<img decoding=\"async\" alt=\"Kubernetes 1.12: panoramica delle principali novit\u00e0\" src=\"\/wp-content\/uploads\/2019\/03\/ad7e45b61fc4676a2df3c2d33d5688b5.png\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<i>Uno dei test comparativi delle prestazioni sull'uso dei formati gRPC e Prometheus nel nuovo endpoint di Kubelet per le metriche. Maggiori grafici e altri dettagli possono essere trovati in <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>Tra le altre modifiche:<\/p>\n<ul>\n<li> Kubelet ora (una sola volta) <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/kubernetes\/kubernetes\/pull\/73802\">cerca di fermare<\/a><\/noindex> i container in stato sconosciuto (unknown) prima delle operazioni di riavvio e cancellazione.<\/li>\n<li> Quando utilizzi <noindex><a rel=\"nofollow\" href=\"https:\/\/kubernetes.io\/docs\/concepts\/workloads\/pods\/podpreset\/\"><code>PodPresets<\/code><\/a><\/noindex> ora viene aggiunta al container init <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/kubernetes\/kubernetes\/pull\/71479\">la stessa informazione che al container normale.<\/a><\/noindex> ha iniziato a utilizzare<\/li>\n<li> Kubelet <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/kubernetes\/kubernetes\/pull\/73659\">usageNanoCores<\/a><\/noindex> <code>dal provider di statistiche CRI, e per i nodi e i container in Windows<\/code> statistiche di rete. <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/kubernetes\/kubernetes\/pull\/74788\">\u00e8 stata aggiunta<\/a><\/noindex> Le informazioni sul sistema operativo e sull'architettura ora vengono registrate nelle etichette<\/li>\n<li> kubernetes.io\/os <code>kubernetes.io\/arch<\/code> e <code>degli oggetti Node (tradotto da beta a GA).<\/code> La possibilit\u00e0 di specificare un gruppo specifico di utenti del sistema per i container nel pod (<\/li>\n<li> La possibilit\u00e0 di specificare un determinato gruppo di utenti di sistema per i contenitori nel pod (<code>) \u00e8 stata introdotta in<\/code>K8s 1.11 <noindex><a rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/company\/flant\/blog\/415349\/\">ha progredito<\/a><\/noindex>) <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/kubernetes\/kubernetes\/pull\/73007\">alla versione beta (attivata per impostazione predefinita).<\/a><\/noindex> du e find, utilizzati in cAdvisor,<\/li>\n<li> sono stati sostituiti <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/kubernetes\/kubernetes\/pull\/74675\">da implementazioni in Go.<\/a><\/noindex> Nel cli-runtime e kubectl<\/li>\n<\/ul>\n<p><\/p>\n<h2>CLI<\/h2>\n<p>\nil flag -k per l'integrazione con <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/kubernetes\/kubernetes\/pull\/74140\">\u00e8 stata aggiunta<\/a><\/noindex> (tra l'altro, il suo sviluppo ora si svolge in un repository separato), cio\u00e8 per gestire file YAML aggiuntivi da directory speciali di kustomization (dettagli sul loro utilizzo possono essere found in <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/kubernetes-sigs\/kustomize\"><b>kustomize<\/b><\/a><\/noindex> Esempio di utilizzo semplice di un file <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.12: panoramica delle principali novit\u00e0\" src=\"\/wp-content\/uploads\/2019\/03\/e38550cfb642d81237aad4d87b9b3386.png\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<i>kustomization <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/kubernetes-sigs\/kustomize\/blob\/master\/docs\/glossary.md#kustomization\">(possibile anche applicazione pi\u00f9 complessa di kustomize nell'ambito di<\/a><\/noindex> nuova comando <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/kubernetes-sigs\/kustomize\/blob\/master\/docs\/glossary.md#overlay\">overlay<\/a><\/noindex>)<\/i><\/p>\n<p>Inoltre:<\/p>\n<ul>\n<li> <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/kubernetes\/kubernetes\/pull\/71651\">\u00c8 stata aggiunta<\/a><\/noindex> kubectl create cronjob <code>, il cui nome parla da s\u00e9.<\/code>unire<\/li>\n<li> In <code>kubectl logs<\/code> senza fornitori di cloud obsolete (\u00abintegrati\u00bb in albero) (versione alfa). <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/kubernetes\/kubernetes\/pull\/67573\">i flag<\/a><\/noindex> flag <code>-f<\/code> (<code>per il flusso dei log) e<\/code> --selector <code>-l<\/code> (<code>per la query delle etichette).<\/code> hanno imparato<\/li>\n<li> kubectl <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/kubernetes\/kubernetes\/pull\/72641\">a copiare file selezionati tramite wild card.<\/a><\/noindex> kubectl wait<\/li>\n<li> Nel team <code>--all<\/code> <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/kubernetes\/kubernetes\/pull\/70599\">hanno aggiunto<\/a><\/noindex> flag <code>per selezionare tutte le risorse nello spazio dei nomi di un determinato tipo di risorse.<\/code> Le seguenti funzionalit\u00e0 hanno ricevuto uno stato stabile (GA):<\/li>\n<\/ul>\n<p><\/p>\n<h2>Altri<\/h2>\n<p>\nReadinessGate<\/p>\n<ul>\n<li> <noindex><a rel=\"nofollow\" href=\"https:\/\/kubernetes.io\/docs\/concepts\/workloads\/pods\/pod-lifecycle\/#pod-readiness-gate\"><code>, utilizzato nella specifica del pod per definire condizioni aggiuntive considerate nella prontezza del pod;<\/code><\/a><\/noindex>, utilizzato nella specifica del pod per definire ulteriori condizioni considerate nella prontezza del pod;<\/li>\n<li> HugePages <noindex><a rel=\"nofollow\" href=\"https:\/\/kubernetes.io\/docs\/tasks\/manage-hugepages\/scheduling-hugepages\/\"><code>CustomPodDNS<\/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\">PriorityClass API,<\/a><\/noindex>;<\/li>\n<li> Pod Priority &amp; Preemption <noindex><a rel=\"nofollow\" href=\"https:\/\/kubernetes.io\/docs\/concepts\/configuration\/pod-priority-preemption\/\">Altre modifiche presentate in Kubernetes 1.14:<\/a><\/noindex>.<\/li>\n<\/ul>\n<p>\nLa politica RBAC predefinita non concede pi\u00f9 accesso all'API<\/p>\n<ul>\n<li> discovery <code>access-review<\/code> e <code>agli utenti non autenticati<\/code> (unauthenticated) <i>Il supporto ufficiale per CoreDNS<\/i>.<\/li>\n<li> \u00e8 garantito <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/kubernetes\/kubernetes\/pull\/69940\">\u00e8 garantito<\/a><\/noindex> solo per Linux, quindi quando si utilizza kubeadm per il suo (CoreDNS) deployment nel cluster, i nodi devono funzionare solo in Linux (per questo si utilizzano i nodeSelectors).<\/li>\n<li> La configurazione di CoreDNS predefinita ora <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/kubernetes\/kubernetes\/pull\/73267\">utilizza<\/a><\/noindex> <noindex><a rel=\"nofollow\" href=\"https:\/\/coredns.io\/plugins\/forward\/\">plugin forward<\/a><\/noindex> invece di proxy. Inoltre, in CoreDNS <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/kubernetes\/kubernetes\/pull\/74137\">\u00e8 stata aggiunta<\/a><\/noindex> readinessProbe, che impedisce il bilanciamento del carico sui pod corrispondenti (non pronti per il servizio).<\/li>\n<li> In kubeadm, nelle fasi <code>join<\/code> o <code>upload-certs<\/code>, <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/kubernetes\/kubernetes\/pull\/73907\">\u00e8 diventato possibile<\/a><\/noindex> caricare i certificati necessari per connettere un nuovo control-plane al segreto kubeadm-certs (si usa il flag <code>--experimental-upload-certs<\/code>).<\/li>\n<li> Per le installazioni Windows \u00e8 disponibile una versione alpha <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/kubernetes\/enhancements\/issues\/689\">supporto<\/a><\/noindex> gMSA (Group Managed Service Account) - conti speciali in Active Directory, che possono essere utilizzati anche dai container.<\/li>\n<li> Per GCE <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/kubernetes\/kubernetes\/pull\/70144\">\u00e8 stato attivato<\/a><\/noindex> la crittografia mTLS tra etcd e kube-apiserver.<\/li>\n<li> Aggiornamenti nei software utilizzati\/dipendenti: Go 1.12.1, CSI 1.1, CoreDNS 1.3.1, supporto Docker 18.09 in kubeadm, e la versione minima supportata dell'API Docker \u00e8 diventata 1.26.<\/li>\n<\/ul>\n<p><\/p>\n<h2>P.S.<\/h2>\n<p>\nLeggi anche nel nostro blog:<\/p>\n<ul>\n<li> \u00ab<noindex><a rel=\"nofollow\" href=\"https:\/\/habr.com\/company\/flant\/blog\/432208\/\">Introduzione a Kustomize<\/a><\/noindex>\u00bb;<\/li>\n<li> \u00ab<noindex><a rel=\"nofollow\" href=\"https:\/\/habr.com\/company\/flant\/blog\/424331\/\">\ud83e\udd47Kubernetes 1.16: panoramica delle principali novit\u00e0 | ProHoster<\/a><\/noindex>\u00bb;<\/li>\n<li> \u00ab<noindex><a rel=\"nofollow\" href=\"https:\/\/habr.com\/company\/flant\/blog\/415349\/\">Kubernetes 1.11: panoramica delle principali novit\u00e0<\/a><\/noindex>\u00bb;<\/li>\n<li> \u00ab<noindex><a rel=\"nofollow\" href=\"https:\/\/habr.com\/company\/flant\/blog\/353114\/\">Kubernetes 1.10: panoramica delle principali novit\u00e0<\/a><\/noindex>\u00bb.<\/li>\n<\/ul>\n<p>Fonte: <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.1.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\/it\/blog\/kubernetes-1-14-obzor-osnovnyh-novshestv\" \/>\n\t<meta name=\"generator\" content=\"All in One SEO (AIOSEO) 5.0.1.1\" \/>\n\t\t<meta property=\"og:locale\" content=\"it_IT\" \/>\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\/it\/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: panoramica delle principali novit\u00e0 | ProHoster","description":"Questa notte","canonical_url":"https:\/\/prohoster.info\/it\/blog\/kubernetes-1-14-obzor-osnovnyh-novshestv","robots":"max-image-preview:large","keywords":"","webmasterTools":{"miscellaneous":""},"schema":null,"og:locale":"it_IT","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\/it\/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\/it\/wp-json\/wp\/v2\/posts\/30272","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/prohoster.info\/it\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/prohoster.info\/it\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/prohoster.info\/it\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/prohoster.info\/it\/wp-json\/wp\/v2\/comments?post=30272"}],"version-history":[{"count":0,"href":"https:\/\/prohoster.info\/it\/wp-json\/wp\/v2\/posts\/30272\/revisions"}],"wp:attachment":[{"href":"https:\/\/prohoster.info\/it\/wp-json\/wp\/v2\/media?parent=30272"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/prohoster.info\/it\/wp-json\/wp\/v2\/categories?post=30272"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/prohoster.info\/it\/wp-json\/wp\/v2\/tags?post=30272"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}