Skip to main content
Login | Suomeksi | På svenska | In English

Browsing by Subject "Kubernetes"

Sort by: Order: Results:

  • Tuomala, Tero (2020)
    Tutkielmassa käydään yleisellä tasolla läpi DevOps- ja SRE (Site Reliability Engineering)-menetelmät ja tutkitaan miten niitä voidaan hyödyntää nykyaikaisessa ohjelmistokehityksessä erityisesti automatisoinnin ja mittaamisen osalta. Tutkielmassa käydään myös läpi erilaisia teknologioita, kuten kontit, virtuaalikoneet, serverless, Docker, konttien orkestrointi ja Kubernetes. Lisäksi tutkielmassa selvitetään infrastruktuuri koodina (engl. "Infrastructure as Code") lähestymistapaa infrastruktuurin automatisointiin ja GitOps-menetelmää toteuttaa jatkuvaa toimitusta (engl. "Continuous Deployment") pilvisovelluksille. Tutkielman aikana kehitettiin selvitettyjä menetelmiä ja teknologioita hyödyntäen Kubernetes-klusterin automatisoitu käyttöönotto Google Cloud Platform -alustan tarjoaman Google Kubernetes Enginen päälle. Tutkielmassa toteutettiin myös esimerkkiluontoinen web-palvelu, johon kuuluu asiakassovellus, REST-rajapinta, GraphQL-palvelin, Redis-välimuistipalvelu ja PostgreSQL-tietokanta. Web-palvelun kehittämistä varten toteutettiin paikallinen Kubernetes-kehitysympäristö. Tutkielmassa toteutettiin myös web-palvelun jatkuva toimitus Google Kubernetes Enginen päällä toimivaan Kubernetes-klusteriin käyttämällä GitOps-menetelmää. Lisäksi tutkielmassa toteutettiin web-palvelun REST-rajapintaa ja GraphQL-palvelinta varten luodut kuvitteelliset mittarit ja palvelutasotavoitteet. Tutkielman aikana toteutetuilla Kubernetes-klusterin automatisoidulla käyttöönotolla infrastruktuuri koodina menetelmällä ja esimerkkiluontoisen web-palvelun jatkuvalla toimituksella Kubernetes-klusteriin GitOps-menetelmää hyödyntämällä luotiin pohjaa työkaluille ja menetelmille, joita voisi tulevaisuudessa hyödyntää myös muillekin Kuberneteksessa toimiville sovelluksille.
  • Hyeongju, Lee (2021)
    The number of IoT and sensor devices is expected to reach 25 billion by 2030. Many IoT appli- cations, such as connected vehicle and smart factory that require high availability, scalability, low latency, and security have appeared in the world. There have been many attempts to use cloud computing for IoT applications, but the mentioned requirements cannot be ensured in cloud environments. To solve this problem, edge computing has appeared in the world. In edge environments, containerization technology is useful to deploy apps with limited resources. In this thesis, two types of high available Kubernetes architecture (2 nodes with an external DB and 3 nodes with embedded DB) were surveyed and implemented using K3s distribution that is suitable for edges. By having a few experiments with the implemented K3s clusters, this thesis shows that the K3s clusters can provide high availability and scalability. We discuss the limitations of the implementations and provide possible solutions too. In addition, we provide the resource usages of each cluster in terms of CPU, RAM, and disk. Both clusters need only less than 10% CPU and about 500MB RAM on average. However, we could see that the 3 nodes cluster with embedded DB uses more resources than the 2 nodes + external DB cluster when changing the status of clusters. Finally, we show that the implemented K3s clusters are suitable for many IoT applications such as connected vehicle and smart factory. If an application that needs high availability and scalability has to be deployed in edge environments, the K3s clusters can provide good solutions to achieve the goals of the applications. The 2 nodes + external DB cluster is suitable for the applications where the amount of data fluctuate often, or where there is a stable connection with the external DB. On the other hand, the 3 nodes cluster will be suitable for the applications that need high availability of the database even in poor internet connection. ACM Computing Classification System (CCS) Computer systems organization → Embedded and cyber-physical systems Human-centered computing → Ubiquitous and mobile computing
  • Lee, Hyeongju (2021)
    The number of IoT and sensor devices is expected to reach 25 billion by 2030. Many IoT appli- cations, such as connected vehicle and smart factory that require high availability, scalability, low latency, and security have appeared in the world. There have been many attempts to use cloud computing for IoT applications, but the mentioned requirements cannot be ensured in cloud environments. To solve this problem, edge computing has appeared in the world. In edge environments, containerization technology is useful to deploy apps with limited resources. In this thesis, two types of high available Kubernetes architecture (2 nodes with an external DB and 3 nodes with embedded DB) were surveyed and implemented using K3s distribution that is suitable for edges. By having a few experiments with the implemented K3s clusters, this thesis shows that the K3s clusters can provide high availability and scalability. We discuss the limitations of the implementations and provide possible solutions too. In addition, we provide the resource usages of each cluster in terms of CPU, RAM, and disk. Both clusters need only less than 10% CPU and about 500MB RAM on average. However, we could see that the 3 nodes cluster with embedded DB uses more resources than the 2 nodes + external DB cluster when changing the status of clusters. Finally, we show that the implemented K3s clusters are suitable for many IoT applications such as connected vehicle and smart factory. If an application that needs high availability and scalability has to be deployed in edge environments, the K3s clusters can provide good solutions to achieve the goals of the applications. The 2 nodes + external DB cluster is suitable for the applications where the amount of data fluctuate often, or where there is a stable connection with the external DB. On the other hand, the 3 nodes cluster will be suitable for the applications that need high availability of the database even in poor internet connection. ACM Computing Classification System (CCS) Computer systems organization → Embedded and cyber-physical systems Human-centered computing → Ubiquitous and mobile computing