Kubernetes-klusterin automatisoitu käyttöönotto AWS-pilvipalvelussa
Ahola, Toni (2020)
Ahola, Toni
2020
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-2020121327890
https://urn.fi/URN:NBN:fi:amk-2020121327890
Tiivistelmä
Toimeksiantajana toimi Valtion tieto- ja viestintätekniikkakeskus Valtori, joka tuottaa toimialariippumattomat ICT-palvelut valtionhallinnolle. Tavoitteena oli luoda Infrastructure as a Code -työkaluin automaattisesti pystytettävä, skaalautuva korkean saatavuuden konttiorkestrointijärjestelmä pilvipalveluun. Teknologiavertailuiden jälkeen päätettiin pystyttää hallittu EKS Kubernetes-klusteri AWS-pilvipalveluun. Infrastruktuuri koodattiin käyttäen Terraform Infrastructure as a Code -työkalua.
Klusteriin vaadittavia komponentteja varten tehtiin Terraform -moduulit, jotka sisältävät
resurssikokonaisuuksia ja ovat käytettävissä moniin ympäristöihin. Klusteria varten luotiin
virtuaaliverkko, jonka aliverkot sijaitsevat kolmella eri saatavuusvyöhykkeellä. Kubernetes-klusterin hallintataso luodaan monennetusti kolmelle eri saatavuusvyöhykkeelle. Klusterin
työläisnoodit luodaan autoskaalausryhmään, joka skaalaa instanssien määrää kolmella eri
saatavuusvyöhykkeellä. Klusteriin sisällytetään kontrollerit, jotka mahdollistavat klusterin
autoskaaluksen, DNS-tietuiden luonnin, monitoroinnin, sekä sovellusten paljastamisen
klusterin ulkopuolelle.
Klusterin toimivuutta, skaalautuvuutta ja saatavuutta testattiin luomalla testisovellus, joka paljastettiin klusterin ulkopuolelle. Sovellusta kuormitettiin ja tutkittiin klusterin skaalautuvuutta. Klusterin saatavuutta testattiin poistamalla työläisnoodeja kuormitetusta klusterista.
Klusteriin vaadittavia komponentteja varten tehtiin Terraform -moduulit, jotka sisältävät
resurssikokonaisuuksia ja ovat käytettävissä moniin ympäristöihin. Klusteria varten luotiin
virtuaaliverkko, jonka aliverkot sijaitsevat kolmella eri saatavuusvyöhykkeellä. Kubernetes-klusterin hallintataso luodaan monennetusti kolmelle eri saatavuusvyöhykkeelle. Klusterin
työläisnoodit luodaan autoskaalausryhmään, joka skaalaa instanssien määrää kolmella eri
saatavuusvyöhykkeellä. Klusteriin sisällytetään kontrollerit, jotka mahdollistavat klusterin
autoskaaluksen, DNS-tietuiden luonnin, monitoroinnin, sekä sovellusten paljastamisen
klusterin ulkopuolelle.
Klusterin toimivuutta, skaalautuvuutta ja saatavuutta testattiin luomalla testisovellus, joka paljastettiin klusterin ulkopuolelle. Sovellusta kuormitettiin ja tutkittiin klusterin skaalautuvuutta. Klusterin saatavuutta testattiin poistamalla työläisnoodeja kuormitetusta klusterista.