Kubernetes has been taking over the container orchesteration stage for sometime now, it has a large community and a great set of tooling and contributers backing it. Along those lines, picking up kubernetes skills can be a little daunting at first, but fear not, as documentation is rich and concepts are well elaborated in not one but many places. In this post, I won’t attempt to re-explain kubernetes concepts (pods, deployments, services, replicasets, …etc) since as I said, a lot of great people did that job already, and did it very well (if you still have doubts about some of the concepts, I would be glad to help clear smoke up).
In this post we will be covering eBPF concepts, as well as challenges faced when applying network policies for microservices and how these challenges can be tackled. Finally, we will have a look at Cilium to see how it makes eBPF simple and easy to utilize. Introduction - What is eBPF - The bpf() system call - Important use-cases for eBPF - How to create an eBPF program? Microservices - What are Microservices and how do they work?
OCI, Containerd, runC, Moby, linuxkit are all relatively new components that work together for building containers. In this post we will explain each component and how these components relate to one another. Lets Start with the Basics (OCI, runC, Containerd) So what is the Open Container Initiative (OCI)? What are runC and Containerd? Demistyfing Moby & The LinuxKit Linuxkit Test-Drive Important References Lets Start with the Basics (OCI, runC, Containerd) Before jumping in and talking about Moby and Linuxkit, it is important to establish some basic knowledge first, this will make understanding Linuxkit much easier.
As you might know already Docker is now the defacto standard for containers. It is being used as the run-time for many clustering frameworks. Therefore, I thought about summarizing some of the important commands that you might need in your day-to-day docker life. I hope this post will be useful for you. General Docker Commands ## Tagging an image docker tage <image_id> name_of_the_image #real time logs docker logs --tail 1 --follow cbceaaea0ef5 # Forcing a rebuild docker build --no-cache # publish a port even if it was not expose in the dockerfile docker run -p <port> # publish all ports that were explosed in the docker file docker run -P # Setting up environment variables docker run -e WEBAPP_PORT=8000 -e WEBAPP_HOST=www.
Microservices are decoupled components that follows the Single Responsibility Principle (SRP), that is, a component does one thing but does it really well. In this mini-book we will be discussing various patterns for decomposing a service into a microservice. What motivates developers to go Micro? How to decompose your services? Handling Cross-cutting concerns Handling communication between micro-services ? Service-Discovery - Where is my-service? Handling failure across dependent services (Circuit breaking reliability) Handling storage-dependencies for microservices Handling access to services Service Function Validation Logging, Instrumentation, and health-checking (Observability) Is it really worth it?
In this post we will walk through the definitions, Properties and patterns for building Microservices. What are Microservices? A microservice is really just a service that adheres to a slightly looser definition of the Single Responsibility Principle (SRP) that arose from patterns for object-oriented design. It is a service that does one thing. Properties of Microservices Small, and Focused on Doing One Thing Well AutonomusTo do decoupling well, you’ll need to model your services right and get the APIs right.
Okay, so I am going to try and make this brief and to the point for you to get going. You need a Kubernetes cluster working with Kubeadm? good you are in the right place. First, lets get over the problems first. What you need to see at the end is the following: kube-system dummy-2088944543-1x359 1/1 Running 1 1d kube-system etcd-master 1/1 Running 1 1d kube-system kube-apiserver-master 1/1 Running 0 1d kube-system kube-controller-manager-master 1/1 Running 1 1d kube-system kube-discovery-1769846148-1khb9 1/1 Running 1 1d kube-system kube-dns-2924299975-pg660 4/4 Running 4 1d kube-system kube-flannel-ds-25l4t 2/2 Running 2 1d kube-system kube-flannel-ds-9jtd5 2/2 Running 2 1d kube-system kube-flannel-ds-lvskl 2/2 Running 8 1d kube-system kube-proxy-l1hn5 1/1 Running 1 1d kube-system kube-proxy-p1kbt 1/1 Running 1 1d kube-system kube-proxy-x2b1m 1/1 Running 1 1d kube-system kube-scheduler-master 1/1 Running 1 1d Not this …