{"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\/fr\/blog\/kubernetes-1-14-obzor-osnovnyh-novshestv","title":{"rendered":"Kubernetes 1.13 : aper\u00e7u des principales nouveaut\u00e9s","gt_translate_keys":[{"key":"rendered","format":"text"}]},"content":{"rendered":"<p><img decoding=\"async\" alt=\"Kubernetes 1.13 : aper\u00e7u des principales nouveaut\u00e9s\" src=\"\/wp-content\/uploads\/2019\/03\/8fb5be29668f55ec42d31eb47200b639.png\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nCette nuit <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/kubernetes\/sig-release\/tree\/master\/releases\/release-1.14#timeline\">aura lieu<\/a><\/noindex> un autre lancement de Kubernetes \u2014 <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/kubernetes\/sig-release\/tree\/master\/releases\/release-1.14\">1.14<\/a><\/noindex>. Conform\u00e9ment \u00e0 la tradition de notre blog, nous allons vous parler des changements cl\u00e9s dans cette nouvelle version de ce merveilleux produit Open Source.<\/p>\n<p>Les informations utilis\u00e9es pour pr\u00e9parer ce mat\u00e9riel proviennent de <noindex><a rel=\"nofollow\" href=\"https:\/\/docs.google.com\/spreadsheets\/u\/1\/d\/116X6E-lmDJG5UZPlqDAFw8hN9vS6SNY4qRNZ9fKtsMU\/edit#gid=0\">la table de suivi des am\u00e9liorations de 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> et des probl\u00e8mes, demandes de tirage, Propositions d'Am\u00e9lioration Kubernetes (KEP) associ\u00e9es.<noindex><a rel=\"nofollow\" name=\"habracut\"><\/a><\/noindex><\/p>\n<p>Commen\u00e7ons par une introduction importante de SIG cluster-lifecycle : <b>des clusters hautement disponibles et dynamiques<\/b> Kubernetes (ou, pour \u00eatre plus pr\u00e9cis, les d\u00e9ploiements HA auto-h\u00e9berg\u00e9s) peuvent maintenant <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/kubernetes\/enhancements\/issues\/357\">\u00eatre cr\u00e9\u00e9s<\/a><\/noindex> \u00e0 l'aide des commandes famili\u00e8res (dans le contexte des clusters \u00e0 un seul n\u0153ud) <code>kubeadm<\/code> (<code>init<\/code> et <code>joindre<\/code>). En r\u00e9sum\u00e9, pour ce faire :<\/p>\n<ul>\n<li> les certificats utilis\u00e9s par le cluster sont transf\u00e9r\u00e9s dans des secrets ;<\/li>\n<li> afin de permettre l'utilisation d'etcd \u00e0 l'int\u00e9rieur du cluster K8s (c'est-\u00e0-dire de se d\u00e9barrasser de la d\u00e9pendance externe qui existait), <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/coreos\/etcd-operator\">un etcd-operator<\/a><\/noindex>;<\/li>\n<li> les param\u00e8tres recommand\u00e9s pour le r\u00e9partiteur de charge externe, garantissant une configuration hautement disponible, sont document\u00e9s (il est pr\u00e9vu de pouvoir \u00e9galement se passer de cette d\u00e9pendance plus tard, mais pas \u00e0 ce stade).<\/li>\n<\/ul>\n<p>\n<img decoding=\"async\" alt=\"Kubernetes 1.13 : aper\u00e7u des principales nouveaut\u00e9s\" src=\"\/wp-content\/uploads\/2019\/03\/0e82b7e8db1ad117dc87f68fa4669431.png\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<i>L'architecture du cluster Kubernetes HA, cr\u00e9\u00e9e avec kubeadm<\/i><\/p>\n<p>Pour plus de d\u00e9tails sur la mise en \u0153uvre, vous pouvez consulter <noindex><a rel=\"nofollow\" href=\"https:\/\/docs.google.com\/document\/d\/1P3oUJ_kdaRSTlGONujadGBpYegjn4RjBNZLHZ4zU7lI\/edit#\">la proposition de design<\/a><\/noindex>. Cette fonctionnalit\u00e9 \u00e9tait tr\u00e8s attendue : la version alpha \u00e9tait attendue d\u00e9j\u00e0 dans K8s 1.9, mais n'est arriv\u00e9e qu'\u00e0 pr\u00e9sent.<\/p>\n<h2>API<\/h2>\n<p>\nCommande <code>appliquer<\/code> et en g\u00e9n\u00e9ral <b>la gestion d\u00e9clarative des objets<\/b> <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/kubernetes\/enhancements\/issues\/555\">a \u00e9t\u00e9 d\u00e9plac\u00e9e<\/a><\/noindex> de <code>kubectl<\/code> dans apiserver. Les d\u00e9veloppeurs eux-m\u00eames expliquent bri\u00e8vement leur d\u00e9cision en disant que <code>kubectl apply<\/code> est une partie fondamentale du travail avec les configurations dans Kubernetes, mais qu'elle \"est pleine de bogues et difficile \u00e0 corriger\", c'est pourquoi cette fonctionnalit\u00e9 doit \u00eatre mise en conformit\u00e9 et d\u00e9plac\u00e9e dans le plan de contr\u00f4le. Des exemples simples et \u00e9vidents des probl\u00e8mes existants aujourd'hui :<\/p>\n<p><img decoding=\"async\" alt=\"Kubernetes 1.13 : aper\u00e7u des principales nouveaut\u00e9s\" src=\"\/wp-content\/uploads\/2019\/03\/379b0d830491bbb0e7ac3c3ccfff71c4.png\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nLes d\u00e9tails de la mise en \u0153uvre \u2014 dans <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/kubernetes\/enhancements\/blob\/master\/keps\/sig-api-machinery\/0006-apply.md\">KEP<\/a><\/noindex>. L'\u00e9tat actuel \u2014 version alpha (la promotion vers la b\u00eata est pr\u00e9vue pour la prochaine version de Kubernetes).<\/p>\n<p>Dans la version alpha, il est devenu possible <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/kubernetes\/enhancements\/issues\/692\">la possibilit\u00e9<\/a><\/noindex> d'utiliser le sch\u00e9ma OpenAPI v3 pour <b>cr\u00e9er et publier de la documentation OpenAPI sur les CustomResources<\/b> (CR), utilis\u00e9s pour valider (c\u00f4t\u00e9 serveur) les ressources K8s d\u00e9finies par l'utilisateur (CustomResourceDefinition, CRD). La publication d'OpenAPI pour les CRD permet aux clients (par exemple, <code>kubectl<\/code>) d'effectuer une validation de leur c\u00f4t\u00e9 (dans le cadre de <code>kubectl create<\/code> et <code>kubectl apply<\/code>) et de g\u00e9n\u00e9rer de la documentation sur le sch\u00e9ma (<code>kubectl explain<\/code>). Les d\u00e9tails \u2014 dans <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>Les journaux pr\u00e9c\u00e9demment existants <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/kubernetes\/kubernetes\/pull\/74837\">sont d\u00e9sormais disponibles<\/a><\/noindex> avec le drapeau <code>O_APPEND<\/code> (et non pas <code>O_TRUNC<\/code>) pour \u00e9viter la perte de journaux dans certaines situations et pour faciliter la truncation des journaux par des utilitaires externes de rotation.<\/p>\n<p>Dans le contexte de l'API Kubernetes, il est \u00e9galement important de noter que dans <code>PodSandbox<\/code> et <code>PodSandboxStatus<\/code> <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/kubernetes\/kubernetes\/pull\/73833\">ajout\u00e9<\/a><\/noindex> le champ <code>runtime_handler<\/code> pour prendre en compte les informations concernant <code>RuntimeClass<\/code> dans le pod (pour en savoir plus, consultez le texte sur <noindex><a rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/company\/flant\/blog\/424331\/\">la version 1.12 de Kubernetes<\/a><\/noindex>, o\u00f9 cette classe est apparue en tant que version alpha), et dans Admission Webhooks <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/kubernetes\/kubernetes\/pull\/74998\">r\u00e9alis\u00e9e<\/a><\/noindex> la possibilit\u00e9 de d\u00e9finir quelles versions <code>AdmissionReview<\/code> elles supportent. Enfin, dans les r\u00e8gles d'Admission Webhooks, il est d\u00e9sormais possible de limiter <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/kubernetes\/kubernetes\/pull\/74477\">l'ampleur de leur application aux namespaces et aux limites du cluster.<\/a><\/noindex> les \u00e9chelles de leur utilisation avec les namespaces et les limites du cluster.<\/p>\n<h2>, qui avaient le statut de version b\u00eata depuis la version<\/h2>\n<p>\n<noindex><a rel=\"nofollow\" href=\"https:\/\/kubernetes.io\/docs\/concepts\/storage\/volumes\/#local\"><code><b>PersistentLocalVolumes<\/b><\/code><\/a><\/noindex>K8s 1.10 <noindex><a rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/company\/flant\/blog\/353114\/\">sont maintenant<\/a><\/noindex>, <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/kubernetes\/kubernetes\/pull\/74769\">d\u00e9clar\u00e9s<\/a><\/noindex> stables (GA) : ce gate de fonctionnalit\u00e9 ne sera plus d\u00e9sactiv\u00e9 et sera supprim\u00e9 dans Kubernetes 1.17.<\/p>\n<p><noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/kubernetes\/enhancements\/issues\/559\">Possibilit\u00e9<\/a><\/noindex> l'utilisation de variables d'environnement appel\u00e9es <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> (par exemple, le nom du pod) pour les noms de r\u00e9pertoires mont\u00e9s comme <noindex><a rel=\"nofollow\" href=\"https:\/\/kubernetes.io\/docs\/concepts\/storage\/volumes\/#using-subpath\"><code>subPath<\/code><\/a><\/noindex>, a \u00e9volu\u00e9 \u2014 via un nouveau champ <code>subPathExpr<\/code>, qui d\u00e9termine d\u00e9sormais le nom requis du r\u00e9pertoire. \u00c0 l'origine, cette fonctionnalit\u00e9 est apparue dans Kubernetes 1.11, mais elle est rest\u00e9e en version alpha pour 1.14.<\/p>\n<p>Comme dans la pr\u00e9c\u00e9dente version de Kubernetes, de nombreux changements significatifs ont \u00e9t\u00e9 apport\u00e9s au CSI (Container Storage Interface) en pleine \u00e9volution :<\/p>\n<h3>CSI<\/h3>\n<p>\nLa possibilit\u00e9 de redimensionner les volumes CSI est devenue disponible (dans le cadre de la version alpha) <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/kubernetes\/enhancements\/issues\/556\">la prise en charge<\/a><\/noindex> <b>. Pour l'utiliser, il sera n\u00e9cessaire d'activer le gate de fonctionnalit\u00e9 appel\u00e9<\/b>ExpandCSIVolumes <code>, ainsi que d'avoir le support de cette op\u00e9ration dans le driver CSI sp\u00e9cifique.<\/code>Une autre fonctionnalit\u00e9 pour le CSI en version alpha \u2014<\/p>\n<p>citer directement (c'est-\u00e0-dire sans utiliser de PV\/PVC) des volumes CSI dans la sp\u00e9cification des pods. Cela <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/kubernetes\/enhancements\/issues\/596\">la possibilit\u00e9<\/a><\/noindex> faire r\u00e9f\u00e9rence directement (c\u2019est-\u00e0-dire sans utiliser PV\/PVC) aux volumes CSI dans le cadre des sp\u00e9cifications des pods. C'est <b>, ouvrant ainsi pour eux les portes du monde<\/b>des volumes \u00e9ph\u00e9m\u00e8res locaux. <noindex><a rel=\"nofollow\" href=\"https:\/\/kubernetes-csi.github.io\/docs\/ephemeral-local-volumes.html\">Pour l'utiliser (<\/a><\/noindex>) vous devez activer<noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/vladimirvivien\/kubernetes.github.io\/blob\/b78107abfdb2b5877973b84062d93cdf98ef1b9c\/content\/en\/docs\/concepts\/storage\/volumes.md#csi-ephemeral-volumes\">exemple de la documentation<\/a><\/noindex>le gate de fonctionnalit\u00e9 <code>CSIInlineVolume.<\/code> Des progr\u00e8s ont \u00e9galement \u00e9t\u00e9 r\u00e9alis\u00e9s dans les \u2018int\u00e9rieurs\u2019 de Kubernetes li\u00e9s au CSI, qui ne sont pas tr\u00e8s visibles pour les utilisateurs finaux (administrateurs syst\u00e8me)... Actuellement, les d\u00e9veloppeurs doivent maintenir deux versions de chaque plugin de stockage : l'une \u2014 '\u00e0 l'ancienne', dans la base de code K8s (in-tree), et l'autre \u2014 dans le cadre du nouveau CSI<\/p>\n<p>(pour en savoir plus, lisez par exemple, dans <i>. Cela engendre des d\u00e9sagr\u00e9ments compr\u00e9hensibles qui doivent \u00eatre r\u00e9solus \u00e0 mesure que le CSI se stabilise en tant que tel. Il n'est pas possible de simplement d\u00e9clarer obsol\u00e8tes (deprecated) les API des plugins internes (in-tree) en raison de <noindex><a rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/company\/flant\/blog\/424211\/\">ici<\/a><\/noindex>)<\/i>. Cela entra\u00eene des inconv\u00e9nients compr\u00e9hensibles qui doivent \u00eatre corrig\u00e9s \u00e0 mesure que le CSI en tant que tel se stabilise. Il n'est pas possible de d\u00e9clarer simplement les API des plugins internes (in-tree) obsol\u00e8tes (deprecated) en raison de <noindex><a rel=\"nofollow\" href=\"https:\/\/kubernetes.io\/docs\/reference\/using-api\/deprecation-policy\/#deprecating-parts-of-the-api\">la politique correspondante de Kubernetes<\/a><\/noindex>.<\/p>\n<p>Tout cela a conduit \u00e0 ce que les versions alpha atteignent <b><noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/kubernetes\/enhancements\/issues\/625\">le processus de migration<\/a><\/noindex> du code interne des plugins<\/b>, mis en \u0153uvre sous forme d'in-tree, dans les plugins CSI, ce qui signifie que les pr\u00e9occupations des d\u00e9veloppeurs seront r\u00e9duites \u00e0 la prise en charge d'une seule version de leurs plugins, tout en maintenant la compatibilit\u00e9 avec les anciennes API, qui pourront \u00eatre d\u00e9clar\u00e9es obsol\u00e8tes selon le sc\u00e9nario habituel. La migration de tous les plugins des fournisseurs de cloud devrait \u00eatre r\u00e9alis\u00e9e d'ici la prochaine version de Kubernetes (1.15), cette mise en \u0153uvre obtiendra le statut b\u00eata et sera activ\u00e9e par d\u00e9faut dans les installations K8s. Plus de d\u00e9tails peuvent \u00eatre trouv\u00e9s dans <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/kubernetes\/community\/blob\/master\/contributors\/design-proposals\/storage\/csi-migration.md\">la proposition de design<\/a><\/noindex>. L'une des cons\u00e9quences de cette migration a \u00e9galement \u00e9t\u00e9 <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/kubernetes\/kubernetes\/pull\/74544\">la suppression<\/a><\/noindex> la lev\u00e9e des restrictions sur les volumes d\u00e9termin\u00e9s par des fournisseurs cloud sp\u00e9cifiques (AWS, Azure, GCE, Cinder).<\/p>\n<p>De plus, le support des dispositifs de blocs avec CSI (<code>CSIBlockVolume<\/code>) <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/kubernetes\/kubernetes\/pull\/74909\">r\u00e9duit<\/a><\/noindex> \u00e0 la version b\u00eata.<\/p>\n<h2>N\u0153uds \/ Kubelet<\/h2>\n<p>\nUne version alpha de <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/kubernetes\/enhancements\/issues\/727\">nouveau point de terminaison<\/a><\/noindex> dans Kubelet, destin\u00e9e \u00e0 <b>fournir des m\u00e9triques sur les ressources principales<\/b>. En g\u00e9n\u00e9ral, alors qu'auparavant Kubelet obtenait des statistiques d'utilisation des conteneurs \u00e0 partir de cAdvisor, ces donn\u00e9es proviennent maintenant de l'environnement d'ex\u00e9cution du conteneur via le CRI (Container Runtime Interface), bien que la compatibilit\u00e9 avec les anciennes versions de Docker soit maintenue. Auparavant, les statistiques collect\u00e9es dans Kubelet \u00e9taient fournies via l'API REST, tandis qu'\u00e0 pr\u00e9sent, un point de terminaison est utilis\u00e9 pour cela, situ\u00e9 \u00e0 l'adresse <code>\/metrics\/resource\/v1alpha1<\/code>. La strat\u00e9gie \u00e0 long terme des d\u00e9veloppeurs <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/kubernetes\/kubernetes\/issues\/68522\">vise<\/a><\/noindex> \u00e0 minimiser l'ensemble des m\u00e9triques fournies par Kubelet. <i>\u00c0 propos, ces m\u00e9triques <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/kubernetes\/enhancements\/pull\/726\">sont d\u00e9sormais appel\u00e9es<\/a><\/noindex> non pas \u00abm\u00e9triques de base\u00bb, mais \u00abm\u00e9triques de ressources\u00bb, et d\u00e9crivent des \u00abressources de premi\u00e8re classe, telles que le CPU et la m\u00e9moire\u00bb.<\/i><\/p>\n<p>Un point tr\u00e8s int\u00e9ressant : malgr\u00e9 l'avantage \u00e9vident en termes de performances du point de terminaison gRPC par rapport \u00e0 divers cas d'utilisation du format Prometheus <i>(r\u00e9sultat de l'un des benchmarks, voir ci-dessous)<\/i>, les auteurs ont pr\u00e9f\u00e9r\u00e9 le format texte de Prometheus en raison du leadership \u00e9vident de ce syst\u00e8me de surveillance dans la communaut\u00e9.<\/p>\n<blockquote><p><i>\u00abgRPC n'est pas compatible avec les pipelines de surveillance principaux. Le point de terminaison ne sera utile que pour la livraison de m\u00e9triques au Metrics Server ou aux composants de surveillance qui s'int\u00e8grent directement avec lui. Lors de l'utilisation du cache dans le Metrics Server, les performances du format texte de Prometheus <b>sont plut\u00f4t bonnes.<\/b> pour nous, il est pr\u00e9f\u00e9rable de choisir Prometheus plut\u00f4t que gRPC, compte tenu de la large adoption de Prometheus dans la communaut\u00e9. Lorsque le format OpenMetrics sera plus stable, nous pourrons atteindre des performances similaires \u00e0 celles de gRPC gr\u00e2ce \u00e0 un format bas\u00e9 sur proto.<\/i><\/p><\/blockquote>\n<p>\n<img decoding=\"async\" alt=\"Kubernetes 1.13 : aper\u00e7u des principales nouveaut\u00e9s\" src=\"\/wp-content\/uploads\/2019\/03\/ad7e45b61fc4676a2df3c2d33d5688b5.png\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<i>L'un des tests comparatifs de performance de l'utilisation des formats gRPC et Prometheus dans le nouvel endpoint Kubelet pour les m\u00e9triques. Plus de graphiques et d'autres d\u00e9tails peuvent \u00eatre trouv\u00e9s dans <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>Parmi d'autres changements :<\/p>\n<ul>\n<li> Kubelet essaie maintenant (une seule fois) <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/kubernetes\/kubernetes\/pull\/73802\">d'arr\u00eater<\/a><\/noindex> les conteneurs dans un \u00e9tat inconnu (unknown) avant les op\u00e9rations de red\u00e9marrage et de suppression.<\/li>\n<li> Lorsque vous utilisez <noindex><a rel=\"nofollow\" href=\"https:\/\/kubernetes.io\/docs\/concepts\/workloads\/pods\/podpreset\/\"><code>PodPresets<\/code><\/a><\/noindex> est maintenant ajout\u00e9 \u00e0 l'init-container <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/kubernetes\/kubernetes\/pull\/71479\">la m\u00eame information que pour le conteneur ordinaire.<\/a><\/noindex> a commenc\u00e9 \u00e0 utiliser<\/li>\n<li> Kubelet <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/kubernetes\/kubernetes\/pull\/73659\">usageNanoCores<\/a><\/noindex> <code>du fournisseur de statistiques CRI, et pour les n\u0153uds et conteneurs sous Windows<\/code> les statistiques r\u00e9seau. <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/kubernetes\/kubernetes\/pull\/74788\">ajout\u00e9<\/a><\/noindex> Les informations sur le syst\u00e8me d'exploitation et l'architecture sont d\u00e9sormais enregistr\u00e9es dans les labels<\/li>\n<li> kubernetes.io\/os <code>kubernetes.io\/arch<\/code> et <code>des objets Node (transf\u00e9r\u00e9 de la b\u00eata en GA).<\/code> La possibilit\u00e9 de sp\u00e9cifier un groupe d'utilisateurs syst\u00e8me sp\u00e9cifique pour les conteneurs dans un pod (<\/li>\n<li> La possibilit\u00e9 de sp\u00e9cifier un groupe syst\u00e8me d'utilisateurs particulier pour les conteneurs dans le pod (<code>) est apparue dans<\/code>K8s 1.11 <noindex><a rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/company\/flant\/blog\/415349\/\">est pass\u00e9<\/a><\/noindex>) <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/kubernetes\/kubernetes\/pull\/73007\">en version b\u00eata (activ\u00e9 par d\u00e9faut).<\/a><\/noindex> du et find, utilis\u00e9s dans cAdvisor,<\/li>\n<li> ont \u00e9t\u00e9 remplac\u00e9s <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/kubernetes\/kubernetes\/pull\/74675\">par des impl\u00e9mentations en Go.<\/a><\/noindex> Dans cli-runtime et kubectl<\/li>\n<\/ul>\n<p><\/p>\n<h2>CLI<\/h2>\n<p>\nle drapeau -k pour l'int\u00e9gration avec <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/kubernetes\/kubernetes\/pull\/74140\">ajout\u00e9<\/a><\/noindex> (d'ailleurs, son d\u00e9veloppement est maintenant r\u00e9alis\u00e9 dans un r\u00e9f\u00e9rentiel s\u00e9par\u00e9), c'est-\u00e0-dire pour le traitement de fichiers YAML suppl\u00e9mentaires \u00e0 partir de r\u00e9pertoires de kustomization sp\u00e9ciaux (voir les d\u00e9tails de leur utilisation <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/kubernetes-sigs\/kustomize\"><b>kustomize<\/b><\/a><\/noindex> Exemple d'utilisation simple d'un fichier <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.13 : aper\u00e7u des principales nouveaut\u00e9s\" 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\">(une application potentiellement plus complexe de kustomize dans le cadre de<\/a><\/noindex> overlays <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/kubernetes-sigs\/kustomize\/blob\/master\/docs\/glossary.md#overlay\">la nouvelle commande<\/a><\/noindex>)<\/i><\/p>\n<p>En outre :<\/p>\n<ul>\n<li> <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/kubernetes\/kubernetes\/pull\/71651\">Ajout\u00e9<\/a><\/noindex> kubectl create cronjob <code>, dont le nom parle de lui-m\u00eame.<\/code>combinent<\/li>\n<li> Dans <code>kubectl logs<\/code> est maintenant possible <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/kubernetes\/kubernetes\/pull\/67573\">--follow<\/a><\/noindex> drapeaux <code>-f<\/code> (<code>pour le streaming des logs) et<\/code> --selector <code>-l<\/code> (<code>pour la requ\u00eate des labels).<\/code> ont \u00e9t\u00e9 apprises<\/li>\n<li> kubectl <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/kubernetes\/kubernetes\/pull\/72641\">\u00e0 copier des fichiers s\u00e9lectionn\u00e9s \u00e0 l'aide de caract\u00e8res g\u00e9n\u00e9riques.<\/a><\/noindex> Dans la commande<\/li>\n<li> kubectl wait <code>--all<\/code> <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/kubernetes\/kubernetes\/pull\/70599\">ont ajout\u00e9<\/a><\/noindex> drapeau <code>pour s\u00e9lectionner toutes les ressources du type de ressource sp\u00e9cifi\u00e9 dans l'espace de noms.<\/code> Les fonctionnalit\u00e9s suivantes ont obtenu un statut stable (GA) :<\/li>\n<\/ul>\n<p><\/p>\n<h2>Autres<\/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>, utilis\u00e9 dans la sp\u00e9cification du pod pour d\u00e9finir des conditions suppl\u00e9mentaires prises en compte dans la disponibilit\u00e9 du pod ;<\/code><\/a><\/noindex>, utilis\u00e9 dans la sp\u00e9cification du pod pour d\u00e9finir des conditions suppl\u00e9mentaires prises en compte dans la disponibilit\u00e9 du 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\/\">D'autres changements introduits dans Kubernetes 1.14 :<\/a><\/noindex>.<\/li>\n<\/ul>\n<p>\nLa strat\u00e9gie RBAC par d\u00e9faut ne donne plus acc\u00e8s \u00e0 l'API<\/p>\n<ul>\n<li> discovery <code>access-review<\/code> et <code>aux utilisateurs sans authentification<\/code> (unauthenticated) <i>Le support officiel de CoreDNS<\/i>.<\/li>\n<li> est assur\u00e9. <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/kubernetes\/kubernetes\/pull\/69940\">est fourni<\/a><\/noindex> uniquement pour Linux, donc lors de l'utilisation de kubeadm pour son d\u00e9ploiement (CoreDNS) dans le cluster, les n\u0153uds doivent fonctionner uniquement sous Linux (des nodeSelectors sont utilis\u00e9s pour cette restriction).<\/li>\n<li> La configuration par d\u00e9faut de CoreDNS est maintenant <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/kubernetes\/kubernetes\/pull\/73267\">utilise<\/a><\/noindex> <noindex><a rel=\"nofollow\" href=\"https:\/\/coredns.io\/plugins\/forward\/\">le plugin forward<\/a><\/noindex> au lieu de proxy. De plus, dans CoreDNS <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/kubernetes\/kubernetes\/pull\/74137\">ajout\u00e9<\/a><\/noindex> readinessProbe, emp\u00eachant la r\u00e9partition de la charge sur les pods correspondants (non pr\u00eats \u00e0 \u00eatre servis).<\/li>\n<li> Dans kubeadm, aux \u00e9tapes <code>init<\/code> ou <code>upload-certs<\/code>, <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/kubernetes\/kubernetes\/pull\/73907\">il est devenu possible<\/a><\/noindex> de t\u00e9l\u00e9charger les certificats n\u00e9cessaires pour connecter un nouveau control-plane au secret kubeadm-certs (le drapeau est utilis\u00e9 <code>--experimental-upload-certs<\/code>).<\/li>\n<li> Pour les installations Windows, une version alpha est apparue <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/kubernetes\/enhancements\/issues\/689\">le support<\/a><\/noindex> gMSA (Group Managed Service Account) \u2014 des comptes sp\u00e9ciaux dans Active Directory, qui peuvent \u00eatre utilis\u00e9s par les conteneurs.<\/li>\n<li> Pour GCE <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/kubernetes\/kubernetes\/pull\/70144\">mTLS-cryptage entre etcd et kube-apiserver a \u00e9t\u00e9 activ\u00e9.<\/a><\/noindex> Mises \u00e0 jour des logiciels utilis\u00e9s\/d\u00e9pendants : Go 1.12.1, CSI 1.1, CoreDNS 1.3.1, prise en charge de Docker 18.09 dans kubeadm, et la version minimale prise en charge de l'API Docker est devenue 1.26.<\/li>\n<li> Kubernetes 1.11 : aper\u00e7u des principales nouveaut\u00e9s<\/li>\n<\/ul>\n<p><\/p>\n<h2>P.S.<\/h2>\n<p>\nLisez aussi dans notre blog :<\/p>\n<ul>\n<li> \u00ab<noindex><a rel=\"nofollow\" href=\"https:\/\/habr.com\/company\/flant\/blog\/432208\/\">Kubernetes 1.12 : aper\u00e7u des principales nouveaut\u00e9s<\/a><\/noindex>\u00bb;<\/li>\n<li> \u00ab<noindex><a rel=\"nofollow\" href=\"https:\/\/habr.com\/company\/flant\/blog\/424331\/\">De minuscules images Docker qui croyaient en elles*<\/a><\/noindex>\u00bb;<\/li>\n<li> \u00ab<noindex><a rel=\"nofollow\" href=\"https:\/\/habr.com\/company\/flant\/blog\/415349\/\">Kubernetes 1.10 : aper\u00e7u des principales nouveaut\u00e9s<\/a><\/noindex>\u00bb;<\/li>\n<li> \u00ab<noindex><a rel=\"nofollow\" href=\"https:\/\/habr.com\/company\/flant\/blog\/353114\/\">Quick Draw Doodle Recognition : comment associer R, C++ et r\u00e9seaux de neurones<\/a><\/noindex>\u00bb.<\/li>\n<\/ul>\n<p>Source : <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 - 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\/fr\/blog\/kubernetes-1-14-obzor-osnovnyh-novshestv\" \/>\n\t<meta name=\"generator\" content=\"All in One SEO (AIOSEO) 5.0.2\" \/>\n\t\t<meta property=\"og:locale\" content=\"fr_FR\" \/>\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\/fr\/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 : aper\u00e7u des principales nouveaut\u00e9s | ProHoster","description":"Cette nuit","canonical_url":"https:\/\/prohoster.info\/fr\/blog\/kubernetes-1-14-obzor-osnovnyh-novshestv","robots":"max-image-preview:large","keywords":"","webmasterTools":{"miscellaneous":""},"schema":null,"og:locale":"fr_FR","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\/fr\/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\/fr\/wp-json\/wp\/v2\/posts\/30272","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/prohoster.info\/fr\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/prohoster.info\/fr\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/prohoster.info\/fr\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/prohoster.info\/fr\/wp-json\/wp\/v2\/comments?post=30272"}],"version-history":[{"count":0,"href":"https:\/\/prohoster.info\/fr\/wp-json\/wp\/v2\/posts\/30272\/revisions"}],"wp:attachment":[{"href":"https:\/\/prohoster.info\/fr\/wp-json\/wp\/v2\/media?parent=30272"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/prohoster.info\/fr\/wp-json\/wp\/v2\/categories?post=30272"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/prohoster.info\/fr\/wp-json\/wp\/v2\/tags?post=30272"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}