Causal structure estimation for rogue resource elimination in Kubernetes clusters

Causal structure estimation voor het elimineren van rogue resources in Kubernetes clusters

Software engineers die werken aan grotere softwaresystemen splitsen deze vaak op in microservices (MSA). Naarmate deze systemen groter of complexer worden, of de eisen dynamischer zijn, wordt de orkestratie van deze microservices steeds ingewikkelder. Om die reden hebben verschillende frameworks voor het deployen, beheren en monitoren van microservice- of cloud-infrastructuursystemen in zogenoemde “clusters” aan populariteit gewonnen. De meest prominente hiervan is Kubernetes (K8s), doorgaans gebruikt in combinatie met een configuratiesysteem zoals Helm of Terraform, die vaak worden aangeduid als “Infrastructure as Code” (IaC).

Het probleem van rogue resources

In de praktijk zien we dat de beoogde staat van het cluster, zoals bijgehouden door developers, documentatie en deze configuratie frameworks, kan afwijken van de daadwerkelijke situatie. Een probleem dat in zulke gevallen kan ontstaan, is dat infrastructuur (zoals containers, microservices, network namespaces, storage units, enzovoort) actief blijft in de live clusteromgeving, terwijl deze niet langer kritisch is voor het systeem. Deze resources worden aangeduid als “rogue resources”.

Risico’s en uitdagingen van rogue resources

Rogue resources brengen diverse problemen met zich mee, waaronder een vergroot aanvalsoppervlak, verspilling van energie en/of financiële middelen, en een grotere kans op afwijkend gedrag. Wanneer het cluster en de bijbehorende documentatie overzichtelijk zijn en eenvoudig in het werkgeheugen van één of enkele personen passen, kunnen rogue resources vaak handmatig worden verwijderd. In slecht gedocumenteerde of zeer complexe systemen is het echter aanzienlijk lastiger om deze rogue resources te identificeren en te elimineren.

Detectie van rogue resources

Het opsporen van rogue resources komt in essentie neer op het uitvoeren van een grondige root cause analysis (RCA) van de verwachte werking van het systeem en het identificeren van gedeployde infrastructuur die geen onderdeel vormt van de causale structuur. Geautomatiseerde tools die kunnen helpen bij het prioriteren van de zoektocht naar deze resources hebben het potentieel om hierbij grote waarde te bieden.

Onderzoeksopzet en doelstellingen

Dit project zet de eerste stappen richting de ontwikkeling van dergelijke tools. Om de scope van het onderzoek beheersbaar te houden, is ervoor gekozen om Kubernetes als exclusieve basis te nemen en ons te beperken tot het onderzoeken van methoden om rogue resources te identificeren. Daarom formuleren wij de volgende onderzoeksvragen:

  1. Hoe definiëren we rogue resources?
  2. Hoe kunnen we rogue resources detecteren in een Kubernetes-deployment?
  3. Welke factoren geven aan of resources rogue zijn?
  4. Hoe varieert de effectiviteit van rogue resource-detectie afhankelijk van de beschikbaarheid van deze factoren?
Download
Privacy Overview
This website uses cookies. We use cookies to ensure the proper functioning of our website and services, to analyze how visitors interact with us, and to improve our products and marketing strategies. For more information, please consult our privacy- en cookiebeleid.