{"id":97736,"date":"2020-10-21T14:42:17","date_gmt":"2020-10-21T12:42:17","guid":{"rendered":"https:\/\/prohoster.info\/blog\/administrirovanie\/obzor-k9s-prodvinutogo-terminalnogo-interfejsa-dlya-kubernetes"},"modified":"2020-10-21T14:42:17","modified_gmt":"2020-10-21T12:42:17","slug":"obzor-k9s-prodvinutogo-terminalnogo-interfejsa-dlya-kubernetes","status":"publish","type":"post","link":"https:\/\/prohoster.info\/hu\/blog\/administrirovanie\/obzor-k9s-prodvinutogo-terminalnogo-interfejsa-dlya-kubernetes","title":{"rendered":"A k9s \u00e1ttekint\u00e9se \u2014 fejlett termin\u00e1lfel\u00fclet Kuberneteshez","gt_translate_keys":[{"key":"rendered","format":"text"}]},"content":{"rendered":"<p><img decoding=\"async\" alt=\"A k9s \u00e1ttekint\u00e9se \u2014 fejlett termin\u00e1lfel\u00fclet Kuberneteshez\" src=\"\/wp-content\/uploads\/2020\/10\/11274841ee84b0e2c3ac74c9c738faba.png\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\n<noindex><a rel=\"nofollow\" href=\"https:\/\/k9scli.io\/\">K9s<\/a><\/noindex> felhaszn\u00e1l\u00f3i fel\u00fcletet biztos\u00edt a Kubernetes klaszterekhez val\u00f3 interakci\u00f3hoz. Ennek az Open Source projektnek a c\u00e9lja a K8s alkalmaz\u00e1sok egyszer\u0171bb navig\u00e1l\u00e1sa, megfigyel\u00e9se \u00e9s kezel\u00e9se. A K9s folyamatosan figyeli a Kubernetes v\u00e1ltoz\u00e1sait \u00e9s gyors parancsokat k\u00edn\u00e1l az \u00e9szlelt er\u0151forr\u00e1sok kezel\u00e9s\u00e9re.<\/p>\n<p>A projekt Go nyelven k\u00e9sz\u00fclt, \u00e9s m\u00e1r m\u00e1sf\u00e9l \u00e9ve l\u00e9tezik: az els\u0151 elk\u00f6telez\u00e9s 2019. febru\u00e1r 1-j\u00e9n t\u00f6rt\u00e9nt. A cikk \u00edr\u00e1sakor t\u00f6bb mint 9000 csillag tal\u00e1lhat\u00f3 a <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/derailed\/k9s\">GitHub<\/a><\/noindex> oldalon, \u00e9s k\u00f6r\u00fclbel\u00fcl 80 hozz\u00e1j\u00e1rul\u00f3 dolgozik rajta. N\u00e9zz\u00fck meg, mit tud a k9s?<noindex><a rel=\"nofollow\" name=\"habracut\"><\/a><\/noindex><\/p>\n<h2>Telep\u00edt\u00e9s \u00e9s ind\u00edt\u00e1s<\/h2>\n<p>\nEz egy klienst alkalmaz\u00e1s (a Kubernetes klaszterrel), amelyet a legegyszer\u0171bben Docker-k\u00e9pk\u00e9nt lehet futtatni:<\/p>\n<pre><code class=\"bash\">docker run --rm -it -v $KUBECONFIG: \/root\/.kube\/config quay.io\/derailed\/k9s<\/code><\/pre>\n<p>\nN\u00e9h\u00e1ny Linux disztrib\u00faci\u00f3hoz \u00e9s m\u00e1s oper\u00e1ci\u00f3s rendszerekhez k\u00e9szen \u00e1ll\u00f3 telep\u00edt\u00e9si <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/derailed\/k9s#installation\">csomagok<\/a><\/noindex>. \u00c1ltal\u00e1ban Linux rendszerekhez egy bin\u00e1ris f\u00e1jl telep\u00edthet\u0151:<\/p>\n<pre><code class=\"bash\">sudo wget -qO- https:\/\/github.com\/derailed\/k9s\/releases\/download\/v0.22.0\/k9s_Linux_x86_64.tar.gz | tar zxvf - -C \/tmp\/\nsudo mv \/tmp\/k9s \/usr\/local\/bin<\/code><\/pre>\n<p>\nNincsenek specifikus k\u00f6vetelm\u00e9nyek a K8s klaszterhez. Az \u00e9rt\u00e9kel\u00e9sek alapj\u00e1n az alkalmaz\u00e1s a Kubernetes r\u00e9gebbi verzi\u00f3ival, mint p\u00e9ld\u00e1ul az 1.12, is m\u0171k\u00f6dik.<\/p>\n<p>Az alkalmaz\u00e1s a standard konfigur\u00e1ci\u00f3t haszn\u00e1lva indul el <code>konfigur\u00e1ci\u00f3s forma j\u00f6n l\u00e9tre:<\/code> - hasonl\u00f3an m\u00f3don ahogy a <code>kubectl<\/code>.<\/p>\n<h2>Navig\u00e1ci\u00f3<\/h2>\n<p>\nAlap\u00e9rtelmez\u00e9s szerint egy ablak ny\u00edlik meg a standard n\u00e9vt\u00e9rrel, amely a kontextushoz van rendelve. Teh\u00e1t ha be\u00edrtad <code>kubectl config set-context --current --namespace=test<\/code>, akkor a n\u00e9vt\u00e9r is megny\u00edlik <code>teszt<\/code>. <i>(N\u00e9vt\u00e9r\/v\u00e1ltozatok v\u00e1lt\u00e1s\u00e1r\u00f3l l\u00e1sd al\u00e1bb.) <\/i><\/p>\n<p><img decoding=\"async\" alt=\"A k9s \u00e1ttekint\u00e9se \u2014 fejlett termin\u00e1lfel\u00fclet Kuberneteshez\" src=\"\/wp-content\/uploads\/2020\/10\/820fcbdd376abc95d67bf202f34c880c.png\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\n\u00c1t\u00e1ll\u00e1s <b>parancs \u00fczemm\u00f3dban<\/b> a \u201e:\u201d megnyom\u00e1s\u00e1val t\u00f6rt\u00e9nik. Ezut\u00e1n a k9s m\u0171k\u00f6d\u00e9s\u00e9t parancsokkal lehet ir\u00e1ny\u00edtani - p\u00e9ld\u00e1ul, a StatefulSets list\u00e1j\u00e1nak megtekint\u00e9s\u00e9hez (az aktu\u00e1lis n\u00e9vt\u00e9rben) \u00edrd be <code>:sts<\/code>.<\/p>\n<p><img decoding=\"async\" alt=\"A k9s \u00e1ttekint\u00e9se \u2014 fejlett termin\u00e1lfel\u00fclet Kuberneteshez\" src=\"\/wp-content\/uploads\/2020\/10\/840724fc656b22e67519c53983065862.png\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nN\u00e9h\u00e1ny m\u00e1s Kubernetes er\u0151forr\u00e1shoz:<\/p>\n<ul>\n<li> <code>:ns<\/code> - Nevek;<\/li>\n<li> <code>:deploy<\/code> - Telep\u00edt\u00e9sek;<\/li>\n<li> <code>:ing<\/code> - Bej\u00e1ratok;<\/li>\n<li> <code>:svc<\/code> - Szolg\u00e1ltat\u00e1sok.<\/li>\n<\/ul>\n<p>\nA megtekinthet\u0151 er\u0151forr\u00e1st\u00edpusok teljes list\u00e1j\u00e1nak megjelen\u00edt\u00e9s\u00e9hez a parancs: <code>:aliases<\/code>.<\/p>\n<p>K\u00e9nyelmes megtekinteni a jelenlegi ablakban el\u00e9rhet\u0151 parancsok list\u00e1j\u00e1t is, amelyhez el\u00e9g megnyomni a \u201e?\u201d.<\/p>\n<p><img decoding=\"async\" alt=\"A k9s \u00e1ttekint\u00e9se \u2014 fejlett termin\u00e1lfel\u00fclet Kuberneteshez\" src=\"\/wp-content\/uploads\/2020\/10\/54d329f9eeda2424f457aef6b977ae63.png\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nA k9s-ben van <b>keres\u00e9si \u00fczemm\u00f3d<\/b>, amelybe val\u00f3 \u00e1t\u00e1ll\u00e1shoz el\u00e9g csak be\u00edrni a \u201e\/\u201d-t. Ezzel a jelenlegi \u201eablak\u201d tartalm\u00e1ban lehet keresni. Tegy\u00fck fel, hogy kor\u00e1bban be\u00edrtad <code>:ns<\/code>, neked pedig nyitva van a n\u00e9vt\u00e9r list\u00e1ja. Ha t\u00fal sok van, akkor, hogy ne kelljen hossz\u00fa ideig lefel\u00e9 g\u00f6rgetni, elegend\u0151 a neveket tartalmaz\u00f3 ablakban be\u00edrni. <code>\/mynamespace<\/code>.<\/p>\n<p>A c\u00edmk\u00e9k szerinti keres\u00e9shez ki lehet v\u00e1lasztani az \u00f6sszes pod-ot a sz\u00fcks\u00e9ges n\u00e9vt\u00e9rben, majd be\u00edrni p\u00e9ld\u00e1ul <code>\/ -l app=whoami<\/code>. Kapunk egy list\u00e1t a c\u00edmk\u00e9vel rendelkez\u0151 pod-okr\u00f3l:<\/p>\n<p><img decoding=\"async\" alt=\"A k9s \u00e1ttekint\u00e9se \u2014 fejlett termin\u00e1lfel\u00fclet Kuberneteshez\" src=\"\/wp-content\/uploads\/2020\/10\/88b8e09a5b7819bcf49334bf351b040b.png\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nA keres\u00e9s minden ablakfajt\u00e1ban m\u0171k\u00f6dik, bele\u00e9rtve a napl\u00f3kat, a YAML-manifesztusok megtekint\u00e9s\u00e9t \u00e9s <code>describe<\/code> az er\u0151forr\u00e1sokra \u2014 a lehet\u0151s\u00e9gekr\u0151l r\u00e9szletesebben l\u00e1sd al\u00e1bb.<\/p>\n<p>Hogyan n\u00e9z ki alapvet\u0151en a navig\u00e1l\u00e1si folyamat?<\/p>\n<p>A k\u00f6vetkez\u0151 parancs seg\u00edts\u00e9g\u00e9vel <code>:ctx<\/code> ki lehet v\u00e1lasztani a kontextust:<\/p>\n<p><img decoding=\"async\" alt=\"A k9s \u00e1ttekint\u00e9se \u2014 fejlett termin\u00e1lfel\u00fclet Kuberneteshez\" src=\"\/wp-content\/uploads\/2020\/10\/a5e780a3fc98961913c966222e167d51.png\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nA n\u00e9vt\u00e9r kiv\u00e1laszt\u00e1s\u00e1hoz m\u00e1r eml\u00edtett parancs van <code>:ns<\/code>, majd haszn\u00e1lhatjuk a keres\u00e9st a k\u00edv\u00e1nt n\u00e9vt\u00e9rhez: <code>\/test<\/code>.<\/p>\n<p>Ha most kiv\u00e1lasztjuk a sz\u00e1munkra \u00e9rdekes er\u0151forr\u00e1st (p\u00e9ld\u00e1ul a StatefulSet-et), akkor megjelenik a megfelel\u0151 inform\u00e1ci\u00f3: h\u00e1ny pod fut, r\u00f6vid \u00e1ttekint\u00e9ssel r\u00f3luk.<\/p>\n<p><img decoding=\"async\" alt=\"A k9s \u00e1ttekint\u00e9se \u2014 fejlett termin\u00e1lfel\u00fclet Kuberneteshez\" src=\"\/wp-content\/uploads\/2020\/10\/8e0d8c41b8673b7c29f2605d3ae59503.png\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nLehet, hogy csak a podok \u00e9rdekelnek \u2014 akkor elegend\u0151 be\u00edrni <code>:pod<\/code>. ConfigMap eset\u00e9n (<code>:cm<\/code> \u2014 ezeknek az er\u0151forr\u00e1soknak a list\u00e1ja) ki lehet v\u00e1lasztani a sz\u00e1munkra \u00e9rdekes objektumot, \u00e9s megnyomni az \u00abu\u00bb gombot, ekkor a K9s megmondja, hogy ki haszn\u00e1lja azt (ezt a CM-t).<\/p>\n<p>M\u00e9g egy k\u00e9nyelmes funkci\u00f3 az er\u0151forr\u00e1sok megtekint\u00e9s\u00e9hez \u2014 az <b>\u00abr\u00f6ntgen\u00bb (XRay view)<\/b>. Ezt a m\u00f3dot a parancs h\u00edvja el\u0151 <code>:xray RESOURCE<\/code> \u00e9s\u2026 egyszer\u0171bb megmutatni, hogyan m\u0171k\u00f6dik, mint elmagyar\u00e1zni. \u00cdme egy illusztr\u00e1ci\u00f3 a StatefulSets sz\u00e1m\u00e1ra:<\/p>\n<p><img decoding=\"async\" alt=\"A k9s \u00e1ttekint\u00e9se \u2014 fejlett termin\u00e1lfel\u00fclet Kuberneteshez\" src=\"\/wp-content\/uploads\/2020\/10\/de40ebfe06ca935d2bc36323b3f16f3e.png\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<i>(Ezek k\u00f6z\u00fcl b\u00e1rmelyik er\u0151forr\u00e1s szerkeszthet\u0151, m\u00f3dos\u00edthat\u00f3, lehet vel\u00fck csin\u00e1lni <code>describe<\/code>.)<\/i><\/p>\n<p>\u00cdme egy Deployment Ingress-szel:<\/p>\n<p><img decoding=\"async\" alt=\"A k9s \u00e1ttekint\u00e9se \u2014 fejlett termin\u00e1lfel\u00fclet Kuberneteshez\" src=\"\/wp-content\/uploads\/2020\/10\/598c1b25b787dcb1cf9660fa730d74c5.png\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<\/p>\n<h2>Az er\u0151forr\u00e1sok kezel\u00e9se<\/h2>\n<p>\nMinden er\u0151forr\u00e1sr\u00f3l inform\u00e1ci\u00f3t kaphatunk YAML form\u00e1tumban vagy annak <code>describe<\/code> megnyom\u00e1s\u00e1val a megfelel\u0151 billenty\u0171kombin\u00e1ci\u00f3kkal (\u00aby\u00bb \u00e9s \u00abd\u00bb ennek megfelel\u0151en). Persze, az alapvet\u0151 m\u0171veletek sz\u00e1ma m\u00e9g t\u00f6bb: ezek list\u00e1ja \u00e9s a billenty\u0171kombin\u00e1ci\u00f3k mindig l\u00e1that\u00f3ak a k\u00e9nyelmes \u00abfejl\u00e9cben\u00bb az interf\u00e9szen (elrejthet\u0151 a Ctrl + e megnyom\u00e1s\u00e1val).<\/p>\n<p><img decoding=\"async\" alt=\"A k9s \u00e1ttekint\u00e9se \u2014 fejlett termin\u00e1lfel\u00fclet Kuberneteshez\" src=\"\/wp-content\/uploads\/2020\/10\/6bbe4ca07442e1e14a462586d14ef98d.png\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nB\u00e1rmely er\u0151forr\u00e1s szerkeszt\u00e9sekor (\u00abe\u00bb a kiv\u00e1laszt\u00e1s ut\u00e1n) megny\u00edlik a sz\u00f6vegszerkeszt\u0151, amelyet a k\u00f6rnyezeti v\u00e1ltoz\u00f3k hat\u00e1roznak meg (<code>export EDITOR=vim<\/code>).<\/p>\n<p>\u00cdme, hogyan n\u00e9z ki egy er\u0151forr\u00e1s r\u00e9szletes le\u00edr\u00e1sa (<code>describe<\/code>):<\/p>\n<p><img decoding=\"async\" alt=\"A k9s \u00e1ttekint\u00e9se \u2014 fejlett termin\u00e1lfel\u00fclet Kuberneteshez\" src=\"\/wp-content\/uploads\/2020\/10\/05fdb57e3b85d1b81c9bfc6414aca117.png\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nEz a kimenet (vagy a YAML-manifesztus er\u0151forr\u00e1s\u00e1nak megtekint\u00e9se) elmenthet\u0151 a szok\u00e1sos billenty\u0171parancs seg\u00edts\u00e9g\u00e9vel, Ctrl + s. Hova fog ment\u0151dni, azt a K9s \u00fczenet\u00e9b\u0151l tudhatj\u00e1k meg:<\/p>\n<pre><code class=\"plaintext\">Log \/tmp\/k9s-screens-root\/kubernetes\/Describe-1601244920104133900.yml sikeresen mentve!<\/code><\/pre>\n<p>\nA l\u00e9trehozott ment\u00e9si f\u00e1jlokb\u00f3l er\u0151forr\u00e1sokat is vissza lehet \u00e1ll\u00edtani, el\u0151tte elt\u00fcntetve a rendszerc\u00edmk\u00e9ket \u00e9s annot\u00e1ci\u00f3kat. Ehhez sz\u00fcks\u00e9ges bel\u00e9pni a mapp\u00e1ba (<code>:dir \/tmp<\/code>), majd ki kell v\u00e1lasztani a k\u00edv\u00e1nt f\u00e1jlt \u00e9s alkalmazni <code>apply<\/code>.<\/p>\n<p>Mellesleg b\u00e1rmikor vissza lehet t\u00e9rni a kor\u00e1bbi ReplicaSet-re, ha a jelenlegivel probl\u00e9ma van. Ehhez ki kell v\u00e1lasztani a k\u00edv\u00e1nt RS-t (<code>:rs<\/code> a list\u00e1jukhoz):<\/p>\n<p><img decoding=\"async\" alt=\"A k9s \u00e1ttekint\u00e9se \u2014 fejlett termin\u00e1lfel\u00fclet Kuberneteshez\" src=\"\/wp-content\/uploads\/2020\/10\/de0ea37d970c51514559288661bdc6f2.png\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\n\u2026 \u00e9s v\u00e9grehajtani a rollback-et a Ctrl + l seg\u00edts\u00e9g\u00e9vel. \u00c9rtes\u00edt\u00e9st kell kapnunk, hogy minden sikeresen lezajlott:<\/p>\n<pre><code class=\"plaintext\">k9s\/whoami-5cfbdbb469 sikeresen vissza\u00e1ll\u00edtva<\/code><\/pre>\n<p>\nA replik\u00e1k m\u00e9retez\u00e9s\u00e9hez elegend\u0151 megnyomni az 's' (scale) gombot, \u00e9s kiv\u00e1lasztani a k\u00edv\u00e1nt p\u00e9ld\u00e1nysz\u00e1mot:<\/p>\n<p><img decoding=\"async\" alt=\"A k9s \u00e1ttekint\u00e9se \u2014 fejlett termin\u00e1lfel\u00fclet Kuberneteshez\" src=\"\/wp-content\/uploads\/2020\/10\/145093030db754c9ef85810cbba3ed5c.png\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nB\u00e1rmelyik kont\u00e9nerhez shell-l\u00e9p\u00e9sben is lehet csatlakozni: ehhez l\u00e9pj\u00fcnk a k\u00edv\u00e1nt pod-hoz, nyomjuk meg az 's' (shell) gombot \u00e9s v\u00e1lasszuk ki a kont\u00e9nert.<\/p>\n<h2>Egy\u00e9b lehet\u0151s\u00e9gek<\/h2>\n<p>\nTerm\u00e9szetesen a logok megtekint\u00e9se is t\u00e1mogatott (az 'l' a kiv\u00e1lasztott er\u0151forr\u00e1shoz). \u00daj logok n\u00e9z\u00e9s\u00e9hez nem sz\u00fcks\u00e9ges folyamatosan nyomogatni az Enter-t: elegend\u0151 egy c\u00edmke l\u00e9trehoz\u00e1sa ('m'), ami ut\u00e1n csak az \u00faj \u00fczeneteket figyelj\u00fck.<\/p>\n<p><img decoding=\"async\" alt=\"A k9s \u00e1ttekint\u00e9se \u2014 fejlett termin\u00e1lfel\u00fclet Kuberneteshez\" src=\"\/wp-content\/uploads\/2020\/10\/05aa9657f744b9e3d09034862e1befe7.png\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nUgyanebben az ablakban id\u0151tartamot is v\u00e1laszthatunk a logok ki\u00edr\u00e1s\u00e1ra:<\/p>\n<ul>\n<li> az '1' gomb \u2014 1 percig;<\/li>\n<li> '2' \u2014 5 perc;<\/li>\n<li> '3' \u2014 15 perc;<\/li>\n<li> '4' \u2014 30 perc;<\/li>\n<li> '5' \u2014 1 \u00f3ra;<\/li>\n<li> \u201e0\u201d \u2014 a pod \u00e9lettartama alatt.<\/li>\n<\/ul>\n<p>\nA Pulse speci\u00e1lis \u00fczemm\u00f3d (parancs <code>:pulse<\/code>) \u00e1ltal\u00e1nos inform\u00e1ci\u00f3kat mutat a Kubernetes klaszterr\u0151l:<\/p>\n<p><img decoding=\"async\" alt=\"A k9s \u00e1ttekint\u00e9se \u2014 fejlett termin\u00e1lfel\u00fclet Kuberneteshez\" src=\"\/wp-content\/uploads\/2020\/10\/413d241ad7518f49c523fa59f51702a6.png\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nItt l\u00e1thatjuk az er\u0151forr\u00e1sok sz\u00e1m\u00e1t \u00e9s \u00e1llapotukat (z\u00f6lddel jel\u00f6lik, amelyek ' <code>Fut\u00e1sban<\/code>).<\/p>\n<p>Egy m\u00e1sik \u00e9rdekes funkci\u00f3ja a K9s-nek a k\u00f6vetkez\u0151k\u00e9ppen h\u00edvj\u00e1k <b>Popeye<\/b>. Ez ellen\u0151rzi az \u00f6sszes er\u0151forr\u00e1st bizonyos helyess\u00e9gi krit\u00e9riumok alapj\u00e1n \u00e9s megjelen\u00edti a kapott '\u00e9rt\u00e9kel\u00e9st' magyar\u00e1zatokkal egy\u00fctt. P\u00e9ld\u00e1ul l\u00e1thatjuk, hogy hi\u00e1nyoznak korl\u00e1tok vagy limit \u00e9rt\u00e9kek, esetleg egy kont\u00e9ner root felhaszn\u00e1l\u00f3 alatt futtathat\u00f3...<\/p>\n<p><img decoding=\"async\" alt=\"A k9s \u00e1ttekint\u00e9se \u2014 fejlett termin\u00e1lfel\u00fclet Kuberneteshez\" src=\"\/wp-content\/uploads\/2020\/10\/a6bc5ea45b5749fb4e1038b82374b3c4.png\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nAlapvet\u0151 t\u00e1mogat\u00e1s \u00e9rhet\u0151 el Helm sz\u00e1m\u00e1ra. P\u00e9ld\u00e1ul \u00edgy megn\u00e9zhetj\u00fck a klaszterbe telep\u00edtett verzi\u00f3kat:<\/p>\n<pre><code class=\"bash\">:helm all # mind\n:helm $namespace # adott n\u00e9vt\u00e9rben\n<\/code><\/pre>\n<p><\/p>\n<h2>Benchmark<\/h2>\n<p>\nA K9s-be ak\u00e1r egy <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/rakyll\/hey\">hey<\/a><\/noindex> is be\u00e9p\u00edtett\u00e9k - ez egy egyszer\u0171 terhel\u00e9sgener\u00e1tor HTTP szerverhez, alternat\u00edv\u00e1ja a jobban ismert ab (ApacheBench)-nek.<\/p>\n<p>A bekapcsol\u00e1s\u00e1hoz sz\u00fcks\u00e9ges a port-forward aktiv\u00e1l\u00e1sa a pod-ban. Ehhez v\u00e1lasszuk ki a pod-ot, \u00e9s nyomjuk meg a Shift + f-ot, l\u00e9pj\u00fcnk a port-forward almok men\u00fcbe a 'pf' alias seg\u00edts\u00e9g\u00e9vel.<\/p>\n<p><img decoding=\"async\" alt=\"A k9s \u00e1ttekint\u00e9se \u2014 fejlett termin\u00e1lfel\u00fclet Kuberneteshez\" src=\"\/wp-content\/uploads\/2020\/10\/651f25269c0998c716ab9c0c4b5e0455.png\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nA port kiv\u00e1laszt\u00e1sa ut\u00e1n \u00e9s a Ctrl + b megnyom\u00e1s\u00e1val elindul a benchmark. A munk\u00e1ja eredm\u00e9nyei elment\u00e9sre ker\u00fclnek <code>\/tmp<\/code> \u00e9s a k\u00e9s\u0151bbi megtekint\u00e9shez el\u00e9rhet\u0151k lesznek a K9s-ben. <\/p>\n<p><img decoding=\"async\" alt=\"A k9s \u00e1ttekint\u00e9se \u2014 fejlett termin\u00e1lfel\u00fclet Kuberneteshez\" src=\"\/wp-content\/uploads\/2020\/10\/57b2fe1d078e9aca1c6afccd318094da.png\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<img decoding=\"async\" alt=\"A k9s \u00e1ttekint\u00e9se \u2014 fejlett termin\u00e1lfel\u00fclet Kuberneteshez\" src=\"\/wp-content\/uploads\/2020\/10\/3b2bf031e8442e47eb3482187ac5b64d.png\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nA benchmark konfigur\u00e1ci\u00f3j\u00e1nak megv\u00e1ltoztat\u00e1s\u00e1hoz l\u00e9tre kell hozni egy f\u00e1jlt <code>$HOME\/.k9s\/bench-.yml<\/code> (minden klaszterre meghat\u00e1rozott).<\/p>\n<p><i>NB: Fontos, hogy minden YAML f\u00e1jl kiterjeszt\u00e9se a k\u00f6vetkez\u0151 k\u00f6nyvt\u00e1rban <code>.k9s<\/code> \u00e9ppen <code>.yml<\/code> (<code>.yaml<\/code> nem m\u0171k\u00f6dik helyesen).<\/i><\/p>\n<p>P\u00e9lda konfigur\u00e1ci\u00f3:<\/p>\n<pre><code class=\"bash\">benchmarks:\n  defaults:\n    # Sz\u00e1lak sz\u00e1ma\n    concurrency: 2\n    # K\u00e9r\u00e9sek sz\u00e1ma\n    requests: 1000\n  containers:\n    # Be\u00e1ll\u00edt\u00e1sok a benchmark kont\u00e9nerhez\n    # A kont\u00e9nert namespace\/pod-name:container-name form\u00e1tumban kell megadni\n    default\/nginx:nginx:\n      concurrency: 2\n      requests: 10000\n      http:\n        path: \/\n        method: POST\n        body:\n          {\"foo\":\"bar\"}\n        header:\n          Accept:\n            - text\/html\n          Content-Type:\n            - application\/json\n services:\n    # Benchmark v\u00e9gezhet\u0151 NodePort \u00e9s LoadBalancer t\u00edpus\u00fa szolg\u00e1ltat\u00e1sokon is\n    # Szintaxis: namespace\/service-name\n    default\/nginx:\n      concurrency: 5\n      requests: 500\n      http:\n        method: GET\n        path: \/auth\n      auth:\n        user: flant\n        password: s3cr3tp455w0rd\n<\/code><\/pre>\n<p><\/p>\n<h2>Fel\u00fclet<\/h2>\n<p>\nAz er\u0151forr\u00e1slist\u00e1k oszlopainak megjelen\u00e9se f\u00e1jl l\u00e9trehoz\u00e1s\u00e1val m\u00f3dos\u00edthat\u00f3 <code>$HOME\/.k9s\/views.yml<\/code>. P\u00e9lda a tartalm\u00e1ra:<\/p>\n<pre><code class=\"plaintext\">k9s:\n n\u00e9zetek:\n   v1\/podok:\n     oszlopok:\n       - \u00c9LETKOR\n       - NAMESPACE\n       - N\u00c9V\n       - IP\n       - CSOM\u00d3PONT\n       - \u00c1LLAPOT\n       - K\u00c9SZ\n   v1\/szolg\u00e1ltat\u00e1sok:\n     oszlopok:\n       - \u00c9LETKOR\n       - NAMESPACE\n       - N\u00c9V\n       - T\u00cdPUS\n       - KLASZTER-IP\n<\/code><\/pre>\n<p>\n<i>Igaz, hi\u00e1nyzik egy oszlop a c\u00edmk\u00e9kre vonatkoz\u00f3an, amire van <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/derailed\/k9s\/issues\/605\">probl\u00e9ma a projektben<\/a><\/noindex>.<\/i><\/p>\n<p>Az oszlopok szerinti rendez\u00e9s billenty\u0171kombin\u00e1ci\u00f3kkal t\u00f6rt\u00e9nik:<\/p>\n<ul>\n<li> Shift + n \u2014 n\u00e9v szerint;<\/li>\n<li> Shift + o \u2014 csom\u00f3pontok szerint;<\/li>\n<li> Shift + i \u2014 IP szerint;<\/li>\n<li> Shift + a \u2014 kont\u00e9ner \u00e9lettartam szerint;<\/li>\n<li> Shift + t \u2014 \u00fajraind\u00edt\u00e1sok sz\u00e1ma szerint;<\/li>\n<li> Shift + r \u2014 k\u00e9sz \u00e1llapot szerint;<\/li>\n<li> Shift + c \u2014 CPU haszn\u00e1lat szerint;<\/li>\n<li> Shift + m \u2014 mem\u00f3ria haszn\u00e1lat szerint.<\/li>\n<\/ul>\n<p>\nHa valakinek nem tetszik az alap\u00e9rtelmezett sz\u00edn\u00f6ssze\u00e1ll\u00edt\u00e1s, a K9s m\u00e9g t\u00e1mogatta <noindex><a rel=\"nofollow\" href=\"https:\/\/k9scli.io\/topics\/skins\/\">b\u0151v\u00edtm\u00e9nyeket<\/a><\/noindex>. K\u00e9szen \u00e1ll\u00f3 p\u00e9ld\u00e1k (7 db) \u00e1llnak rendelkez\u00e9sre <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/derailed\/k9s\/tree\/master\/skins\">itt<\/a><\/noindex>. Itt van egy p\u00e9lda egy ilyen b\u0151v\u00edtm\u00e9nyre <i>(a haditenger\u00e9szetben)<\/i>:<\/p>\n<p><img decoding=\"async\" alt=\"A k9s \u00e1ttekint\u00e9se \u2014 fejlett termin\u00e1lfel\u00fclet Kuberneteshez\" src=\"\/wp-content\/uploads\/2020\/10\/4a4378f2c2d36eb3985e2b71d733c444.png\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<\/p>\n<h2>B\u0151v\u00edtm\u00e9nyek<\/h2>\n<p>\nV\u00e9g\u00fcl, <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/derailed\/k9s\/tree\/master\/plugins\">a b\u0151v\u00edtm\u00e9nyek<\/a><\/noindex> lehet\u0151v\u00e9 teszik a K9s k\u00e9pess\u00e9geinek b\u0151v\u00edt\u00e9s\u00e9t. \u00c9n magam a munk\u00e1mban csak egyet haszn\u00e1ltam k\u00f6z\u00fcl\u00fck \u2014 <code>kubectl get all -n $namespace<\/code>.<\/p>\n<p>Ez \u00edgy n\u00e9z ki. K\u00e9sz\u00edt\u00fcnk egy f\u00e1jlt <code>$HOME\/.k9s\/plugin.yml<\/code> a k\u00f6vetkez\u0151 tartalommal:<\/p>\n<pre><code class=\"bash\">plugin:\n get-all:\n   shortCut: g    \n   confirm: false    \n   description: get all\n   scopes:\n   - all\n   command: sh\n   background: false\n   args:\n   - -c\n   - \"kubectl -n $NAMESPACE get all -o wide | less\"<\/code><\/pre>\n<p>\nMost m\u00e1r lehet v\u00e1ltani a n\u00e9vt\u00e9rbe, \u00e9s megnyomni az 'g' billenty\u0171t a megfelel\u0151 parancs v\u00e9grehajt\u00e1s\u00e1hoz:<\/p>\n<p><img decoding=\"async\" alt=\"A k9s \u00e1ttekint\u00e9se \u2014 fejlett termin\u00e1lfel\u00fclet Kuberneteshez\" src=\"\/wp-content\/uploads\/2020\/10\/c79bbf26b6c321a97cedabf22f1699b9.png\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nA b\u0151v\u00edtm\u00e9nyek k\u00f6z\u00f6tt van p\u00e9ld\u00e1ul integr\u00e1ci\u00f3 a kubectl-jq-val \u00e9s a napl\u00f3megjelen\u00edt\u0151 eszk\u00f6zzel <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/wercker\/stern\">stern<\/a><\/noindex>.<\/p>\n<h2>Z\u00e1r\u00e1s<\/h2>\n<p>\nSzerintem a K9s nagyon k\u00e9nyelmes a haszn\u00e1latban: viszonylag gyorsan hozz\u00e1szokik, hogy mindent sz\u00fcks\u00e9geset an\u00e9lk\u00fcl keressen, hogy <code>kubectl<\/code>. \u00d6r\u00f6mmel t\u00f6lt\u00f6tte el a napl\u00f3k megtekint\u00e9se \u00e9s ment\u00e9se, az er\u0151forr\u00e1sok gyors szerkeszt\u00e9se, a gyorsas\u00e1g, \u00e9s hasznos volt a Popeye \u00fczemm\u00f3d is. K\u00fcl\u00f6n eml\u00edt\u00e9st \u00e9rdemelnek a b\u0151v\u00edtm\u00e9nyek l\u00e9trehoz\u00e1s\u00e1nak \u00e9s az alkalmaz\u00e1s testreszab\u00e1s\u00e1nak lehet\u0151s\u00e9gei.<\/p>\n<p><i>* B\u00e1r amikor nagy mennyis\u00e9g\u0171 napl\u00f3van, \u00e9szleltem, hogy a K9s lassan m\u0171k\u00f6dik. Ilyenkor az eszk\u00f6z 2 magot is haszn\u00e1lt az Intel Xeon E312xx-b\u00f3l, \u00e9s ak\u00e1r m\u00e9g meg is fagytak.<\/i><\/p>\n<p>Mi hi\u00e1nyzik jelenleg? Gyors vissza\u00e1ll\u00edt\u00e1s az el\u0151z\u0151 verzi\u00f3ra (nem az RS-r\u0151l) an\u00e9lk\u00fcl, hogy bel\u00e9pne a k\u00f6nyvt\u00e1rba. R\u00e1ad\u00e1sul a helyre\u00e1ll\u00edt\u00e1s csak a <i>teljes<\/i> er\u0151forr\u00e1shoz t\u00f6rt\u00e9nik: ha t\u00f6r\u00f6lte az annot\u00e1ci\u00f3t vagy c\u00edmk\u00e9t, akkor az eg\u00e9sz er\u0151forr\u00e1st is t\u00f6r\u00f6lni \u00e9s helyre\u00e1ll\u00edtani kell (itt m\u00e1r sz\u00fcks\u00e9g lesz bel\u00e9pni a k\u00f6nyvt\u00e1rba). Egy m\u00e1sik kis dolog \u2014 hi\u00e1nyzik az ilyen mentett \u201eb\u00e9k\u00e1k\u201d d\u00e1tuma.<\/p>\n<h2>P.S.<\/h2>\n<p>\nOlvasson tov\u00e1bbi inform\u00e1ci\u00f3kat a blogunkban:<\/p>\n<ul>\n<li> \u00ab<noindex><a rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/company\/flant\/blog\/506948\/\">A Kubernetes grafikus fel\u00fcleteinek \u00e1ttekint\u00e9se<\/a><\/noindex>\u00bb;<\/li>\n<li> \u00ab<noindex><a rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/company\/flant\/blog\/468041\/\">A Kubernetes Web View webes interf\u00e9sz bejelent\u00e9se (\u00e9s m\u00e1s Kubernetes web UI r\u00f6vid \u00e1ttekint\u00e9se)<\/a><\/noindex>\u00bb;<\/li>\n<li> \u00ab<noindex><a rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/company\/flant\/blog\/426985\/\">kubebox \u00e9s m\u00e1s parancssori fel\u00fcletek a Kuberneteshez<\/a><\/noindex>\u00bb.<\/li>\n<\/ul>\n<p>Forr\u00e1s: <a content=\"nofollow\" rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/company\/flant\/blog\/524196\/\">habr.com<\/a> <\/p>","protected":false,"gt_translate_keys":[{"key":"rendered","format":"html"}]},"excerpt":{"rendered":"<p>K9s \u043f\u0440\u0435\u0434\u043e\u0441\u0442\u0430\u0432\u043b\u044f\u0435\u0442 \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044c\u0441\u043a\u0438\u0439 \u0438\u043d\u0442\u0435\u0440\u0444\u0435\u0439\u0441 \u0442\u0435\u0440\u043c\u0438\u043d\u0430\u043b\u0430 \u0434\u043b\u044f \u0432\u0437\u0430\u0438\u043c\u043e\u0434\u0435\u0439\u0441\u0442\u0432\u0438\u044f \u0441 \u043a\u043b\u0430\u0441\u0442\u0435\u0440\u0430\u043c\u0438 Kubernetes. \u0426\u0435\u043b\u044c \u044d\u0442\u043e\u0433\u043e Open Source-\u043f\u0440\u043e\u0435\u043a\u0442\u0430 \u2014 \u043e\u0431\u043b\u0435\u0433\u0447\u0438\u0442\u044c \u0443\u0434\u043e\u0431\u043d\u0443\u044e \u043d\u0430\u0432\u0438\u0433\u0430\u0446\u0438\u044e \u043f\u043e \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u044f\u043c \u0432 K8s, \u043d\u0430\u0431\u043b\u044e\u0434\u0435\u043d\u0438\u0435 \u0437\u0430 \u043d\u0438\u043c\u0438 \u0438 \u0443\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u0435 \u0438\u043c\u0438. K9s \u043f\u043e\u0441\u0442\u043e\u044f\u043d\u043d\u043e \u0441\u043b\u0435\u0434\u0438\u0442 \u0437\u0430 \u0438\u0437\u043c\u0435\u043d\u0435\u043d\u0438\u044f\u043c\u0438 \u0432 Kubernetes \u0438 \u043f\u0440\u0435\u0434\u043b\u0430\u0433\u0430\u0435\u0442 \u0431\u044b\u0441\u0442\u0440\u044b\u0435 \u043a\u043e\u043c\u0430\u043d\u0434\u044b \u0434\u043b\u044f \u0440\u0430\u0431\u043e\u0442\u044b \u0441 \u043d\u0430\u0431\u043b\u044e\u0434\u0430\u0435\u043c\u044b\u043c\u0438 \u0440\u0435\u0441\u0443\u0440\u0441\u0430\u043c\u0438. \u041f\u0440\u043e\u0435\u043a\u0442 \u043d\u0430\u043f\u0438\u0441\u0430\u043d \u043d\u0430 Go, \u0441\u0443\u0449\u0435\u0441\u0442\u0432\u0443\u0435\u0442 \u0443\u0436\u0435 \u0431\u043e\u043b\u0435\u0435 \u043f\u043e\u043b\u0443\u0442\u043e\u0440\u0430 \u043b\u0435\u0442: \u043f\u0435\u0440\u0432\u044b\u0439 \u043a\u043e\u043c\u043c\u0438\u0442 [&hellip;]<\/p>\n","protected":false,"gt_translate_keys":[{"key":"rendered","format":"html"}]},"author":1,"featured_media":97737,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[688],"tags":[],"class_list":["post-97736","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-administrirovanie"],"aioseo_notices":[],"aioseo_head":"\n\t\t<!-- All in One SEO 5.0.3 - aioseo.com -->\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\/hu\/blog\/administrirovanie\/obzor-k9s-prodvinutogo-terminalnogo-interfejsa-dlya-kubernetes\" \/>\n\t\t<meta name=\"generator\" content=\"All in One SEO (AIOSEO) 5.0.3\" \/>\n\t\t<meta property=\"og:locale\" content=\"hu_HU\" \/>\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\udd47\u041e\u0431\u0437\u043e\u0440 k9s \u2014 \u043f\u0440\u043e\u0434\u0432\u0438\u043d\u0443\u0442\u043e\u0433\u043e \u0442\u0435\u0440\u043c\u0438\u043d\u0430\u043b\u044c\u043d\u043e\u0433\u043e \u0438\u043d\u0442\u0435\u0440\u0444\u0435\u0439\u0441\u0430 \u0434\u043b\u044f Kubernetes | ProHoster\" \/>\n\t\t<meta property=\"og:url\" content=\"https:\/\/prohoster.info\/hu\/blog\/administrirovanie\/obzor-k9s-prodvinutogo-terminalnogo-interfejsa-dlya-kubernetes\" \/>\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=\"2020-10-21T12:42:17+00:00\" \/>\n\t\t<meta property=\"article:modified_time\" content=\"2020-10-21T12:42:17+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\udd47A k9s \u00e1ttekint\u00e9se \u2014 fejlett termin\u00e1l interf\u00e9sz a Kuberneteshez | ProHoster","description":"","canonical_url":"https:\/\/prohoster.info\/hu\/blog\/administrirovanie\/obzor-k9s-prodvinutogo-terminalnogo-interfejsa-dlya-kubernetes","robots":"max-image-preview:large","keywords":"","webmasterTools":{"miscellaneous":""},"schema":null,"og:locale":"hu_HU","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\udd47\u041e\u0431\u0437\u043e\u0440 k9s \u2014 \u043f\u0440\u043e\u0434\u0432\u0438\u043d\u0443\u0442\u043e\u0433\u043e \u0442\u0435\u0440\u043c\u0438\u043d\u0430\u043b\u044c\u043d\u043e\u0433\u043e \u0438\u043d\u0442\u0435\u0440\u0444\u0435\u0439\u0441\u0430 \u0434\u043b\u044f Kubernetes | ProHoster","og:url":"https:\/\/prohoster.info\/hu\/blog\/administrirovanie\/obzor-k9s-prodvinutogo-terminalnogo-interfejsa-dlya-kubernetes","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":"2020-10-21T12:42:17+00:00","article:modified_time":"2020-10-21T12:42:17+00:00","article:publisher":"https:\/\/www.facebook.com\/prohoster","article:author":"https:\/\/www.facebook.com\/prohoster"},"aioseo_meta_data":{"post_id":"97736","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":"","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":null,"breadcrumb_settings":null,"limit_modified_date":false,"reviewed_by":null,"ai":null,"created":"2021-02-28 10:14:39","updated":"2022-10-03 07:12:05","focus_keyword":null,"additional_keywords":null,"truseo_locale":null},"gt_translate_keys":[{"key":"link","format":"url"}],"_links":{"self":[{"href":"https:\/\/prohoster.info\/hu\/wp-json\/wp\/v2\/posts\/97736","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/prohoster.info\/hu\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/prohoster.info\/hu\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/prohoster.info\/hu\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/prohoster.info\/hu\/wp-json\/wp\/v2\/comments?post=97736"}],"version-history":[{"count":0,"href":"https:\/\/prohoster.info\/hu\/wp-json\/wp\/v2\/posts\/97736\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/prohoster.info\/hu\/wp-json\/wp\/v2\/media\/97737"}],"wp:attachment":[{"href":"https:\/\/prohoster.info\/hu\/wp-json\/wp\/v2\/media?parent=97736"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/prohoster.info\/hu\/wp-json\/wp\/v2\/categories?post=97736"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/prohoster.info\/hu\/wp-json\/wp\/v2\/tags?post=97736"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}