Kubernetes
Kubernetes is a great orchestator for containers. But it does not manage network for Pod-to-Pod communication. This is the mission of Container Network Interfaces (CNI) plugins which are a standardized way to achieve network abstraction for container clustering tools (Kubernetes, Mesos, OpenShift, etc.)
But here is the point: what are the differences between those CNIs? Which one has the best performance? Which one is the leanest?
This article is showing the results of a benchmark I’ve conducted on 10Gbit/s network. These results were also presented during a conference at the Devops D-DAY 2018 in Marseille (France) on November 15, 2018. The benchmark is conducted on three Supermicro bare-metal servers connected through a Supermicro 10Gbit switch.
Read more
SuperGloo: The Service Mesh Orchestration Platform
Today we are thrilled to announce the release of SuperGloo, an open-source project to manage and orchestrate service meshes at scale. SuperGloo is an opinionated abstraction layer that will simplify the installation, management, and operation of your service mesh, whether you use (or plan to use) a single mesh or multiple mesh technologies, on-site, in the cloud, or on any topology that best fits you. A service mesh is an infrastructure layer that handles service-to-service communication, freeing applications from being aware of the complex communication network.
Read more
Stateful Service Design Considerations for the Kubernetes Stack
At this summer’s QCon in New York, Jonas Bonér delivered one of the most popular talks of the conference with his focus on Designing Events-First Microservices. In this InfoQ Q&A, we asked Bonér to explain how “bringing bad habits from monolithic design” is a road to nowhere for service design, and where he sees his Akka framework fitting in the cloud-native stack. In this article, author Amit Baghel discusses how to monitor the performance of Apache Spark based applications using technologies like Uber JVM Profiler, InfluxDB database and Grafana data visualization tool.
Read more
Rookout launches its live Kubernetes debugger
Rookout, a startup that offers debugging tools for applications that run on modern container and serverless platforms, is launching a new feature today that brings the equivalent of breakpoints to Kubernetes. To get around this, developers tend to go for a more indirect way of diagnosing issues and debugging their apps running on Kubernetes. That mostly means logging and distributed tracing, both of which have spawned their own ecosystems of open-source projects and startups.
Read more
Project Calico, the CNI way
When it comes to Kubernetes networking, Calico is widely used. One of the main reasons being its ease of use and the way it shapes up the network fabric. Calico is a pure L3 solution, where packets are routed in just the same manner as your regular Internet.
Each node (eg. VM) acts like a vRouter, which means tools like traceroute, ping, tcpdump, etc just work as expected! Whether the packet is flowing from one container to another or container to another node (or vice-versa), its just treated as a flat network route (L3 hops).
Read more
Setting up the Kubernetes AWS Cloud Provider
The AWS cloud provider for Kubernetes enables a couple of key integration points for Kubernetes running on AWS; namely, dynamic provisioning of Elastic Block Store (EBS) volumes, and dynamic provisioning/configuration of Elastic Load Balancers (ELBs) for exposing Kubernetes Service objects. Unfortunately, the documentation surrounding how to set up the AWS cloud provider with Kubernetes is woefully inadequate. This article is an attempt to help address that shortcoming.
Source: heptio.com
Debugging Node Services in Kubernetes With Linkerd 2.0
Node is one of the most popular languages for microservices. With the rise of Kubernetes, increasingly, Node developers are being asked to deploy their services to a Kubernetes cluster. But what’s required to safely deploy and run Node services on Kubernetes?
In this post, we focus on one specific, but vital, component: how do I understand what’s happening with my Node service on Kubernetes, and how do I debug it when things go wrong? At this point, you may be thinking, can’t I just use the Kubernetes dashboard? Unfortunately,while Kubernetes can automatically keep your service up in the event of node failure or a software crash, it doesn’t actually know whether your service is behaving correctly.
Read more
Kubernetes Network Plugins
(Last Updated On: November 12, 2018)Kubernetes Network Plugins The most complicated comparison I’ve ever attempted. From a 10,000 ft perspective it should be simple. We have CNI as a common standard in Kubernetes and all these plugins need to do is assign an IP address to each pod so they can talk to each other, […]
The most complicated comparison I’ve ever attempted. From a 10,000 ft perspective it should be simple. We have CNI as a common standard in Kubernetes and all these plugins need to do is assign an IP address to each pod so they can talk to each other, both on the same host, and across hosts.
Read more
Embracing failures and cutting infrastructure costs: Spot instances in Kubernetes
Spot Instances are unused servers that are available for less than the regular price. Therefore, you can significantly save on your infrastructure costs. It does come with a price, though.
Your cloud provider can take away your spot instance at any time, and give to another client who has requested it at a standard cost. How can you save money, but work around disappearing servers? Learn how you can leverage Kubernetes to self-heal your infrastructure and cut costs with Spot Instances.
Read more
Running integration tests in Kubernetes
Linux containers changed the way that we run, build and manage applications. As more and more platforms become cloud-native, containers are playing a more important role in every enterprise’s infrastructure. Kubernetes is currently the most well-known solution for managing containers, whether they run in a private, a public or a hybrid cloud.
With a container application platform, we can dynamically create a whole environment to run a task that is discarded afterwards. In an earlier post, we covered how to run builds and unit tests in containers. Now, let’s have a look at how to run integration tests by starting multiple containers to provide a whole test environment.
Read more