Envoy vs Kubernetes

Need advice about which tool to choose?Ask the StackShare community!

Envoy

291
536
+ 1
9
Kubernetes

58.5K
50.6K
+ 1
677
Add tool

Envoy vs Kubernetes: What are the differences?

Introduction

In this article, we will compare and highlight the key differences between Envoy and Kubernetes, two popular technologies in the world of containerization and microservices.

  1. Networking Model: Envoy is primarily a high-performance, extensible proxy server that enables efficient and secure communication between services within a network. It focuses on providing advanced traffic management capabilities, such as load balancing, circuit breaking, and observability. On the other hand, Kubernetes is a container orchestration platform that takes care of container deployments, scaling, and management across a cluster of nodes. While Kubernetes also offers built-in load balancing, it does not offer the same level of advanced networking features as Envoy.

  2. Deployment Flexibility: Kubernetes allows you to deploy and manage various types of applications, not just microservices, making it a more versatile and general-purpose solution. It provides powerful deployment mechanisms such as rolling updates, canary deployments, and automatic scaling based on resource utilization. Envoy, on the other hand, is specifically designed for microservices architectures and excels at handling east-west traffic between services within a network. It is often used as a sidecar proxy alongside application containers, adding an extra layer of functionality and control.

  3. Configuration Language: Envoy has its own declarative configuration language called Configuration Discovery Service (CDS). It allows you to define the behavior of the proxy server and its interaction with other services using a JSON or YAML-based syntax. Kubernetes, on the other hand, uses YAML files to define the desired state of applications, including containers, volumes, and networking. YAML is more widely adopted and easier to work with for developers familiar with Kubernetes.

  4. Service Discovery: Kubernetes includes a built-in service discovery and DNS system that automatically assigns and resolves IP addresses to services within the cluster. This enables easy and dynamic inter-service communication. Envoy also supports service discovery, but it provides additional features like intelligent load balancing and health checking. Envoy can integrate with various service discovery mechanisms, including Kubernetes' own service discovery, to provide enhanced capabilities.

  5. Observability and Monitoring: Envoy offers powerful built-in observability features, including detailed logging, distributed tracing, and metrics collection. It integrates seamlessly with popular observability tools like Prometheus, Grafana, and Jaeger. Kubernetes also provides monitoring capabilities through its built-in metrics server, but it may require additional tooling and configuration to achieve the same level of observability as Envoy.

  6. Platform Maturity: Kubernetes is a mature platform with a large community and ecosystem. It has been widely adopted and is backed by major cloud providers, making it a reliable choice for production deployments. Envoy, although it has gained significant traction and popularity, is a relatively newer technology compared to Kubernetes. While it has a growing community and active development, it may not have the same level of maturity or industry support as Kubernetes.

In summary, Envoy is a high-performance proxy server with advanced networking capabilities, specifically designed for microservices architectures. Kubernetes, on the other hand, is a container orchestration platform that provides deployment and management features for various types of applications, with built-in networking capabilities. The choice between Envoy and Kubernetes depends on the specific requirements and nature of the applications or environments they are being used in.

Decisions about Envoy and Kubernetes
Simon Reymann
Senior Fullstack Developer at QUANTUSflow Software GmbH · | 30 upvotes · 8.9M views

