{"id":82902,"date":"2020-05-26T13:42:27","date_gmt":"2020-05-26T11:42:27","guid":{"rendered":"https:\/\/prohoster.info\/blog\/administrirovanie\/luchshie-praktiki-kubernetes-mapping-vneshnih-servisov"},"modified":"2020-05-26T13:42:27","modified_gmt":"2020-05-26T11:42:27","slug":"luchshie-praktiki-kubernetes-mapping-vneshnih-servisov","status":"publish","type":"post","link":"https:\/\/prohoster.info\/pl\/blog\/administrirovanie\/luchshie-praktiki-kubernetes-mapping-vneshnih-servisov","title":{"rendered":"Najlepsze praktyki Kubernetes. Mapowanie zewn\u0119trznych us\u0142ug","gt_translate_keys":[{"key":"rendered","format":"text"}]},"content":{"rendered":"<p><noindex><a rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/company\/ua-hosting\/blog\/502052\/\">Najlepsze praktyki Kubernetes. Tworzenie ma\u0142ych kontener\u00f3w<\/a><\/noindex><br \/>\n<noindex><a rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/company\/ua-hosting\/blog\/502320\/\">Najlepsze praktyki Kubernetes. Organizacja Kubernetes z przestrzeni\u0105 nazw<\/a><\/noindex><br \/>\n<noindex><a rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/company\/ua-hosting\/blog\/502430\/\">Najlepsze praktyki Kubernetes. Sprawdzanie \u017cywotno\u015bci Kubernetes za pomoc\u0105 test\u00f3w Readiness i Liveness<\/a><\/noindex><br \/>\n<noindex><a rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/company\/ua-hosting\/blog\/502614\/\">Najlepsze praktyki Kubernetes. Konfiguracja \u017c\u0105da\u0144 i limit\u00f3w zasob\u00f3w<\/a><\/noindex><br \/>\n<noindex><a rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/company\/ua-hosting\/blog\/503488\/\">Najlepsze praktyki Kubernetes. Prawid\u0142owe wy\u0142\u0105czanie Terminate<\/a><\/noindex><\/p>\n<p>Je\u015bli jeste\u015b jak wi\u0119kszo\u015b\u0107 ludzi, prawdopodobnie korzystasz z zasob\u00f3w dzia\u0142aj\u0105cych poza swoim klastrem. Mo\u017cliwe, \u017ce u\u017cywasz API Taleo do wysy\u0142ania wiadomo\u015bci tekstowych lub analizujesz obrazy za pomoc\u0105 API Google Cloud Vision.<noindex><a rel=\"nofollow\" name=\"habracut\"><\/a><\/noindex><\/p>\n<p>Je\u015bli korzystasz z tego samego punktu ko\u0144cowego \u2014 punktu odbioru zapyta\u0144 po stronie serwera we wszystkich swoich \u015brodowiskach i nie planujesz przenosi\u0107 swoich serwer\u00f3w do Kubernetes, to ca\u0142kowicie w porz\u0105dku jest mie\u0107 punkt ko\u0144cowy us\u0142ugi bezpo\u015brednio w swoim kodzie. Istnieje jednak wiele innych scenariuszy rozwoju wydarze\u0144. W tej serii 'Kubernetes Best Practices' dowiesz si\u0119, jak wykorzysta\u0107 wbudowane mechanizmy Kubernetes do odkrywania us\u0142ug zar\u00f3wno wewn\u0105trz, jak i na zewn\u0105trz klastra. <\/p>\n<p>Jako przyk\u0142ad powszechnie u\u017cywanej zewn\u0119trznej us\u0142ugi mo\u017cna poda\u0107 baz\u0119 danych dzia\u0142aj\u0105c\u0105 poza klastrem Kubernetes. W przeciwie\u0144stwie do takich baz danych w chmurze, jak Google Cloud Data Store czy Google Cloud Spanner, kt\u00f3re u\u017cywaj\u0105 jednego punktu ko\u0144cowego do wszystkich rodzaj\u00f3w dost\u0119pu, wi\u0119kszo\u015b\u0107 baz danych ma oddzielne punkty ko\u0144cowe dla r\u00f3\u017cnych sytuacji.<br \/>\nNajlepsze praktyki w korzystaniu z tradycyjnych baz danych, takich jak MySQL i MongoDB, zazwyczaj zak\u0142adaj\u0105, \u017ce \u0142\u0105czysz si\u0119 z r\u00f3\u017cnymi komponentami dla r\u00f3\u017cnych \u015brodowisk. Mo\u017cesz mie\u0107 wi\u0119ksz\u0105 maszyn\u0119 dla danych produkcyjnych i mniejsz\u0105 maszyn\u0119 dla \u015brodowiska testowego. Ka\u017cda z nich b\u0119dziesz mia\u0142a swoje adresy IP lub nazwy domen, ale z pewno\u015bci\u0105 nie chcia\u0142by\u015b zmienia\u0107 swojego kodu, przechodz\u0105c z jednego \u015brodowiska do drugiego. Dlatego zamiast twardego kodowania tych adres\u00f3w mo\u017cesz skorzysta\u0107 z wbudowanej w Kubernetes us\u0142ugi odkrywania zewn\u0119trznych us\u0142ug opartych na DNS, dok\u0142adnie tak samo, jak w przypadku natywnych us\u0142ug Kubernetes.<\/p>\n<p><img decoding=\"async\" alt=\"Najlepsze praktyki Kubernetes. Mapowanie zewn\u0119trznych us\u0142ug\" src=\"\/wp-content\/uploads\/2020\/05\/b64f2f5857f32d2d927c8dad1e4b1e36.png\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nZa\u0142\u00f3\u017cmy, \u017ce uruchamiasz baz\u0119 danych MongoDB w Google Compute Engine. Utkniesz w tym hybrydowym \u015bwiecie, dop\u00f3ki nie uda ci si\u0119 przenie\u015b\u0107 jej do klastra.<\/p>\n<p>Na szcz\u0119\u015bcie mo\u017cesz skorzysta\u0107 ze statycznych us\u0142ug Kubernetes, aby cho\u0107 troch\u0119 u\u0142atwi\u0107 sobie \u017cycie. W tym przyk\u0142adzie stworzy\u0142em serwer MongoDB za pomoc\u0105 Google Cloud Launcher. Poniewa\u017c zosta\u0142 on utworzony w tej samej sieci (lub VPC klastra Kubernetes), dost\u0119p do niego odbywa si\u0119 za pomoc\u0105 wydajnego wewn\u0119trznego adresu IP.<\/p>\n<p><img decoding=\"async\" alt=\"Najlepsze praktyki Kubernetes. Mapowanie zewn\u0119trznych us\u0142ug\" src=\"\/wp-content\/uploads\/2020\/05\/cafe19eabc8ac144d27bd06f6c44ac5f.png\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nW Google Cloud to ustawienie jest domy\u015blne, wi\u0119c nie musisz nic konfigurowa\u0107. Teraz, gdy mamy adres IP, pierwszym krokiem jest stworzenie us\u0142ugi. Mo\u017cna zauwa\u017cy\u0107, \u017ce dla tej us\u0142ugi nie ma \u017cadnych selektor\u00f3w pod\u00f3w. Oznacza to, \u017ce stworzyli\u015bmy us\u0142ug\u0119, kt\u00f3ra nie b\u0119dzie wiedzie\u0107, gdzie kierowa\u0107 ruch. Umo\u017cliwi to r\u0119czne stworzenie obiektu endpoint, kt\u00f3ry b\u0119dzie odbiera\u0142 ruch z tej us\u0142ugi. <\/p>\n<p><img decoding=\"async\" alt=\"Najlepsze praktyki Kubernetes. Mapowanie zewn\u0119trznych us\u0142ug\" src=\"\/wp-content\/uploads\/2020\/05\/4f3643f3ce2f2d3f5b207429bb269058.png\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nNast\u0119pny przyk\u0142ad kodu pokazuje, \u017ce punkty ko\u0144cowe okre\u015blaj\u0105 adres IP dla bazy danych, u\u017cywaj\u0105c tej samej nazwy mongo, co us\u0142uga.<\/p>\n<p><img decoding=\"async\" alt=\"Najlepsze praktyki Kubernetes. Mapowanie zewn\u0119trznych us\u0142ug\" src=\"\/wp-content\/uploads\/2020\/05\/dbba2655a9e2295cb8a7de4c97eddc8f.png\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nKubernetes b\u0119dzie u\u017cywa\u0107 wszystkich adres\u00f3w IP, aby znale\u017a\u0107 punkty ko\u0144cowe, jakby by\u0142y zwyk\u0142ymi podami Kubernetes, wi\u0119c teraz mo\u017cesz uzyska\u0107 dost\u0119p do bazy danych za pomoc\u0105 prostego ci\u0105gu po\u0142\u0105czenia do powy\u017cszej nazwy mongodb:\/\/mongo. Przy tym nie ma potrzeby u\u017cywania adres\u00f3w IP w swoim kodzie.<\/p>\n<p>Je\u015bli w przysz\u0142o\u015bci adresy IP si\u0119 zmieni\u0105, mo\u017cna po prostu zaktualizowa\u0107 punkty ko\u0144cowe za pomoc\u0105 nowego adresu IP, a twoje aplikacje nie musz\u0105 by\u0107 w \u017caden spos\u00f3b zmieniane.<\/p>\n<p>Je\u015bli u\u017cywasz bazy danych umieszczonej na zewn\u0119trznym ho\u015bcie, prawdopodobnie w\u0142a\u015bciciele hosta dostarczyli ci do po\u0142\u0105czenia zunifikowany identyfikator zasobu URI. Je\u015bli wi\u0119c otrzyma\u0142e\u015b adres IP, mo\u017cna po prostu skorzysta\u0107 z poprzedniej metody. Ten przyk\u0142ad pokazuje, \u017ce mam dwie bazy danych MongoDB umieszczone na ho\u015bcie mLab.<\/p>\n<p><img decoding=\"async\" alt=\"Najlepsze praktyki Kubernetes. Mapowanie zewn\u0119trznych us\u0142ug\" src=\"\/wp-content\/uploads\/2020\/05\/088a578041c3d7c924c77f0a2e67e323.png\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nJedna z nich to baza danych dla deweloper\u00f3w, a druga to baza produkcyjna. Ci\u0105gi po\u0142\u0105czenia dla tych baz danych wygl\u0105daj\u0105 nast\u0119puj\u0105co \u2014 mLab dostarcza ci dynamiczny URI i dynamiczny port. Jak wida\u0107, s\u0105 r\u00f3\u017cne.<\/p>\n<p><img decoding=\"async\" alt=\"Najlepsze praktyki Kubernetes. Mapowanie zewn\u0119trznych us\u0142ug\" src=\"\/wp-content\/uploads\/2020\/05\/41d2e22371e85b7e794a9df7b2db515d.png\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nAby si\u0119 od tego abstrahowa\u0107, u\u017cywamy Kubernetes i \u0142\u0105czymy si\u0119 z baz\u0105 danych deweloper\u00f3w. Mo\u017cesz stworzy\u0107 zewn\u0119trzn\u0105 nazw\u0119 us\u0142ugi Kubernetes, kt\u00f3ra dostarczy ci statyczn\u0105 us\u0142ug\u0119, kt\u00f3ra b\u0119dzie kierowa\u0107 ruch do zewn\u0119trznej us\u0142ugi. <\/p>\n<p><img decoding=\"async\" alt=\"Najlepsze praktyki Kubernetes. Mapowanie zewn\u0119trznych us\u0142ug\" src=\"\/wp-content\/uploads\/2020\/05\/ed07c1e9818a6641b29d5c941bdf68cb.png\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nTa us\u0142uga wykona prost\u0105 przekierowanie CNAME na poziomie j\u0105dra, co b\u0119dzie mia\u0142o minimalny wp\u0142yw na wydajno\u015b\u0107. Dzi\u0119ki temu mo\u017cesz u\u017cywa\u0107 prostszego ci\u0105gu po\u0142\u0105czenia.<\/p>\n<p><img decoding=\"async\" alt=\"Najlepsze praktyki Kubernetes. Mapowanie zewn\u0119trznych us\u0142ug\" src=\"\/wp-content\/uploads\/2020\/05\/ee5442aec9c1a9d19f78bd92d44a97ec.png\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nJednak poniewa\u017c zewn\u0119trzna nazwa u\u017cywa przekierowania CNAME, nie mo\u017ce ona wykona\u0107 przekierowania port\u00f3w. Dlatego to rozwi\u0105zanie jest stosowane tylko dla statycznych port\u00f3w i nie mo\u017ce by\u0107 u\u017cywane z dynamicznymi portami. Jednak darmowy plan mLab Free Tier domy\u015blnie przydziela u\u017cytkownikowi dynamiczny numer portu i nie mo\u017cna tego zmieni\u0107. Oznacza to, \u017ce dla dev i prod potrzebne s\u0105 r\u00f3\u017cne ci\u0105gi polece\u0144 do \u0142\u0105czenia. S\u0142abo\u015bci\u0105 jest to, \u017ce numer portu b\u0119dzie musia\u0142 by\u0107 zakodowany na sztywno. Jak wi\u0119c sprawi\u0107, by przekierowanie port\u00f3w dzia\u0142a\u0142o?<\/p>\n<p>Pierwszym krokiem jest uzyskanie adresu IP z URI. Wykonuj\u0105c polecenie nslookup, hostname lub pinguj\u0105c URI, mo\u017cna uzyska\u0107 adres IP bazy danych. Je\u015bli przy tym us\u0142uga zwraca wiele adres\u00f3w IP, mo\u017cna u\u017cywa\u0107 wszystkich tych adres\u00f3w w punktach ko\u0144cowych obiektu.<\/p>\n<p><img decoding=\"async\" alt=\"Najlepsze praktyki Kubernetes. Mapowanie zewn\u0119trznych us\u0142ug\" src=\"\/wp-content\/uploads\/2020\/05\/6cd63eb3c8bd733afbd7fe791ef7b8f4.png\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nNale\u017cy pami\u0119ta\u0107, \u017ce adresy IP URI mog\u0105 si\u0119 zmienia\u0107 bez wcze\u015bniejszego powiadomienia, dlatego u\u017cywanie ich w prod jest do\u015b\u0107 ryzykowne. Taki adres IP pozwala na po\u0142\u0105czenie z zdaln\u0105 baz\u0105 danych bez wskazywania portu. W ten spos\u00f3b us\u0142uga Kubernetes do\u015b\u0107 przejrzy\u015bcie realizuje przekierowanie port\u00f3w.<\/p>\n<p><img decoding=\"async\" alt=\"Najlepsze praktyki Kubernetes. Mapowanie zewn\u0119trznych us\u0142ug\" src=\"\/wp-content\/uploads\/2020\/05\/3f718da15739fd42dc640f44b34c7cab.png\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nMapowanie, czyli przypisywanie zasob\u00f3w zewn\u0119trznych do wewn\u0119trznych, daje mo\u017cliwo\u015b\u0107 elastycznego wykorzystania tych us\u0142ug w klastrze w przysz\u0142o\u015bci przy minimalnym wysi\u0142ku zwi\u0105zanym z refaktoryzacj\u0105. U\u0142atwia to r\u00f3wnie\u017c zarz\u0105dzanie i daje zrozumienie, z jakich zewn\u0119trznych us\u0142ug korzysta twoja firma. <\/p>\n<p>Ci\u0105g dalszy wkr\u00f3tce\u2026<\/p>\n<p><center><div class=\"youtube-placeholder\" data-id=\"fvpq4jqtuZ8\" onclick=\"loadVideo(this)\">\r\n        <img decoding=\"async\" src=\"https:\/\/img.youtube.com\/vi\/fvpq4jqtuZ8\/hqdefault.jpg\" alt=\"Odtwarzaj wideo\" loading=\"lazy\" width=\"480\" height=\"360\" style=\"width:100%;height:auto;\">\r\n        <div class=\"play-button\"><\/div>\r\n    <\/div><\/center><\/p>\n<h3>Troch\u0119 reklamy \ud83d\ude42<\/h3>\n<p>\nDzi\u0119kujemy, \u017ce jeste\u015b z nami. Podobaj\u0105 Ci si\u0119 nasze artyku\u0142y? Chcesz zobaczy\u0107 wi\u0119cej interesuj\u0105cych materia\u0142\u00f3w? Wspieraj nas sk\u0142adaj\u0105c zam\u00f3wienie lub polecaj\u0105c nas znajomym, <noindex><a rel=\"nofollow\" href=\"https:\/\/ua-hosting.company\/cloudvps\/nl\">chmurowe VPS dla programist\u00f3w od 4,99 $<\/a><\/noindex>, <b>unikatowy odpowiednik serwer\u00f3w entry-level, kt\u00f3ry zosta\u0142 stworzony przez nas dla Ciebie:<\/b> <noindex><a rel=\"nofollow\" href=\"https:\/\/habr.com\/company\/ua-hosting\/blog\/347386\/\">Ca\u0142a prawda o VPS (KVM) E5-2697 v3 (6 rdzeni) 10GB DDR4 480GB SSD 1Gbps od 19 $ lub jak prawid\u0142owo podzieli\u0107 serwer?<\/a><\/noindex> (dost\u0119pne opcje z RAID1 i RAID10, do 24 rdzeni i do 40GB DDR4).<\/p>\n<p><b>Dell R730xd dwa razy ta\u0144szy w centrum danych Equinix Tier IV w Amsterdamie?<\/b> Tylko u nas <b><noindex><a rel=\"nofollow\" href=\"https:\/\/ua-hosting.company\/serversnl\">2 x Intel TetraDeca-Core Xeon 2x E5-2697v3 2.6GHz 14C 64GB DDR4 4x960GB SSD 1Gbps 100TB od 199 dolar\u00f3w<\/a><\/noindex> w Holandii! <b>Dell R420 \u2014 2x E5-2430 2.2Ghz 6C 128GB DDR3 2x960GB SSD 1Gbps 100TB \u2014 od 99 dolar\u00f3w!<\/b><\/b> Czytaj o tym <noindex><a rel=\"nofollow\" href=\"https:\/\/habr.com\/company\/ua-hosting\/blog\/329618\/\">Jak zbudowa\u0107 infrastruktur\u0119 klasy korporacyjnej z zastosowaniem serwer\u00f3w Dell R730xd E5-2650 v4 kosztuj\u0105cych 9000 euro za grosze?<\/a><\/noindex><br \/>\n<br \/>\u0179r\u00f3d\u0142o: <a content=\"nofollow\" rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/company\/ua-hosting\/blog\/503612\/\">habr.com<\/a> <\/p>","protected":false,"gt_translate_keys":[{"key":"rendered","format":"html"}]},"excerpt":{"rendered":"<p>\u041b\u0443\u0447\u0448\u0438\u0435 \u043f\u0440\u0430\u043a\u0442\u0438\u043a\u0438 Kubernetes. \u0421\u043e\u0437\u0434\u0430\u043d\u0438\u0435 \u043d\u0435\u0431\u043e\u043b\u044c\u0448\u0438\u0445 \u043a\u043e\u043d\u0442\u0435\u0439\u043d\u0435\u0440\u043e\u0432 \u041b\u0443\u0447\u0448\u0438\u0435 \u043f\u0440\u0430\u043a\u0442\u0438\u043a\u0438 Kubernetes. \u041e\u0440\u0433\u0430\u043d\u0438\u0437\u0430\u0446\u0438\u044f Kubernetes \u0441 \u043f\u0440\u043e\u0441\u0442\u0440\u0430\u043d\u0441\u0442\u0432\u043e\u043c \u0438\u043c\u0435\u043d \u041b\u0443\u0447\u0448\u0438\u0435 \u043f\u0440\u0430\u043a\u0442\u0438\u043a\u0438 Kubernetes. \u041f\u0440\u043e\u0432\u0435\u0440\u043a\u0430 \u0436\u0438\u0437\u043d\u0435\u0441\u043f\u043e\u0441\u043e\u0431\u043d\u043e\u0441\u0442\u0438 Kubernetes \u0441 \u043f\u043e\u043c\u043e\u0449\u044c\u044e \u0442\u0435\u0441\u0442\u043e\u0432 Readiness \u0438 Liveness \u041b\u0443\u0447\u0448\u0438\u0435 \u043f\u0440\u0430\u043a\u0442\u0438\u043a\u0438 Kubernetes. \u041d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0430 \u0437\u0430\u043f\u0440\u043e\u0441\u043e\u0432 \u0438 \u043b\u0438\u043c\u0438\u0442\u043e\u0432 \u0440\u0435\u0441\u0443\u0440\u0441\u043e\u0432 \u041b\u0443\u0447\u0448\u0438\u0435 \u043f\u0440\u0430\u043a\u0442\u0438\u043a\u0438 Kubernetes. \u041a\u043e\u0440\u0440\u0435\u043a\u0442\u043d\u043e\u0435 \u043e\u0442\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u0435 Terminate \u0415\u0441\u043b\u0438 \u0432\u044b \u043f\u043e\u0445\u043e\u0436\u0438 \u043d\u0430 \u0431\u043e\u043b\u044c\u0448\u0438\u043d\u0441\u0442\u0432\u043e \u043b\u044e\u0434\u0435\u0439, \u0442\u043e, \u0441\u043a\u043e\u0440\u0435\u0435 \u0432\u0441\u0435\u0433\u043e \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u0442\u0435 \u0440\u0435\u0441\u0443\u0440\u0441\u044b, \u0444\u0443\u043d\u043a\u0446\u0438\u043e\u043d\u0438\u0440\u0443\u044e\u0449\u0438\u0435 \u0437\u0430 \u043f\u0440\u0435\u0434\u0435\u043b\u0430\u043c\u0438 \u0432\u0430\u0448\u0435\u0433\u043e [&hellip;]<\/p>\n","protected":false,"gt_translate_keys":[{"key":"rendered","format":"html"}]},"author":1,"featured_media":82903,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[688],"tags":[],"class_list":["post-82902","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.1.1 - aioseo.com -->\n\t<meta name=\"description\" content=\"\u041b\u0443\u0447\u0448\u0438\u0435 \u043f\u0440\u0430\u043a\u0442\u0438\u043a\u0438 Kubernetes.\" \/>\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\/pl\/blog\/administrirovanie\/luchshie-praktiki-kubernetes-mapping-vneshnih-servisov\" \/>\n\t<meta name=\"generator\" content=\"All in One SEO (AIOSEO) 5.0.1.1\" \/>\n\t\t<meta property=\"og:locale\" content=\"pl_PL\" \/>\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\u041b\u0443\u0447\u0448\u0438\u0435 \u043f\u0440\u0430\u043a\u0442\u0438\u043a\u0438 Kubernetes. \u041c\u0430\u043f\u043f\u0438\u043d\u0433 \u0432\u043d\u0435\u0448\u043d\u0438\u0445 \u0441\u0435\u0440\u0432\u0438\u0441\u043e\u0432 | ProHoster\" \/>\n\t\t<meta property=\"og:description\" content=\"\u041b\u0443\u0447\u0448\u0438\u0435 \u043f\u0440\u0430\u043a\u0442\u0438\u043a\u0438 Kubernetes.\" \/>\n\t\t<meta property=\"og:url\" content=\"https:\/\/prohoster.info\/pl\/blog\/administrirovanie\/luchshie-praktiki-kubernetes-mapping-vneshnih-servisov\" \/>\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-05-26T11:42:27+00:00\" \/>\n\t\t<meta property=\"article:modified_time\" content=\"2020-05-26T11:42:27+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\udd47Najlepsze praktyki Kubernetes. Mapowanie us\u0142ug zewn\u0119trznych | ProHoster","description":"Najlepsze praktyki Kubernetes.","canonical_url":"https:\/\/prohoster.info\/pl\/blog\/administrirovanie\/luchshie-praktiki-kubernetes-mapping-vneshnih-servisov","robots":"max-image-preview:large","keywords":"","webmasterTools":{"miscellaneous":""},"schema":null,"og:locale":"pl_PL","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\u041b\u0443\u0447\u0448\u0438\u0435 \u043f\u0440\u0430\u043a\u0442\u0438\u043a\u0438 Kubernetes. \u041c\u0430\u043f\u043f\u0438\u043d\u0433 \u0432\u043d\u0435\u0448\u043d\u0438\u0445 \u0441\u0435\u0440\u0432\u0438\u0441\u043e\u0432 | ProHoster","og:description":"\u041b\u0443\u0447\u0448\u0438\u0435 \u043f\u0440\u0430\u043a\u0442\u0438\u043a\u0438 Kubernetes.","og:url":"https:\/\/prohoster.info\/pl\/blog\/administrirovanie\/luchshie-praktiki-kubernetes-mapping-vneshnih-servisov","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-05-26T11:42:27+00:00","article:modified_time":"2020-05-26T11:42:27+00:00","article:publisher":"https:\/\/www.facebook.com\/prohoster","article:author":"https:\/\/www.facebook.com\/prohoster"},"aioseo_meta_data":{"post_id":"82902","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 15:29:29","updated":"2022-10-02 08:31:16","focus_keyword":null,"additional_keywords":null,"truseo_locale":null},"gt_translate_keys":[{"key":"link","format":"url"}],"_links":{"self":[{"href":"https:\/\/prohoster.info\/pl\/wp-json\/wp\/v2\/posts\/82902","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/prohoster.info\/pl\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/prohoster.info\/pl\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/prohoster.info\/pl\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/prohoster.info\/pl\/wp-json\/wp\/v2\/comments?post=82902"}],"version-history":[{"count":0,"href":"https:\/\/prohoster.info\/pl\/wp-json\/wp\/v2\/posts\/82902\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/prohoster.info\/pl\/wp-json\/wp\/v2\/media\/82903"}],"wp:attachment":[{"href":"https:\/\/prohoster.info\/pl\/wp-json\/wp\/v2\/media?parent=82902"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/prohoster.info\/pl\/wp-json\/wp\/v2\/categories?post=82902"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/prohoster.info\/pl\/wp-json\/wp\/v2\/tags?post=82902"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}