The Tale of Kubernetes Loadbalancer "Service" In The Agnostic World of Clouds
Prologue One of the key features for the “GlueOps Platform” to work is installing a LoadBalancer, and because we’re using GlueKube to create kubernetes cluster in a cloud agnostic way, getting the LoadBalancer to work isn’t that easy, as each cloud providers requires different setup, especially for providers with no CCM or in an on-prem installation. The Birth of the LoadBalancer in the Kingdom of Kubernetes In the realm of cloud-native deployments, a Kubernetes LoadBalancer Service typically interacts with the underlying cloud provider’s infrastructure through a Cloud Controller Manager (CCM). When a Service of type LoadBalancer is declared, the CCM translates this request into a cloud-specific API call, provisioning a load balancer resource (e.g., an AWS ELB, a Google Cloud Load Balancer, or an Azure Load Balancer) in the respective cloud environment. This external load balancer then directs traffic to the Kubernetes worker nodes where the application pods are running. ...

Transform AWS Exam Generator Architecture to Open Source Part #5: Authentication and Emailing
Introduction In this article, we’re going to replace the Cognito Service, I choose the Kratos and Oathkeeper from Ory as alternative. The main functionalities of Congito here, is offering a way to sign in, sign up with or without SSO, email verification and use Sesssion Web Token for Frontend authorization. Here is the full architecture of authentication and authorization Don’t worry if didnt understand the architecture, we will dig deeper in the next headlines ...

Transform AWS Exam Generator Architecture to Open Source Part #4: Exam Passing
Brief Description In this article, we create the passing part of the exam, the architecture is composed of: kubernetes service for Taking Exam UI. Knative service for taking exams. MongoDb for storing student answers. KafkaConnect to capture changed data on MongoDb and move it to a KafkaTopic. Knative service for calculating the scoreboard and send it into a topic. We will follow the same approach in the previous article, we tackle dependency-free services first. the the UI app will require the knative service and mongo to work, so we start with knative service and mongo and then we move into UI and finally the Kafka connect integration with mongodb and knative. ...

Transform AWS Exam Generator Architecture to Open Source Part #3: Exam Generation
Brief description In this part we should talk about: Kafka topics and difference of deploying between zookeeper and kraft. Create Minio cluster and k8s jobs for adding event notification Knative installation and the invocation with Kafka topics. Hosting of generate-exam frontend in k8s services with ingress, subdomain and reference the WebSocket service. Current Stack I have a K8s cluster composed of three nodes (1 master, 2 control plane) with Talos as the running OS, MetalLB deployed as a load balancer combined with Nginx (nginx.io) as an ingress controller. ...

Transform AWS Exam Generator Architecture to Open Source Part #2: Research and Planning
Replacing services Phase In this article, we will pick this AWS architecture: “a serverless exam generator application for educator,” analyse it and find an open-source alternative solution for each service AWS provides, so if you are interested keep it up if you want to know more. To give a context of how architecture works: it starts with the educator reaching AWS Cognito to create an account either using social media account or a simple email and password. A successful account registration will subscribe the user into SNS to receive notifications. ...

Transform AWS Exam Generator Architecture to Open Source Part #1: Introduction
Introduction Have you thought of creating an AWS architecture but with open-source projects? In these articles, we will challenge ourselves and transform this AWS architecture: a serverless exam generator application for educators. The solution enables educators to instantly create curriculum-aligned assessments with minimal effort. Students can take personalised quizzes and get immediate feedback on their performance. We will transform and replace each service varying from Cognito, Lambda, DynamoDb, fargate…etc with its open-source counterpart and host it, where? guessed right, on a Kubernetes cluster. ...

Guardians of hell: hydra kratos oathkeeper
Introduction It’s been a nearly 3 months on my journey of learning kubernetes,…. One day I came across an architecture of AWS that includes AWS Cognito and ECS, if you have worked with AWS before, you would know that Cognito is a hosted authentication service which handles OAuth2/OIDC for you, To put it in a simpler way, it handles authentication and authorization to your AWS resources and provides different techniques to authenticate variying from Github, Google, etc. ...

Oops...Etcd went down
Introduction with 1-Mistake On that shiny day, I got a project that required deploying a mongodb cluster, After a few searches, I found percona Operator, moved into installation section and copied the helm install command. After installing the required charts, I noticed that the pods weren’t in “running” state, so as a civilized kubernetes developer I ran “kubectl describe pod_name -n namespace”, and it turned out the problem was mongodb cluster requires either 3 or 5 nodes ...

Deploying gitea into kubernetes with custom domain
Introduction Hello, lately I have been trying to deploy a custom Docker image into my local Kubernetes cluster. It turned out I needed to host my Docker image on a container registry, either Docker Hub, which is not suitable for my use case, or deploy and use a local registry. During my research, I found Gitea, which I liked as it allows me to deploy all my projects on it and also host the containers. ...

GCP -> AWS Migration: Hide Your Secrets
HIDING