Our whole DevOps stack consists of the following tools:

  • GitHub (incl. GitHub Pages/Markdown for Documentation, GettingStarted and HowTo's) for collaborative review and code management tool
  • Respectively Git as revision control system
  • SourceTree as Git GUI
  • Visual Studio Code as IDE
  • CircleCI for continuous integration (automatize development process)
  • Prettier / TSLint / ESLint as code linter
  • SonarQube as quality gate
  • Docker as container management (incl. Docker Compose for multi-container application management)
  • VirtualBox for operating system simulation tests
  • Kubernetes as cluster management for docker containers
  • Heroku for deploying in test environments
  • nginx as web server (preferably used as facade server in production environment)
  • SSLMate (using OpenSSL) for certificate management
  • Amazon EC2 (incl. Amazon S3) for deploying in stage (production-like) and production environments
  • PostgreSQL as preferred database system
  • Redis as preferred in-memory database/store (great for caching)

The main reason we have chosen Kubernetes over Docker Swarm is related to the following artifacts:

  • Key features: Easy and flexible installation, Clear dashboard, Great scaling operations, Monitoring is an integral part, Great load balancing concepts, Monitors the condition and ensures compensation in the event of failure.
  • Applications: An application can be deployed using a combination of pods, deployments, and services (or micro-services).
  • Functionality: Kubernetes as a complex installation and setup process, but it not as limited as Docker Swarm.
  • Monitoring: It supports multiple versions of logging and monitoring when the services are deployed within the cluster (Elasticsearch/Kibana (ELK), Heapster/Grafana, Sysdig cloud integration).
  • Scalability: All-in-one framework for distributed systems.
  • Other Benefits: Kubernetes is backed by the Cloud Native Computing Foundation (CNCF), huge community among container orchestration tools, it is an open source and modular tool that works with any OS.
See more
Get Advice from developers at your company using StackShare Enterprise. Sign up for StackShare Enterprise.
Learn More
Pros of Envoy
Pros of Kubernetes
  • 9
    GRPC-Web
  • 164
    Leading docker container management solution
  • 128
    Simple and powerful
  • 106
    Open source
  • 76
    Backed by google
  • 58
    The right abstractions
  • 25
    Scale services
  • 20
    Replication controller
  • 11
    Permission managment
  • 9
    Supports autoscaling
  • 8
    Cheap
  • 8
    Simple
  • 6
    Self-healing
  • 5
    No cloud platform lock-in
  • 5
    Promotes modern/good infrascture practice
  • 5
    Open, powerful, stable
  • 5
    Reliable
  • 4
    Scalable
  • 4
    Quick cloud setup
  • 3
    Cloud Agnostic
  • 3
    Captain of Container Ship
  • 3
    A self healing environment with rich metadata
  • 3
    Runs on azure
  • 3
    Backed by Red Hat
  • 3
    Custom and extensibility
  • 2
    Sfg
  • 2
    Gke
  • 2
    Everything of CaaS
  • 2
    Golang
  • 2
    Easy setup
  • 2
    Expandable

Sign up to add or upvote prosMake informed product decisions

Cons of Envoy
Cons of Kubernetes
    Be the first to leave a con
    • 16
      Steep learning curve
    • 15
      Poor workflow for development
    • 8
      Orchestrates only infrastructure
    • 4
      High resource requirements for on-prem clusters
    • 2
      Too heavy for simple systems
    • 1
      Additional vendor lock-in (Docker)
    • 1
      More moving parts to secure
    • 1
      Additional Technology Overhead

    Sign up to add or upvote consMake informed product decisions

    - No public GitHub repository available -

    What is Envoy?

    Originally built at Lyft, Envoy is a high performance C++ distributed proxy designed for single services and applications, as well as a communication bus and “universal data plane” designed for large microservice “service mesh” architectures.

    What is Kubernetes?

    Kubernetes is an open source orchestration system for Docker containers. It handles scheduling onto nodes in a compute cluster and actively manages workloads to ensure that their state matches the users declared intentions.

    Need advice about which tool to choose?Ask the StackShare community!

    What companies use Envoy?
    What companies use Kubernetes?
    See which teams inside your own company are using Envoy or Kubernetes.
    Sign up for StackShare EnterpriseLearn More

    Sign up to get full access to all the companiesMake informed product decisions

    What tools integrate with Envoy?
    What tools integrate with Kubernetes?

    Sign up to get full access to all the tool integrationsMake informed product decisions

    Blog Posts

    Kubernetesetcd+2
    2
    1159
    Dec 8 2020 at 5:50PM

    DigitalOcean

    GitHubMySQLPostgreSQL+11
    2
    2354
    PythonDockerKubernetes+7
    3
    1100
    May 21 2020 at 12:02AM

    Rancher Labs

    KubernetesAmazon EC2Grafana+12
    5
    1495
    May 6 2020 at 6:34AM

    Pinterest

    JavaScriptC++Varnish+6
    5
    3364
    What are some alternatives to Envoy and Kubernetes?
    Istio
    Istio is an open platform for providing a uniform way to integrate microservices, manage traffic flow across microservices, enforce policies and aggregate telemetry data. Istio's control plane provides an abstraction layer over the underlying cluster management platform, such as Kubernetes, Mesos, etc.
    NGINX
    nginx [engine x] is an HTTP and reverse proxy server, as well as a mail proxy server, written by Igor Sysoev. According to Netcraft nginx served or proxied 30.46% of the top million busiest sites in Jan 2018.
    linkerd
    linkerd is an out-of-process network stack for microservices. It functions as a transparent RPC proxy, handling everything needed to make inter-service RPC safe and sane--including load-balancing, service discovery, instrumentation, and routing.
    Trailblazer
    Trailblazer is a thin layer on top of Rails. It gently enforces encapsulation, an intuitive code structure and gives you an object-oriented architecture. In a nutshell: Trailblazer makes you write logicless models that purely act as data objects, don't contain callbacks, nested attributes, validations or domain logic. It removes bulky controllers and strong_parameters by supplying additional layers to hold that code and completely replaces helpers.
    HAProxy
    HAProxy (High Availability Proxy) is a free, very fast and reliable solution offering high availability, load balancing, and proxying for TCP and HTTP-based applications.
    See all alternatives