Posts

Showing posts with the label Minikube

Cassandra and Kubernetes with K8ssandra

Image
Cassandra is a kick-ass database. It's reliable and works pretty well for insert heavy workloads. Cassandra does well with reads as well as long as you design your tables with your access patterns in mind. In order to work well with Cassandra, you need to avoid Tombstones either by avoiding deletes and updates or by avoiding collections. Cassandra cluster configuration and distribution can be tricky and also repairs can be a challenge at scale. K8ssandra is a complete Cassandra distribution with observability( Grafana and Prometheus ) and a simple solution for repairs called Reaper . You also need to keep in mind that by using Cassandra in containers you will lose throughput. Let's say you want to explore Cassandra and you are already using kubernetes or you have a tier 2 or 3 need or even want to save some cost in your development environment that could be an interesting solution. Today I will show how to install K8ssandra in Minikube.

Running Istio 1.5 on Minikube

Image
Istio 1.5 is out. Istio took a very bald and big move. Istio decided to move away from microservices. Considering istio use case it makes lots of sense. As you go with microservice architecture you have several advantages like autonomy, use the best tool for the job(different languages), scale components independently, isolation and many others. However, microservices are not a free lunch and there is a downside from it. One of them is the DevOps engineering price to configure, provision, monitor and maintain several isolated services. The other one is complexity. Microservices are more complex than monolith systems. Istio took the move and went to from the microservices architecture with 5 services(Pilot, Cidatel, Telemetry, Policy, Galley, Injector) into 1 single service called istiod. This move made lots of sense.  Not only because it removed complexity but also make configuration, installation and upgrade much easier. I',m sure this move will drive more adoption.

Using Multiple profiles with Minikube

Image
Kubernetes is the new Linux. K8s is the spec for the multi-poly cloud world. Running k8s could be very resource intensive, so is always a good idea being able to run things locally. For several reasons like Engineering Productivity, Tests and Experiments and so on and on. If you are working with Istio like I'm, you might realize it's a bit heavy to run local, especially if you do have other things running on k8s.   Minikube is the goto solution for local kubernetes clusters. However, as I said before, it can get pretty heavy when Istio gets involved. So the solution is pretty simple, it not much advertised. Minikube has a profile feature which allows you to create multiple profiles. Each profile will be a 2GB DISK VM created in Virtualbox. This is great because now you can run multiple kubernetes versions and multiple clusters doing multi experiments. IMHO is always great to have a k8s cluster ready to test things so I have multiple profiles like istio, lightweight, tests, ...

Go and Redis running on Kubernetes with Minukube

Image
Go is a simple, fast and powerful programing language. Go is growing a lot into the DevOps Engineering scene like Hashicorp Stack or even Kubernetes .  One of the main advantages of GO is the fact that you can generate a single binary with all you needed, bundled in a single file. This makes distribution so much easier. Go is also very compact for some use cases and you can write so less code and still very very efficient and get best of performance.  Today we will see how to create a very, very, very simple service in go. This service will access redis to increment how many times it was called.  We will use Minikube in order to run kubernetes locally and we will store our data in Redis.

Kubernetes with Docker and Minikube

Image
Kubernetes is getting more popular every day. Kubenertes is an open source system for automating deployments, scaling and managing containerized applications. Created by Google on 2014 and also know as k8s. Why? Because there are 8 letters between k and s :-). K8s has many features such as Automatic bin-packing which is the capability of placing containers based on resources and constraints.  K8s also has horizontal scaling, storage orchestration using local storage or cloud storage such as AWS or GCP. K8s has important Cloud native capabilities such as Self Healing, Service Discovery and Load Balancing and secret and dynamic config management. For this blog post, we will see how to bake a simple docker image using node js application and deploy this docker image on hibernates using minikube in order to run locally. There are other cloud-native solutions such as NetflixOSS Stack . Also Spring Cloud , which uses NetflixOSS too. However, on this post, we will ...