Apache Kafka-klusterin käyttöönotto Kubernetes-alustalla
Lepistö, Eetu (2022)
Lepistö, Eetu
2022
All rights reserved. This publication is copyrighted. You may download, display and print it for Your own personal use. Commercial use is prohibited.
Julkaisun pysyvä osoite on
https://urn.fi/URN:NBN:fi:amk-202205067595
https://urn.fi/URN:NBN:fi:amk-202205067595
Tiivistelmä
Tämän opinnäytetyön tavoite oli tutustua Apache Kafkan ja Kubernetes-klusterin sovellusarkkitehtuuriin ja toimintaperiaatteisiin. Tämän lisäksi käytiin läpi modernin sovelluskehityksen taustalla vaikuttavaa DevOps-toimintatapaa. Käytännön osuudessa tavoitteena oli luoda toimiva Kafka-käyttöönotto ensin virtuaalikoneessa ja tämän jälkeen Kubernetes-alustalla. Toiminnan testauksessa käytettiin Kafkan tarjoamia demosovelluksia. Tämän lisäksi testattiin myös toimivan klusterin vikasietoisuus molemmissa käyttöönotoissa.
Toimeksiantajayritys pyrkii tulevaisuudessa ottamaan Apache Kafkan osaksi nykyistä ylläpitopalveluiden kokonaisuutta. Monia yrityksen palveluita ylläpi-detään Kubernetes-alustalla, jolloin ylläpitoon liittyviä toimintoja saadaan au-tomatisoitua. Loogista on siis käyttää samaa alustaa myös Kafkan ylläpitämi-seen.
Tuloksena syntyi kolmesta välittäjästä ja kolmesta Zookeeperista koostuva vikasietoinen Kafka-klusteri Kubernetes-alustalla. Työssä esitellään työvaiheet valituilla tekniikoilla tämän saavuttamiseksi. Kubernetes-käyttöönotossa käytettiin apuna avoimeen lähdekoodiin perustuvaa Strimzi-projektia, jonka tarjoamat apuohjelmat helpottavat prosessia. Kubernetes-klusteri saatiin käyttöön virtuaalikoneessa hyödyntämällä Minikubea.
Kafka-klusterin todellinen hyöty realisoituu vasta siihen kytkettyjen palveluiden kautta, joten työn lopussa pohdittiin myös, toimeksiantajan toiveiden lisäksi, muita mahdollisia jatkokehitysideoita Kafkan käytölle.
Tässä työssä esitellään yksi monista mahdollisista tavoista toteuttaa Kafka-klusterin käyttöönotto ja sen pohjalta voidaan tutkia myös uusia lähestymistapoja ongelmien ratkaisuun. Työ toimii myös askeleena kohti tuotantokelpoista Kafka-klusteria Kubernetes-alustalla, mikä tukee toimeksiantajan pitemmän aikavälin tavoitteita.
Toimeksiantajayritys pyrkii tulevaisuudessa ottamaan Apache Kafkan osaksi nykyistä ylläpitopalveluiden kokonaisuutta. Monia yrityksen palveluita ylläpi-detään Kubernetes-alustalla, jolloin ylläpitoon liittyviä toimintoja saadaan au-tomatisoitua. Loogista on siis käyttää samaa alustaa myös Kafkan ylläpitämi-seen.
Tuloksena syntyi kolmesta välittäjästä ja kolmesta Zookeeperista koostuva vikasietoinen Kafka-klusteri Kubernetes-alustalla. Työssä esitellään työvaiheet valituilla tekniikoilla tämän saavuttamiseksi. Kubernetes-käyttöönotossa käytettiin apuna avoimeen lähdekoodiin perustuvaa Strimzi-projektia, jonka tarjoamat apuohjelmat helpottavat prosessia. Kubernetes-klusteri saatiin käyttöön virtuaalikoneessa hyödyntämällä Minikubea.
Kafka-klusterin todellinen hyöty realisoituu vasta siihen kytkettyjen palveluiden kautta, joten työn lopussa pohdittiin myös, toimeksiantajan toiveiden lisäksi, muita mahdollisia jatkokehitysideoita Kafkan käytölle.
Tässä työssä esitellään yksi monista mahdollisista tavoista toteuttaa Kafka-klusterin käyttöönotto ja sen pohjalta voidaan tutkia myös uusia lähestymistapoja ongelmien ratkaisuun. Työ toimii myös askeleena kohti tuotantokelpoista Kafka-klusteria Kubernetes-alustalla, mikä tukee toimeksiantajan pitemmän aikavälin tavoitteita.