{"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\/cs\/blog\/kubernetes-1-14-obzor-osnovnyh-novshestv","title":{"rendered":"Kubernetes 1.14: p\u0159ehled hlavn\u00edch novinek","gt_translate_keys":[{"key":"rendered","format":"text"}]},"content":{"rendered":"<p><img decoding=\"async\" alt=\"Kubernetes 1.14: p\u0159ehled hlavn\u00edch novinek\" src=\"\/wp-content\/uploads\/2019\/03\/8fb5be29668f55ec42d31eb47200b639.png\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nTuto noc <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/kubernetes\/sig-release\/tree\/master\/releases\/release-1.14#timeline\">se uskute\u010dn\u00ed<\/a><\/noindex> dal\u0161\u00ed release Kubernetes \u2014 <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/kubernetes\/sig-release\/tree\/master\/releases\/release-1.14\">1.14<\/a><\/noindex>. Podle tradice na\u0161eho blogu se zam\u011b\u0159\u00edme na kl\u00ed\u010dov\u00e9 zm\u011bny v nov\u00e9 verzi tohoto skv\u011bl\u00e9ho Open Source produktu.<\/p>\n<p>Informace pou\u017eit\u00e9 k p\u0159\u00edprav\u011b tohoto materi\u00e1lu byly p\u0159evzaty z <noindex><a rel=\"nofollow\" href=\"https:\/\/docs.google.com\/spreadsheets\/u\/1\/d\/116X6E-lmDJG5UZPlqDAFw8hN9vS6SNY4qRNZ9fKtsMU\/edit#gid=0\">tabulka sledov\u00e1n\u00ed zlep\u0161en\u00ed 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> a p\u0159\u00edslu\u0161n\u00fdch probl\u00e9m\u016f, pull request\u016f, n\u00e1vrh\u016f na vylep\u0161en\u00ed Kubernetes (KEP).<noindex><a rel=\"nofollow\" name=\"habracut\"><\/a><\/noindex><\/p>\n<p>Za\u010dneme d\u016fle\u017eit\u00fdm \u00favodem od SIG cluster-lifecycle: <b>dynamick\u00e9 vysokDisponibiln\u00ed clustery<\/b> Kubernetes (p\u0159esn\u011bji \u0159e\u010deno self-hosted HA nasazen\u00ed) nyn\u00ed <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/kubernetes\/enhancements\/issues\/357\">lze vytv\u00e1\u0159et<\/a><\/noindex> pomoc\u00ed zn\u00e1m\u00fdch (v kontextu clustery s jedn\u00edm uzlem) p\u0159\u00edkaz\u016f <code>kubeadm<\/code> (<code>init<\/code> a <code>p\u0159ipojit<\/code>). Ve zkratce, pro to:<\/p>\n<ul>\n<li> certifik\u00e1ty pou\u017e\u00edvan\u00e9 clusterem jsou p\u0159esunuty do tajemstv\u00ed;<\/li>\n<li> pro schopnost pou\u017e\u00edvat cluster etcd uvnit\u0159 K8s-clusteru (t.j. zbavit se dosavadn\u00ed vn\u011bj\u0161\u00ed z\u00e1vislosti) je pou\u017eit <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/coreos\/etcd-operator\">etcd-operator<\/a><\/noindex>;<\/li>\n<li> doporu\u010den\u00e9 nastaven\u00ed pro extern\u00ed vyva\u017eova\u010d z\u00e1t\u011b\u017ee zaji\u0161\u0165uj\u00edc\u00ed vysokou dostupnost (do budoucna se pl\u00e1nuje mo\u017enost odm\u00edtnut\u00ed i t\u00e9to z\u00e1vislosti, ale ne nyn\u00ed).<\/li>\n<\/ul>\n<p>\n<img decoding=\"async\" alt=\"Kubernetes 1.14: p\u0159ehled hlavn\u00edch novinek\" src=\"\/wp-content\/uploads\/2019\/03\/0e82b7e8db1ad117dc87f68fa4669431.png\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<i>Architektura HA clusteru Kubernetes, vytvo\u0159en\u00e9ho pomoc\u00ed kubeadm<\/i><\/p>\n<p>Podrobnosti o implementaci naleznete v <noindex><a rel=\"nofollow\" href=\"https:\/\/docs.google.com\/document\/d\/1P3oUJ_kdaRSTlGONujadGBpYegjn4RjBNZLHZ4zU7lI\/edit#\">design proposal<\/a><\/noindex>. Tato funkce byla opravdu o\u010dek\u00e1van\u00e1: alfa verze byla o\u010dek\u00e1v\u00e1na ji\u017e v K8s 1.9, ale p\u0159i\u0161la a\u017e nyn\u00ed.<\/p>\n<h2>API<\/h2>\n<p>\nT\u00fdm <code>apply<\/code> a v\u016fbec <b>deklarativn\u00ed spr\u00e1va objekt\u016f<\/b> <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/kubernetes\/enhancements\/issues\/555\">p\u0159esunuta<\/a><\/noindex> z <code>kubectl<\/code> v apiserveru. Samotn\u00ed v\u00fdvoj\u00e1\u0159i stru\u010dn\u011b vysv\u011btluj\u00ed sv\u00e9 rozhodnut\u00ed t\u00edm, \u017ee <code>kubectl apply<\/code> je z\u00e1kladn\u00ed sou\u010d\u00e1st\u00ed pr\u00e1ce s konfiguracemi v Kubernetes, nicm\u00e9n\u011b \"je pln\u00e1 chyb a obt\u00ed\u017en\u011b se opravuje\", a proto je t\u0159eba tuto funkcionalitu p\u0159iv\u00e9st do norm\u00e1ln\u00edho stavu a p\u0159esunout do control plane. Jednoduch\u00e9 a n\u00e1zorn\u00e9 p\u0159\u00edklady existuj\u00edc\u00edch probl\u00e9m\u016f dnes:<\/p>\n<p><img decoding=\"async\" alt=\"Kubernetes 1.14: p\u0159ehled hlavn\u00edch novinek\" src=\"\/wp-content\/uploads\/2019\/03\/379b0d830491bbb0e7ac3c3ccfff71c4.png\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nPodrobnosti o implementaci \u2014 v <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/kubernetes\/enhancements\/blob\/master\/keps\/sig-api-machinery\/0006-apply.md\">KEP<\/a><\/noindex>. Aktu\u00e1ln\u00ed p\u0159ipravenost \u2014 alfa verze (p\u0159echod na beta je napl\u00e1nov\u00e1n na p\u0159\u00ed\u0161t\u00ed release Kubernetes).<\/p>\n<p>V alfa verzi se stala dostupnou <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/kubernetes\/enhancements\/issues\/692\">mo\u017enost<\/a><\/noindex> pou\u017eit\u00ed sch\u00e9my OpenAPI v3 pro <b>tvorbu a publikaci OpenAPI dokumentace pro CustomResources<\/b> (CR), pou\u017e\u00edvan\u00e9 pro validaci (na stran\u011b serveru) u\u017eivatelsk\u00fdch K8s zdroj\u016f (CustomResourceDefinition, CRD). Publikace OpenAPI pro CRD umo\u017e\u0148uje klient\u016fm (nap\u0159\u00edklad <code>kubectl<\/code>) prov\u00e1d\u011bt validaci na sv\u00e9 stran\u011b (v r\u00e1mci <code>kubectl create<\/code> a <code>kubectl apply<\/code>) a poskytovat dokumentaci schematu (<code>kubectl explain<\/code>). Podrobnosti \u2014 v <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>D\u0159\u00edve existuj\u00edc\u00ed logy <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/kubernetes\/kubernetes\/pull\/74837\">jsou nyn\u00ed otev\u0159eny<\/a><\/noindex> s p\u0159\u00edznakem <code>O_APPEND<\/code> (ne <code>O_TRUNC<\/code>) aby se p\u0159ede\u0161lo ztr\u00e1t\u011b protokol\u016f v n\u011bkter\u00fdch situac\u00edch a pro usnadn\u011bn\u00ed truncation&#8217;u protokol\u016f extern\u00edmi n\u00e1stroji pro rotaci.<\/p>\n<p>Tak\u00e9 v kontextu Kubernetes API lze zm\u00ednit, \u017ee v <code>PodSandbox<\/code> a <code>PodSandboxStatus<\/code> <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/kubernetes\/kubernetes\/pull\/73833\">bylo p\u0159id\u00e1no<\/a><\/noindex> pole <code>runtime_handler<\/code> pro zachycen\u00ed informac\u00ed o <code>RuntimeClass<\/code> v pod&#8217;e (v\u00edce o n\u011bm \u010dt\u011bte v textu o <noindex><a rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/company\/flant\/blog\/424331\/\">vyd\u00e1n\u00ed Kubernetes 1.12<\/a><\/noindex>, kde tato t\u0159\u00edda vznikla jako alfa-verze), a v Admission Webhooks <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/kubernetes\/kubernetes\/pull\/74998\">byla implementov\u00e1na<\/a><\/noindex> mo\u017enost ur\u010dovat, kter\u00e9 verze <code>AdmissionReview<\/code> podporuj\u00ed. Nakonec, v pravidlech Admission Webhooks nyn\u00ed <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/kubernetes\/kubernetes\/pull\/74477\">m\u016f\u017eete omezit<\/a><\/noindex> rozsahu jejich pou\u017eit\u00ed s namespace&#8217;mi a r\u00e1mci clusteru.<\/p>\n<h2>\u00dalo\u017ei\u0161t\u011b<\/h2>\n<p>\n<noindex><a rel=\"nofollow\" href=\"https:\/\/kubernetes.io\/docs\/concepts\/storage\/volumes\/#local\"><code><b>PersistentLocalVolumes<\/b><\/code><\/a><\/noindex>, kter\u00e1 m\u011bla status beta-verze od vyd\u00e1n\u00ed <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\">byla vyhl\u00e1\u0161ena<\/a><\/noindex> stabiln\u00ed (GA): tato funk\u010dn\u00ed br\u00e1na ji\u017e nebude vyp\u00edn\u00e1na a bude odstran\u011bna v Kubernetes 1.17.<\/p>\n<p><noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/kubernetes\/enhancements\/issues\/559\">Mo\u017enost<\/a><\/noindex> pou\u017eit\u00ed prom\u011bnn\u00fdch prost\u0159ed\u00ed takzvan\u00e9ho <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> (nap\u0159\u00edklad n\u00e1zvu pod&#8217;a) pro n\u00e1zvy adres\u00e1\u0159\u016f, kter\u00e9 jsou p\u0159ipojeny jako <noindex><a rel=\"nofollow\" href=\"https:\/\/kubernetes.io\/docs\/concepts\/storage\/volumes\/#using-subpath\"><code>subPath<\/code><\/a><\/noindex>, do\u010dkala se roz\u0161\u00ed\u0159en\u00ed \u2014 ve form\u011b nov\u00e9ho pole <code>subPathExpr<\/code>, s jeho\u017e pomoc\u00ed se nyn\u00ed specifikuje pot\u0159ebn\u00e9 jm\u00e9no adres\u00e1\u0159e. Funkce se p\u016fvodn\u011b objevila v Kubernetes 1.11, ale pro 1.14 z\u016fstala v statusu alfa-verze.<\/p>\n<p>Jak v p\u0159edchoz\u00edm vyd\u00e1n\u00ed Kubernetes, jsou p\u0159edstaveny mnoh\u00e9 v\u00fdznamn\u00e9 zm\u011bny pro aktivn\u011b se rozv\u00edjej\u00edc\u00ed CSI (Container Storage Interface):<\/p>\n<h3>CSI<\/h3>\n<p>\nse stalo dostupn\u00fdm (v r\u00e1mci alfa-verze) <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/kubernetes\/enhancements\/issues\/556\">podpora<\/a><\/noindex> <b>zm\u011bny velikosti pro CSI-objemy.<\/b>Pro jej\u00ed pou\u017eit\u00ed je t\u0159eba aktivovat funk\u010dn\u00ed br\u00e1nu s n\u00e1zvem <code>ExpandCSIVolumes<\/code>, a tak\u00e9, aby konkr\u00e9tn\u00ed CSI ovlada\u010d podporoval tuto operaci.<\/p>\n<p>Dal\u0161\u00ed funkce pro CSI v alfa-verzi \u2014 <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/kubernetes\/enhancements\/issues\/596\">mo\u017enost<\/a><\/noindex> odkazovat p\u0159\u00edmo (tj. bez pou\u017eit\u00ed PV\/PVC) na CSI svazky v r\u00e1mci specifikace pod&#8217;\u016f. To je <b>odstra\u0148uje omezen\u00ed vyu\u017eit\u00ed CSI jako v\u00fdhradn\u011b vzd\u00e1len\u00fdch \u00falo\u017ei\u0161\u0165 dat<\/b>, otev\u00edr\u00e1 pro n\u011b dve\u0159e do sv\u011bta <noindex><a rel=\"nofollow\" href=\"https:\/\/kubernetes-csi.github.io\/docs\/ephemeral-local-volumes.html\">m\u00edstn\u00edch ephemer\u00e1ln\u00edch objem\u016f.<\/a><\/noindex>Pro pou\u017eit\u00ed (<noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/vladimirvivien\/kubernetes.github.io\/blob\/b78107abfdb2b5877973b84062d93cdf98ef1b9c\/content\/en\/docs\/concepts\/storage\/volumes.md#csi-ephemeral-volumes\">Kdy\u017e je po\u0159ad\u00ed vyhodnocen\u00ed d\u016fle\u017eit\u00e9, lze ho ur\u010dit pomoc\u00ed konstrukce<\/a><\/noindex>) je nutn\u00e9 aktivovat <code>CSIInlineVolume<\/code> funk\u010dn\u00ed br\u00e1nu.<\/p>\n<p>Objevuje se pokrok i ve \u201evnitrnostech\u201c Kubernetes, kter\u00e9 jsou spojen\u00e9 s CSI a nejsou tak patrn\u00e9 koncov\u00fdm u\u017eivatel\u016fm (syst\u00e9mov\u00fdm administr\u00e1tor\u016fm)\u2026 V sou\u010dasnosti mus\u00ed v\u00fdvoj\u00e1\u0159i udr\u017eovat dv\u011b verze ka\u017ed\u00e9ho pluginu pro \u00falo\u017ei\u0161t\u011b: jedna \u2014 \u201estar\u0161\u00ed\u201c, uvnit\u0159 k\u00f3dov\u00e9 z\u00e1kladny K8s (in-tree), a druh\u00e1 \u2014 v r\u00e1mci nov\u00e9ho CSI <i>(v\u00edce informac\u00ed naleznete nap\u0159\u00edklad v <noindex><a rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/company\/flant\/blog\/424211\/\">zde<\/a><\/noindex>)<\/i>. To vyvol\u00e1v\u00e1 pochopiteln\u00e9 nep\u0159\u00edjemnosti, kter\u00e9 je t\u0159eba odstranit, jak se CSI stabilizuje jako takov\u00e9. Jednodu\u0161e vz\u00edt a prohl\u00e1sit aplika\u010dn\u00ed rozhran\u00ed vnit\u0159n\u00edch (in-tree) plugin\u016f za zastaral\u00e1 (deprecated) se nejev\u00ed jako mo\u017en\u00e9 kv\u016fli <noindex><a rel=\"nofollow\" href=\"https:\/\/kubernetes.io\/docs\/reference\/using-api\/deprecation-policy\/#deprecating-parts-of-the-api\">odpov\u00eddaj\u00edc\u00ed politiky Kubernetes<\/a><\/noindex>.<\/p>\n<p>V\u0161e to vedlo k tomu, \u017ee alpha verze dos\u00e1hla <b><noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/kubernetes\/enhancements\/issues\/625\">proces migrace<\/a><\/noindex> intern\u00edho k\u00f3du plugin\u016f<\/b>, implementovan\u00fdch jako in-tree, v CSI plugins, d\u00edky \u010demu\u017e budou starosti v\u00fdvoj\u00e1\u0159\u016f omezeny na podporu jedn\u00e9 verze jejich plugin\u016f, a kompatibilita se star\u00fdmi API z\u016fstane zachov\u00e1na a mohou b\u00fdt prohl\u00e1\u0161eny za zastaral\u00e9 b\u011b\u017en\u00fdm sc\u00e9n\u00e1\u0159em. O\u010dek\u00e1v\u00e1 se, \u017ee do dal\u0161\u00edho vyd\u00e1n\u00ed Kubernetes (1.15) prob\u011bhne migrace v\u0161ech plugin\u016f cloudov\u00fdch poskytovatel\u016f, implementace z\u00edsk\u00e1 status beta verze a bude aktivov\u00e1na ve standardn\u00edch instalac\u00edch K8s. Podrobnosti viz <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/kubernetes\/community\/blob\/master\/contributors\/design-proposals\/storage\/csi-migration.md\">design proposal<\/a><\/noindex>. D\u016fsledkem t\u00e9to migrace byl tak\u00e9 <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/kubernetes\/kubernetes\/pull\/74544\">odklon<\/a><\/noindex> od omezen\u00ed pro objemy definovan\u00e9 konkr\u00e9tn\u00edmi cloudov\u00fdmi poskytovateli (AWS, Azure, GCE, Cinder).<\/p>\n<p>Krom\u011b toho podpora blokov\u00fdch za\u0159\u00edzen\u00ed s CSI (<code>CSIBlockVolume<\/code>) <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/kubernetes\/kubernetes\/pull\/74909\">byla p\u0159evedena<\/a><\/noindex> do beta verze.<\/p>\n<h2>Uzly \/ Kubelet<\/h2>\n<p>\nByla p\u0159edstavena alpha verze <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/kubernetes\/enhancements\/issues\/727\">nov\u00e9ho endpointu<\/a><\/noindex> v Kubelet, ur\u010den\u00e9ho pro <b>poskytov\u00e1n\u00ed metrik o z\u00e1kladn\u00edch zdroj\u00edch<\/b>. Obecn\u011b plat\u00ed, \u017ee pokud d\u0159\u00edve Kubelet z\u00edsk\u00e1val statistiky o pou\u017e\u00edv\u00e1n\u00ed kontejner\u016f z cAdvisor, nyn\u00ed tyto \u00fadaje p\u0159ich\u00e1zej\u00ed z prov\u00e1d\u011bc\u00edho prost\u0159ed\u00ed kontejneru p\u0159es CRI (Container Runtime Interface), av\u0161ak zachov\u00e1na je i kompatibilita pro pr\u00e1ci se star\u00fdmi verzemi Dockeru. D\u0159\u00edve shrom\u00e1\u017ed\u011bn\u00e9 statistiky v Kubelet byly poskytov\u00e1ny p\u0159es REST API, nyn\u00ed se pro to pou\u017e\u00edv\u00e1 endpoint um\u00edst\u011bn\u00fd na adrese <code>\/metrics\/resource\/v1alpha1<\/code>. Dlouhodob\u00e1 strategie v\u00fdvoj\u00e1\u0159\u016f <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/kubernetes\/kubernetes\/issues\/68522\">spo\u010d\u00edv\u00e1<\/a><\/noindex> je minimalizovat soubor metrik, kter\u00e9 Kubelet poskytuje. <i>Mimochodem, samotn\u00e9 tyto metriky <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/kubernetes\/enhancements\/pull\/726\">se nyn\u00ed naz\u00fdvaj\u00ed<\/a><\/noindex> ne \u201ecore metrics\u201c, ale \u201eresource metrics\u201c, a popisuj\u00ed je jako \u201efirst-class resources, such as cpu, and memory\u201c.<\/i><\/p>\n<p>Docela zaj\u00edmav\u00fd detail: navzdory z\u0159ejm\u00e9 v\u00fdhod\u011b v v\u00fdkonu gRPC endpointu ve srovn\u00e1n\u00ed s r\u016fzn\u00fdmi p\u0159\u00edpady pou\u017eit\u00ed form\u00e1tu Prometheus <i>(v\u00fdsledek jednoho z benchmark&#8217;\u016f viz n\u00ed\u017ee)<\/i>, auto\u0159i dali p\u0159ednost textov\u00e9mu form\u00e1tu Prometheus kv\u016fli z\u0159ejm\u00e9mu veden\u00ed tohoto monitorovac\u00edho syst\u00e9mu v komunit\u011b.<\/p>\n<blockquote><p><i>\u201egRPC nen\u00ed kompatibiln\u00ed s hlavn\u00edmi monitorovac\u00edmi pipeline. Endpoint v\u0161ak bude u\u017eite\u010dn\u00fd pouze pro dod\u00e1v\u00e1n\u00ed metrik do Metrics Server nebo komponent monitorov\u00e1n\u00ed, kter\u00e9 se s n\u00edm integruj\u00ed p\u0159\u00edmo. P\u0159i pou\u017eit\u00ed caching v Metrics Server je v\u00fdkon textov\u00e9ho form\u00e1tu Prometheus <b>dostate\u010dn\u011b dobr\u00fd.<\/b> pro n\u00e1s, abychom up\u0159ednostnili Prometheus p\u0159ed gRPC, vzhledem k \u0161irok\u00e9 popularit\u011b Prometheus v komunit\u011b. Jakmile form\u00e1t OpenMetrics bude stabiln\u011bj\u0161\u00ed, budeme moci dos\u00e1hnout v\u00fdkonu gRPC pomoc\u00ed form\u00e1tu zalo\u017een\u00e9ho na proto.<\/i><\/p><\/blockquote>\n<p>\n<img decoding=\"async\" alt=\"Kubernetes 1.14: p\u0159ehled hlavn\u00edch novinek\" src=\"\/wp-content\/uploads\/2019\/03\/ad7e45b61fc4676a2df3c2d33d5688b5.png\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<i>Jedn\u00edm z srovn\u00e1vac\u00edch test\u016f v\u00fdkonu pou\u017eit\u00ed form\u00e1t\u016f gRPC a Prometheus v nov\u00e9m endpoint&#8217;u Kubelet pro metriky. V\u00edce graf\u016f a dal\u0161\u00ed podrobnosti najdete v <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>Mezi dal\u0161\u00edmi zm\u011bnami:<\/p>\n<ul>\n<li> Kubelet nyn\u00ed (jednou) <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/kubernetes\/kubernetes\/pull\/73802\">se pokou\u0161\u00ed zastavit<\/a><\/noindex> kontejnery ve stavu nezn\u00e1m\u00e9m (unknown) p\u0159ed restartov\u00e1n\u00edm a odstra\u0148ov\u00e1n\u00edm.<\/li>\n<li> P\u0159i pou\u017e\u00edv\u00e1n\u00ed <noindex><a rel=\"nofollow\" href=\"https:\/\/kubernetes.io\/docs\/concepts\/workloads\/pods\/podpreset\/\"><code>PodPresets<\/code><\/a><\/noindex> nyn\u00ed init-kontejneru <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/kubernetes\/kubernetes\/pull\/71479\">je p\u0159id\u00e1n<\/a><\/noindex> stejn\u00e9 informace jako b\u011b\u017en\u00e9mu kontejneru.<\/li>\n<li> Kubelet <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/kubernetes\/kubernetes\/pull\/73659\">za\u010dal pou\u017e\u00edvat<\/a><\/noindex> <code>usageNanoCores<\/code> z poskytovatele statistik CRI, a pro uzly a kontejnery v syst\u00e9mu Windows <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/kubernetes\/kubernetes\/pull\/74788\">byla p\u0159id\u00e1na<\/a><\/noindex> s\u00ed\u0165ov\u00e9 statistiky.<\/li>\n<li> Informace o opera\u010dn\u00edm syst\u00e9mu a architektu\u0159e jsou nyn\u00ed zapisov\u00e1ny do \u0161t\u00edtk\u016f <code>kubernetes.io\/os<\/code> a <code>kubernetes.io\/arch<\/code> objekt\u016f Node (p\u0159evzato z bety do GA).<\/li>\n<li> Schopnost uv\u00e9st konkr\u00e9tn\u00ed syst\u00e9movou skupinu u\u017eivatel\u016f pro kontejnery v pod&#8217;e (<code>RunAsGroup<\/code>, byla p\u0159id\u00e1na ve <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\">pokro\u010dila<\/a><\/noindex> do beta verze (zapnuta ve v\u00fdchoz\u00edm nastaven\u00ed).<\/li>\n<li> du a find pou\u017e\u00edvan\u00e9 v cAdvisor, <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/kubernetes\/kubernetes\/pull\/74675\">byly nahrazeny<\/a><\/noindex> Go-implementacemi.<\/li>\n<\/ul>\n<p><\/p>\n<h2>CLI<\/h2>\n<p>\nV cli-runtime a kubectl <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/kubernetes\/kubernetes\/pull\/74140\">p\u0159id\u00e1n<\/a><\/noindex> p\u0159ep\u00edna\u010d -k pro integraci s <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/kubernetes-sigs\/kustomize\"><b>kustomize<\/b><\/a><\/noindex> (mimochodem, jeho v\u00fdvoj nyn\u00ed prob\u00edh\u00e1 v samostatn\u00e9m repozit\u00e1\u0159i), tj. pro zpracov\u00e1n\u00ed dal\u0161\u00edch YAML soubor\u016f ze speci\u00e1ln\u00edch adres\u00e1\u0159\u016f kustomization (podrobnosti o jejich pou\u017eit\u00ed viz <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: p\u0159ehled hlavn\u00edch novinek\" src=\"\/wp-content\/uploads\/2019\/03\/e38550cfb642d81237aad4d87b9b3386.png\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<i>P\u0159\u00edklad jednoduch\u00e9ho pou\u017eit\u00ed souboru <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/kubernetes-sigs\/kustomize\/blob\/master\/docs\/glossary.md#kustomization\">kustomization<\/a><\/noindex> (mo\u017en\u00e9 i slo\u017eit\u011bj\u0161\u00ed aplikace kustomize v r\u00e1mci <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/kubernetes-sigs\/kustomize\/blob\/master\/docs\/glossary.md#overlay\">overlays<\/a><\/noindex>)<\/i><\/p>\n<p>Krom\u011b toho:<\/p>\n<ul>\n<li> <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/kubernetes\/kubernetes\/pull\/71651\">Byla p\u0159id\u00e1na<\/a><\/noindex> nov\u00fd p\u0159\u00edkaz <code>kubectl create cronjob<\/code>, jeho\u017e n\u00e1zev hovo\u0159\u00ed s\u00e1m za sebe.<\/li>\n<li> V <code>kubectl logs<\/code> nyn\u00ed lze <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/kubernetes\/kubernetes\/pull\/67573\">kombinovat<\/a><\/noindex> p\u0159ep\u00edna\u010de <code>-f<\/code> (<code>--follow<\/code> pro streamov\u00e1n\u00ed log\u016f) a <code>-l<\/code> (<code>--selector<\/code> pro label query).<\/li>\n<li> kubectl <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/kubernetes\/kubernetes\/pull\/72641\">nau\u010dili jsme<\/a><\/noindex> kop\u00edrovat soubory vyb\u00edran\u00e9 pomoc\u00ed wildcard.<\/li>\n<li> V p\u0159\u00edkazu <code>kubectl wait<\/code> <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/kubernetes\/kubernetes\/pull\/70599\">p\u0159idali<\/a><\/noindex> p\u0159\u00edznak <code>--all<\/code> pro v\u00fdb\u011br v\u0161ech zdroj\u016f ve vymezen\u00e9m prostoru n\u00e1zv\u016f pro dan\u00fd typ zdroj\u016f.<\/li>\n<\/ul>\n<p><\/p>\n<h2>Dal\u0161\u00ed<\/h2>\n<p>\nStabiln\u00ed (GA) status z\u00edskaly n\u00e1sleduj\u00edc\u00ed funkce:<\/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>, pou\u017eit\u00fd ve specifikaci pod&#8217;a pro ur\u010den\u00ed dal\u0161\u00edch podm\u00ednek, kter\u00e9 se zohled\u0148uj\u00ed p\u0159i p\u0159ipravenosti pod&#8217;a;<\/li>\n<li> Podpora velk\u00fdch str\u00e1nek (feature gate nazvan\u00e9 <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\/\">Pod Priority &amp; Preemption<\/a><\/noindex>.<\/li>\n<\/ul>\n<p>\nDal\u0161\u00ed zm\u011bny p\u0159edstaven\u00e9 v Kubernetes 1.14:<\/p>\n<ul>\n<li> Politika RBAC ve v\u00fdchoz\u00edm nastaven\u00ed ji\u017e nezaji\u0161\u0165uje p\u0159\u00edstup k API <code>discovery<\/code> a <code>access-review<\/code> u\u017eivatel\u016fm bez autentizace <i>(unauthenticated)<\/i>.<\/li>\n<li> Ofici\u00e1ln\u00ed podpora CoreDNS <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/kubernetes\/kubernetes\/pull\/69940\">je zaji\u0161t\u011bna<\/a><\/noindex> pouze pro Linux, proto mus\u00ed uzly p\u0159i pou\u017eit\u00ed kubeadm pro nasazen\u00ed (CoreDNS) v clusteru b\u011b\u017eet pouze na Linuxu (pro toto omezen\u00ed se pou\u017e\u00edvaj\u00ed nodeSelectors).<\/li>\n<li> V\u00fdchoz\u00ed konfigurace CoreDNS nyn\u00ed <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/kubernetes\/kubernetes\/pull\/73267\">pou\u017e\u00edv\u00e1<\/a><\/noindex> <noindex><a rel=\"nofollow\" href=\"https:\/\/coredns.io\/plugins\/forward\/\">plugin forward<\/a><\/noindex> nam\u00edsto proxy. Krom\u011b toho, v CoreDNS <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/kubernetes\/kubernetes\/pull\/74137\">byla p\u0159id\u00e1na<\/a><\/noindex> readinessProbe, zabra\u0148uj\u00edc\u00ed vyv\u00e1\u017een\u00ed z\u00e1t\u011b\u017ee na p\u0159\u00edslu\u0161n\u00e9 (nep\u0159ipraven\u00e9 k obsluze) pod&#8217;y.<\/li>\n<li> V kubeadm, ve f\u00e1z\u00edch <code>init<\/code> nebo <code>upload-certs<\/code>, <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/kubernetes\/kubernetes\/pull\/73907\">se stalo mo\u017en\u00e9<\/a><\/noindex> nahr\u00e1vat certifik\u00e1ty pot\u0159ebn\u00e9 pro p\u0159ipojen\u00ed nov\u00e9ho control-plane k tajemstv\u00ed kubeadm-certs (pou\u017e\u00edv\u00e1 se p\u0159\u00edznak <code>--experimental-upload-certs<\/code>).<\/li>\n<li> Pro instalace Windows je k dispozici alpha verze <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/kubernetes\/enhancements\/issues\/689\">podporu<\/a><\/noindex> gMSA (Group Managed Service Account) \u2014 speci\u00e1ln\u00ed \u00fa\u010dty v Active Directory, kter\u00e9 mohou pou\u017e\u00edvat i kontejnery.<\/li>\n<li> Pro GCE <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/kubernetes\/kubernetes\/pull\/70144\">bylo aktivov\u00e1no<\/a><\/noindex> mTLS \u0161ifrov\u00e1n\u00ed mezi etcd a kube-apiserver.<\/li>\n<li> Aktualizace ve pou\u017e\u00edvan\u00e9m\/z\u00e1visl\u00e9m softwaru: Go 1.12.1, CSI 1.1, CoreDNS 1.3.1, podpora Docker 18.09 v kubeadm, a minim\u00e1ln\u011b podporovan\u00e1 verze Docker API je nyn\u00ed 1.26.<\/li>\n<\/ul>\n<p><\/p>\n<h2>P.S.<\/h2>\n<p>\nP\u0159e\u010dt\u011bte si tak\u00e9 n\u00e1\u0161 blog:<\/p>\n<ul>\n<li> \u00ab<noindex><a rel=\"nofollow\" href=\"https:\/\/habr.com\/company\/flant\/blog\/432208\/\">Kubernetes 1.13: p\u0159ehled hlavn\u00edch novinek<\/a><\/noindex>\u00bb;<\/li>\n<li> \u00ab<noindex><a rel=\"nofollow\" href=\"https:\/\/habr.com\/company\/flant\/blog\/424331\/\">Kubernetes 1.12: p\u0159ehled hlavn\u00edch novinek<\/a><\/noindex>\u00bb;<\/li>\n<li> \u00ab<noindex><a rel=\"nofollow\" href=\"https:\/\/habr.com\/company\/flant\/blog\/415349\/\">Kubernetes 1.11: p\u0159ehled hlavn\u00edch novinek<\/a><\/noindex>\u00bb;<\/li>\n<li> \u00ab<noindex><a rel=\"nofollow\" href=\"https:\/\/habr.com\/company\/flant\/blog\/353114\/\">Kubernetes 1.10: p\u0159ehled hlavn\u00edch novinek<\/a><\/noindex>\u00bb.<\/li>\n<\/ul>\n<p>Zdroj: <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.3 - 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\/cs\/blog\/kubernetes-1-14-obzor-osnovnyh-novshestv\" \/>\n\t\t<meta name=\"generator\" content=\"All in One SEO (AIOSEO) 5.0.3\" \/>\n\t\t<meta property=\"og:locale\" content=\"cs_CZ\" \/>\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\/cs\/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: p\u0159ehled hlavn\u00edch novinek | ProHoster","description":"Tuto noc","canonical_url":"https:\/\/prohoster.info\/cs\/blog\/kubernetes-1-14-obzor-osnovnyh-novshestv","robots":"max-image-preview:large","keywords":"","webmasterTools":{"miscellaneous":""},"schema":null,"og:locale":"cs_CZ","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\/cs\/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\/cs\/wp-json\/wp\/v2\/posts\/30272","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/prohoster.info\/cs\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/prohoster.info\/cs\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/prohoster.info\/cs\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/prohoster.info\/cs\/wp-json\/wp\/v2\/comments?post=30272"}],"version-history":[{"count":0,"href":"https:\/\/prohoster.info\/cs\/wp-json\/wp\/v2\/posts\/30272\/revisions"}],"wp:attachment":[{"href":"https:\/\/prohoster.info\/cs\/wp-json\/wp\/v2\/media?parent=30272"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/prohoster.info\/cs\/wp-json\/wp\/v2\/categories?post=30272"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/prohoster.info\/cs\/wp-json\/wp\/v2\/tags?post=30272"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}