top of page
  • Linkedin
  • Youtube
  • Facebook
  • Medium

turnk8s — turnkey k8s deployment solution

Turnk8s is a turnkey Kubernetes deployment solution that adheres to the Talos Linux philosophy. It inherits all the great features of Talos Linux and builds a complete end-to-end deployment solution for on-premise environments.


Netris is used for network management. To better understand its use, read the repository readme or watch our YouTube video.




Introduction

This article is the first in a series dedicated to turnk8s; we will walk through the architecture and the tools used.


The end goal

GitOps is an excellent approach to managing infrastructure. Therefore, we follow the GitOps practices: Everything starts on a Git push event, and Git stores the desired state of your infrastructure.turnk8s deploys a Kubernetes cluster and creates an Infra (manifest) repository, which stores the manifests of the apps developed by your users deployed on the cluster. The repository is created and destroyed with the cluster. We do not recommend sharing repositories between multiple clusters. After turnk8s pipeline execution, you get a ~/.kube/conf file and a repository with sample service manifests deployed on the cluster available to all the users in your local network. Your users will then delete the manifests of the sample service and push relevant ones. ArgoCD deploys the sample service within minutes. Please note that turnk8s is a work in progress.


The toolset and workflow

  1. Users push a cluster declarative cluster definitions to the clusters repo, where all the Terraform and helper scripts are located.

  2. GitHub action workflow runs Terraform to ensure the alignment between the cluster definitions and the actual infrastructure. Hence, Git is the source of the truth for the existing Kubernetes clusters.

  3. Terrafrom Proxmox provider reads the cluster definitions and communicates with the Proxmox server to create or destroy Talos Linux virtual machines.

  4. The Talos configuration is generated and applied to the newly created Talos Linux virtual machines, forming the Kubernetes cluster using the Talos Terraform provider.

  5. ArgoCD and Netris operators are deployed with Helm Terraform provider.

  6. See 5.

  7. 7. A GitHub repo with a sample service manifest is being created. This repo is strictly associated with the creation of the Kubernetes cluster. ArgoCD is configured to watch this repository to ensure synchronization between the service manifests in the repository and the Kubernetes cluster.

  8. ArgoCD pulls the sample service manifest and deploys it on the Kubernetes cluster.

  9. As the service type is LoadBalancer, the Netris operator creates a load balancer on the Netris Softgate to make it available for the user.

  10. The user gets the service URL from the Netris Controller dashboard and accesses it.


Infraheads working environment


We have two SER7 boxes with 32 GB of RAM and 16 vCPUs. The router and switch are shown as separate devices; however, that is a single SOHO router. The Netgear router serves as an internet gateway and a DHCP server for our management network, and Softgate serves as a DHCP server for Kubernetes cluster nodes.


In the next episode

In the next episode, we will discuss the Terraform codebase and other details. We will explain our choices and demonstrate the creation of a sample cluster to demystify our solution.

Comments


Contact Us

Thanks for submitting!

6, 1 Abelian St, Yerevan 0038

Tel. +37494537510

© 2024 Infraheads LLC

bottom of page