{"id":31890,"date":"2020-06-24T14:12:04","date_gmt":"2020-06-24T12:12:04","guid":{"rendered":"https:\/\/fotc.com\/kubernetes-tutorial\/"},"modified":"2022-05-10T11:22:03","modified_gmt":"2022-05-10T09:22:03","slug":"kubernetes-tutorial","status":"publish","type":"post","link":"https:\/\/fotc.com\/hu\/blog\/kubernetes-tutorial\/","title":{"rendered":"Kubernetes – mi ez \u00e9s hogyan kezdj\u00fck el haszn\u00e1lni? [Tutorial a GCP-n]"},"content":{"rendered":"\n
Kubernetes – mi ez \u00e9s hogyan kezdj\u00fck el haszn\u00e1lni?<\/strong><\/p>\n\n\n\n Egyre t\u00f6bb informatikai rendszert hoznak l\u00e9tre kont\u00e9nerek haszn\u00e1lat\u00e1val. A kont\u00e9nerez\u00e9s az alkalmaz\u00e1selemek (folyamatai, f\u00fcgg\u0151s\u00e9gei, k\u00f6nyvt\u00e1rai, konfigur\u00e1ci\u00f3s f\u00e1jljai vagy helyi adatb\u00e1zisai) dinamikusan kezelt t\u00e1rol\u00f3kba t\u00f6rt\u00e9n\u0151 elhelyez\u00e9s\u00e9r\u0151l sz\u00f3l. Egyes\u00edti a virtualiz\u00e1ci\u00f3 \u00e9s a rendszer fizikai szerveren tart\u00e1s\u00e1nak el\u0151nyeit. Vagyis biztos\u00edtja a sk\u00e1l\u00e1zhat\u00f3s\u00e1got, a szoftverek gyors \u00e9s k\u00f6nny\u0171 hordozhat\u00f3s\u00e1g\u00e1t \u00e9s a p\u00e9ld\u00e1nyok sz\u00e9tv\u00e1laszt\u00e1s\u00e1t a nagy teljes\u00edtm\u00e9ny fenntart\u00e1sa mellett. M\u00edg t\u00f6bb kont\u00e9ner manu\u00e1lisan vez\u00e9relhet\u0151, t\u00f6bb sz\u00e1z vagy ezer elosztott \u00e9s dinamikusan kezelt kont\u00e9ner eset\u00e9ben ez nagyon neh\u00e9zkess\u00e9 v\u00e1lik. A v\u00e1lasz az \u201eorchiestration\u201d, vagyis az automatiz\u00e1l\u00e1s bevezet\u00e9se a csoportok kezel\u00e9s\u00e9re \u00e9s a kont\u00e9nerek figyel\u00e9s\u00e9re. A legn\u00e9pszer\u0171bb ilyen eszk\u00f6z a Kubernetes.<\/strong><\/p>\n\n\n\n A Kubernetes egy ny\u00edlt forr\u00e1sk\u00f3d\u00fa platform, amelyet nagy m\u00e9ret\u0171 t\u00e1rol\u00f3k kezel\u00e9s\u00e9re haszn\u00e1lnak.<\/p>\n\n\n\n A n\u00e9v g\u00f6r\u00f6gb\u0151l sz\u00e1rmazik – a <\/span>\u201e<\/span>\u03ba\u03c5\u03b2\u03b5\u03c1\u03bd\u03ae\u03c4\u03b7\u03c2<\/span>\u201d <\/span>korm\u00e1nyz\u00f3t jelent, amely t\u00f6k\u00e9letesen k\u00f6zvet\u00edti a platform c\u00e9lj\u00e1t. A Kubernetes-t K8s-nek is h\u00edvj\u00e1k – ez egy r\u00f6vid\u00edt\u00e9s, ahol a nyolc <\/span>\u201e<\/span>ubernete<\/span>\u201d <\/span>bet\u0171 hely\u00e9be a <\/span>\u201e<\/span>8<\/span>\u201d <\/span>sz\u00e1m l\u00e9p.<\/span><\/p>\n\n\n\n Az eszk\u00f6zt a Google k\u00f6zel 20 \u00e9vvel ezel\u0151tt hozta l\u00e9tre a v\u00e1llalat produkci\u00f3s terhel\u00e9s\u00e9nek kezel\u00e9s\u00e9re. 2014-ben a projektet \u00e1tadt\u00e1k a Cloud Native Computing Alap\u00edtv\u00e1nynak, \u00e9s nyilv\u00e1noss\u00e1gra hozt\u00e1k – az\u00f3ta a platformot a Kuberneteset haszn\u00e1l\u00f3 szervezet, valamint v\u00e1llalatok \u00e9s szakemberek fejlesztik (a felhaszn\u00e1l\u00f3ik is r\u00e9szt vehetnek ny\u00edlt forr\u00e1sk\u00f3d\u00fa projektekben).<\/span><\/p>\n\n\n\n T\u00e1mogatja az automatikus bevezet\u00e9seket, az alkalmaz\u00e1sok sk\u00e1l\u00e1z\u00e1s\u00e1t, kezeli a kont\u00e9nereket \u00e9s figyeli a folyamatokat \u00e9s a v\u00e1ltoz\u00e1sokat. Az alkalmaz\u00e1stulajdonosok \u00e9s a platformot haszn\u00e1l\u00f3 fejleszt\u0151csapatok jobban \u00f6sszpontos\u00edthatnak term\u00e9keik fejleszt\u00e9s\u00e9re, mint DevOps tev\u00e9kenys\u00e9geikre (infrastrukt\u00fara-menedzsment \u00e9s a term\u00e9k ig\u00e9nyeinek val\u00f3 megfelel\u00e9s). A Kubernetes lehet\u0151v\u00e9 teszi klaszterek (egym\u00e1ssal egy\u00fcttm\u0171k\u00f6d\u0151 szervercsoportok) kezel\u00e9s\u00e9t, \u00edgy a felhaszn\u00e1l\u00f3 szempontj\u00e1b\u00f3l egy egyszer\u0171s\u00edtett rendszer jelenik meg. A K8s mentes\u00edti a fejleszt\u0151t az alkalmaz\u00e1s infrastruktur\u00e1lis k\u00f6vetelm\u00e9nyekhez val\u00f3 igaz\u00edt\u00e1s\u00e1nak k\u00f6telezetts\u00e9ge al\u00f3l – a szakember elrendeli az alkalmaz\u00e1s elind\u00edt\u00e1s\u00e1t, a Kubernetes pedig maga is fel tudja osztani a szolg\u00e1ltat\u00e1sokat klaszterek \u00e9s szerverek k\u00f6z\u00f6tt, \u00e9s a megfelel\u0151 t\u00e1rol\u00f3khoz ir\u00e1ny\u00edthatja. A Kubernetesnek megvan a saj\u00e1t terhel\u00e9seloszt\u00e1si form\u00e1ja, vagyis a terhel\u00e9s t\u00f6bb g\u00e9p k\u00f6z\u00f6tti eloszt\u00e1s\u00e1ra (kiegyenl\u00edt\u00e9s\u00e9re) szolg\u00e1l\u00f3 technik\u00e1k.<\/span><\/p>\n\n\n\n A K8s-t a legt\u00f6bb ny\u00edlt felh\u0151szolg\u00e1ltat\u00e1s t\u00e1mogatja, \u00edgy a <\/span>Google Cloud Platform is.<\/span><\/a><\/p>\n\n\n\n N\u00e9zd meg<\/strong>:<\/p>\n\n\n\n A Kubernetes platform lehet\u0151v\u00e9 teszi, hogy az \u00f6sszes klasztert, szervert \u00e9s kont\u00e9nert egy helyr\u0151l kezelje, f\u00fcggetlen\u00fcl att\u00f3l, hogy hol vannak a g\u00e9pek vagy az alkalmaz\u00e1s-\u00f6sszetev\u0151k. T\u00e1mogatja a csoportos tervez\u00e9st, megval\u00f3s\u00edt\u00e1st, m\u00e9retez\u00e9st \u00e9s az elemek \u00e9letciklusainak kezel\u00e9s\u00e9t.<\/p>\n\n\n\n A K8s k\u00f6zponti eleme a sk\u00e1l\u00e1zhat\u00f3s\u00e1g – az eszk\u00f6zt a Google heti t\u00f6bb milli\u00e1rd kont\u00e9ner futtat\u00e1s\u00e1ra hozta l\u00e9tre. A v\u00e9grehajtott m\u0171veletek, a haszn\u00e1lt g\u00e9pek vagy a kont\u00e9nerek sz\u00e1m\u00e1t\u00f3l f\u00fcggetlen\u00fcl nincs sz\u00fcks\u00e9g a DevOps csapat b\u0151v\u00edt\u00e9s\u00e9re vagy cs\u00f6kkent\u00e9s\u00e9re. V\u00edzszintesen is m\u00e9retezheti \u00e9s cs\u00f6kkentheti az er\u0151forr\u00e1sig\u00e9nyt parancsokkal a felhaszn\u00e1l\u00f3i fel\u00fcleten kereszt\u00fcl, vagy automatikusan a CPU terhel\u00e9se alapj\u00e1n.<\/p>\n\n\n\n A Kubernetes egy\u00fcttm\u0171k\u00f6dik a fizikai szerverek infrastrukt\u00far\u00e1j\u00e1val, felh\u0151- \u00e9s hibrid<\/strong> megold\u00e1sokkal (\u00f6sszekapcsolja a helyi k\u00f6zpontot a felh\u0151vel). K\u00fcl\u00f6nf\u00e9le nyilv\u00e1nos felh\u0151szolg\u00e1ltat\u00f3k t\u00e1mogatj\u00e1k. Pl.: Google Cloud Platform, Amazon Web Services vagy a Microsoft Azure.<\/span><\/p>\n\n\n\n Miut\u00e1n az alkalmaz\u00e1s elindult a platformon, hordozhat\u00f3 alkalmaz\u00e1ss\u00e1 v\u00e1lik. Az alkalmaz\u00e1s \u00e1truh\u00e1zhat\u00f3 k\u00f6rnyezetek (pl. fejleszt\u00e9s, tesztel\u00e9s, gy\u00e1rt\u00e1s) \u00e9s infrastruktur\u00e1lis megold\u00e1sok k\u00f6z\u00f6tt, az alkalmaz\u00e1s konzisztenci\u00e1j\u00e1nak fenntart\u00e1sa mellett.<\/span><\/p>\n\n\n\n A K8s fokozatosan vezeti be a v\u00e1ltoz\u00e1sokat, mik\u00f6zben figyelemmel k\u00eds\u00e9ri az egyes p\u00e9ld\u00e1nyok \u00e1llapot\u00e1t<\/strong>. Ha valami nem stimmel, a Kubernetes automatikusan visszaveti a m\u00f3dos\u00edt\u00e1sokat. Abban az esetben, ha az egyik t\u00e1rol\u00f3 \u00f6sszeomlik, az eszk\u00f6z lecser\u00e9li egy m\u00e1sikra, mik\u00f6zben a helyre\u00e1ll\u00edt\u00e1son vagy a felesleges elemek elt\u00e1vol\u00edt\u00e1s\u00e1n dolgozik.<\/span><\/p>\n\n\n\n A Kubernetes egy ny\u00edlt forr\u00e1sk\u00f3d\u00fa projekt. A fejleszt\u00e9s\u00e9ben nemcsak a tulajdonosok, de a platformot napi szinten haszn\u00e1l\u00f3 emberek is r\u00e9szt vesznek: fejleszt\u0151k, DevOps szakemberek, programoz\u00f3 v\u00e1llalatok<\/strong>. \u00daj elemeket hoznak l\u00e9tre, vagy javasolj\u00e1k a megl\u00e9v\u0151 folyamatok \u00e9s eszk\u00f6z\u00f6k fejleszt\u00e9s\u00e9t.<\/p>\n\n\n\n A platformot lelkesen haszn\u00e1lj\u00e1k a fejlett szolg\u00e1ltat\u00e1sokkal rendelkez\u0151, nagy mennyis\u00e9g\u0171 adatot kezel\u0151, z\u00f6kken\u0151mentes \u00e9s gyors fejleszt\u00e9sre \u00f6sszpontos\u00edt\u00f3 v\u00e1llalatok.<\/span><\/p>\n\n\n\n A Kubernetes lehet\u0151s\u00e9geit a Booking.com, a BlaBlaCar, az ING Group \u00e9s a Zalando is haszn\u00e1lja.<\/span><\/p>\n\n\n\n El\u0151sz\u00f6r l\u00e9pj\u00fcnk be a Google Cloud konzolra. <\/span>https:\/\/console.cloud.google.com\/<\/span><\/a>.<\/span><\/p>\n\n\n\n Hozzunk l\u00e9tre \u00faj projektet (kattintsunk a projekt nev\u00e9re a <\/span>\u201e<\/span>Google Cloud Platform<\/span>\u201d <\/span>felirat melletti bal fels\u0151 sarokban).<\/span><\/p>\n\n\n\n \u00cdrjuk be a projekt nev\u00e9t \u00e9s kattintsunk a Create<\/strong> gombra.<\/span><\/p>\n\n\n\n Ezut\u00e1n a projektlist\u00e1ra l\u00e9pve (a <\/span>\u201e<\/span>Google Cloud Platform<\/span>\u201d <\/span>felirat mellett) megkapjuk a projekt ID-j\u00e9t<\/strong>. Erre a tov\u00e1bbiakban sz\u00fcks\u00e9g\u00fcnk lesz.<\/span><\/p>\n\n\n\n Megnyitjuk a Cloudshellt<\/strong> (jobb fels\u0151 sarok).<\/span><\/p>\n\n\n\n Az al\u00e1bbi paranccsal be\u00e1ll\u00edtjuk a projektet, amellyel dolgozni fogunk:<\/span><\/p>\n\n\n Figyelj oda, hogy a parancsba a projekted ID-j\u00e1t \u00edrd be. Ez k\u00fcl\u00f6nb\u00f6zhet a p\u00e9ld\u00e1ban haszn\u00e1ltt\u00f3l.<\/span><\/p>\n\n\n\n Ezut\u00e1n be\u00e1ll\u00edtjuk a r\u00e9gi\u00f3t, amelyben be szeretn\u00e9nk vezetni az alkalmaz\u00e1st:<\/span><\/p>\n\n\n A r\u00e9gi\u00f3k list\u00e1j\u00e1t az al\u00e1bbi helyen tal\u00e1ljuk: <\/span>https:\/\/cloud.google.com\/about\/locations#europe<\/span><\/a><\/p>\n\n\n\n Klasztert az al\u00e1bbi paranccsal hozhatunk l\u00e9tre:<\/p>\n\n\n A <\/span>\u2013<\/span>num-nodes<\/strong> flag seg\u00edts\u00e9g\u00e9vel \u00e1ll\u00edthatjuk be a node-ok (fizikai vagy virtu\u00e1lis g\u00e9p) sz\u00e1m\u00e1t a klaszterben. A flagr\u0151l tov\u00e1bbi inform\u00e1ci\u00f3t tal\u00e1lsz az al\u00e1bbi linken: <\/span>https:\/\/cloud.google.com\/sdk\/gcloud\/reference\/container\/clusters\/create#\u2013num-nodes<\/span><\/a><\/p>\n\n\n\n Ez az oper\u00e1ci\u00f3 n\u00e9h\u00e1ny percet vesz ig\u00e9nybe.<\/strong><\/p>\n\n\n\n Az oper\u00e1ci\u00f3 v\u00e9g\u00e9n a Cloudshellben<\/strong> megkapjuk azt a t\u00e1bl\u00e1zatot, amely tartalmazza a klaszter param\u00e9tereit.<\/span><\/p>\n\n\n\n Ezut\u00e1n haszn\u00e1ljuk az al\u00e1bbi parancsot:<\/span><\/p>\n\n\n A parancs aktualiz\u00e1lja a kubeconfig<\/strong> f\u00e1jlt a megfelel\u0151 referenci\u00e1kkal \u00e9s inform\u00e1ci\u00f3kkal, amelyek a klaszter tov\u00e1bbi haszn\u00e1lat\u00e1hoz sz\u00fcks\u00e9gesek.<\/span><\/p>\n\n\n\n Az alkalmaz\u00e1s bevezet\u00e9s\u00e9hez a klaszterre haszn\u00e1ljuk az al\u00e1bbi parancsot: <\/span><\/p>\n\n\n Az <\/span>\u2013<\/span>image<\/strong> flag mutat arra a linkre, amin a kont\u00e9neriz\u00e1lt alkalmaz\u00e1s el\u00e9rhet\u0151 a Container Registryben (GCR). A Container Registry<\/strong> seg\u00edt az alkalmaz\u00e1s kont\u00e9neriz\u00e1lt k\u00e9p\u00e9nek t\u00e1rol\u00e1s\u00e1ban. A GCR-r\u0151l tov\u00e1bbi inform\u00e1ci\u00f3t tal\u00e1lsz az al\u00e1bbi linken: <\/span>https:\/\/cloud.google.com\/container-registry<\/span><\/a><\/p>\n\n\n\n Itt tal\u00e1lhat\u00f3 a bevezetend\u0151 hello-app<\/strong> alkalmaz\u00e1s forr\u00e1sk\u00f3dja: <\/span>https:\/\/github.com\/GoogleCloudPlatform\/kubernetes-engine-samples\/blob\/master\/hello-app\/main.go<\/span><\/a><\/p>\n\n\n\n Az alkalmaz\u00e1sunkat bevezethetj\u00fck a Container Registryben<\/strong> t\u00e1rolt kont\u00e9neriz\u00e1lt alkalmaz\u00e1sk\u00e9p seg\u00edts\u00e9g\u00e9vel.<\/span><\/p>\n\n\n\n Most fel kell fedn\u00fcnk az alkalmaz\u00e1st (ezpose). Erre a c\u00e9lra haszn\u00e1ljuk az al\u00e1bbi parancsot:<\/span><\/p>\n\n\n A kubectl<\/strong> parancsr\u00f3l tov\u00e1bbi inform\u00e1ci\u00f3t tal\u00e1lsz az al\u00e1bbi linken: <\/span>https:\/\/kubernetes.io\/docs\/reference\/generated\/kubectl\/kubectl-commands#expose<\/span><\/a><\/p>\n\n\n\n A <\/span>\u2013<\/span>type<\/strong> flag mutatja meg, hogy milyen t\u00edpus\u00fa bevezet\u00e9sr\u0151l van sz\u00f3 (ClusterIP, NodePort, LoadBalancer lub ExternalName). Ebben az esetben LoadBalancert<\/strong> hozunk l\u00e9tre, ami lehet\u0151v\u00e9 teszi, hogy az alkalmaz\u00e1s el\u00e9rhet\u0151 legyen az interneten.<\/span><\/p>\n\n\n\n A \u2013target<\/strong>-port flag azt a portot mutatja meg a kont\u00e9neren, ahov\u00e1 a forgalmat ir\u00e1ny\u00edtani kell.<\/span><\/p>\n\n\n\n Ezut\u00e1n adjuk meg az al\u00e1bbi parancsot: <\/span><\/p>\n\n\n Ezzel megkapjuk annak a klaszternek a publikus IP<\/strong> c\u00edm\u00e9t, amelyre bevezett\u00fck az alkalmaz\u00e1st.<\/p>\n\n\n\n Eredm\u00e9ny<\/p>\n\n\n\n A klaszter t\u00f6rl\u00e9s\u00e9hez \u00e9s a bevezet\u00e9s visszah\u00edv\u00e1s\u00e1hoz haszn\u00e1ljuk az al\u00e1bbi parancsot:<\/p>\n\n\n Ezek voltak a Kubernetes alapjai!<\/span><\/p>\n\n\n\n Ha szeretn\u00e9d kipr\u00f3b\u00e1lni a Kubernetest, \u00e9s egy\u00fattal a Google Cloud Platform lehet\u0151s\u00e9geit <\/span>\u2013 <\/span>sz\u00e1mtalan lehet\u0151s\u00e9get rejt\u0151 sk\u00e1l\u00e1zhat\u00f3 felh\u0151 infrastrukt\u00fara <\/span>\u2013<\/span>, akkor <\/span>vedd fel vel\u00fcnk a kapcsolatot<\/span><\/a>. Hivatalos Google Cloud Premier Partnerk\u00e9nt<\/strong> garant\u00e1lunk neked egy 500 doll\u00e1r \u00e9rt\u00e9k\u0171 kupont, aminek a seg\u00edts\u00e9g\u00e9vel elkezdheted haszn\u00e1lni a GCP-t. Emellett technikai t\u00e1mogat\u00e1st ny\u00fajtunk, \u00e9s az ig\u00e9nybe vett szolg\u00e1ltat\u00e1sok\u00e9rt helyi valut\u00e1ban fizethetsz.<\/span><\/p>\n","protected":false},"excerpt":{"rendered":" Kubernetes – mi ez \u00e9s hogyan kezdj\u00fck el haszn\u00e1lni? Egyre t\u00f6bb informatikai rendszert hoznak l\u00e9tre kont\u00e9nerek haszn\u00e1lat\u00e1val. A kont\u00e9nerez\u00e9s az alkalmaz\u00e1selemek (folyamatai, f\u00fcgg\u0151s\u00e9gei, k\u00f6nyvt\u00e1rai, konfigur\u00e1ci\u00f3s f\u00e1jljai vagy helyi adatb\u00e1zisai) dinamikusan kezelt t\u00e1rol\u00f3kba t\u00f6rt\u00e9n\u0151 elhelyez\u00e9s\u00e9r\u0151l sz\u00f3l. Egyes\u00edti a virtualiz\u00e1ci\u00f3 \u00e9s a rendszer fizikai szerveren tart\u00e1s\u00e1nak el\u0151nyeit. Vagyis biztos\u00edtja a sk\u00e1l\u00e1zhat\u00f3s\u00e1got, a szoftverek gyors \u00e9s k\u00f6nny\u0171 hordozhat\u00f3s\u00e1g\u00e1t … Continued<\/a><\/p>\n","protected":false},"author":13,"featured_media":20530,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_editorskit_title_hidden":false,"_editorskit_reading_time":7,"_editorskit_typography_data":[],"_editorskit_blocks_typography":"","_editorskit_is_block_options_detached":false,"_editorskit_block_options_position":"{}"},"categories":[561],"tags":[415,419,509],"yoast_head":"\n
\n<\/p>\n\n\n\n\n\n\n\nMi az a Kubernetes?<\/h2>\n\n\n\n
K\u00f6zpontos\u00edt\u00e1s<\/h3>\n\n\n\n
Sk\u00e1l\u00e1zhat\u00f3s\u00e1g<\/h3>\n\n\n\n
K\u00fcl\u00f6nb\u00f6z\u0151 infrastruktur\u00e1lis megold\u00e1sok<\/h3>\n\n\n\n
\u00d6sszhang a k\u00f6rnyezetek k\u00f6z\u00f6tt<\/h3>\n\n\n\n
A meghib\u00e1sod\u00e1sok megel\u0151z\u00e9se \u00e9s az \u00f6njav\u00edt\u00e1s<\/h3>\n\n\n\n
A platform folyamatos fejleszt\u00e9se<\/h3>\n\n\n\n
A Kubernetes haszn\u00e1lata – p\u00e9lda:<\/h2>\n\n\n\n
Kubernetes a Google Cloud Platfromon – tutorial<\/h2>\n\n\n\n
<\/figure>\n\n\n\n
<\/figure>\n\n\n\n
<\/figure>\n\n\n\n
<\/figure>\n\n\n\n
gcloud config set project k8s-demo-281313<\/pre>\n\n\n\n
<\/figure>\n\n\n\n
gcloud config set compute\/zone europe-west3-c<\/pre>\n\n\n\n
<\/figure>\n\n\n\n
gcloud container clusters create my-cluster--num-nodes=1<\/pre>\n\n\n\n
<\/figure>\n\n\n\n
gcloud container clusters get-credentials my-cluster<\/pre>\n\n\n\n
<\/figure>\n\n\n\n
kubectl create deployment hello-server --image=gcr.io\/google-samples\/hello-app:1.0<\/pre>\n\n\n\n
<\/figure>\n\n\n\n
kubectl expose deployment hello-server --type LoadBalancer \\\n--port 80 --target-port 8080<\/pre>\n\n\n\n
kubectl get service hello-server<\/pre>\n\n\n\n
<\/figure>\n\n\n\n
<\/figure>\n\n\n\n
kubectl delete service hello-server\ngcloud container clusters delete my-cluster<\/pre>\n\n\n\n
<\/figure>\n\n\n\n
Kubernetes a Google Cloud Platformon – szerezz egy 500 doll\u00e1ros kupont.<\/h2>\n\n\n\n