GKE with Consul Service Mesh

This page summarizes the projects mentioned and recommended in the original post on dev.to

InfluxDB - Power Real-Time Data Analytics at Scale
Get real-time insights from all types of time series data with InfluxDB. Ingest, query, and analyze billions of data points in real-time with unbounded cardinality.
www.influxdata.com
featured
SaaSHub - Software Alternatives and Reviews
SaaSHub helps you find the best software and product alternatives
www.saashub.com
featured
  • consul-template

    Template rendering, notifier, and supervisor for @HashiCorp Consul and Vault data.

    If however, you have an application service that needs support for 2+ ports, because you know, Kubernetes supports this, I would recommend avoiding Consul Connect, as it is not functional to meet minimum requirements for a service mesh. Perhaps someday, when Hashicorp prioritizes basic functionality and usability in future version, this product can be considered.

  • InfluxDB

    Power Real-Time Data Analytics at Scale. Get real-time insights from all types of time series data with InfluxDB. Ingest, query, and analyze billions of data points in real-time with unbounded cardinality.

    InfluxDB logo
  • envoy

    Cloud-native high-performance edge/middle/service proxy

    This Helm chart configuration values will install Consul Connect service mesh with automatic injection enabled. When you deploy a pod with annotation of consul.hashicorp.com/connect-inject: "true", side-car containers will be installed to copy the consul binary into the container and setup and configure Envoy proxy. The service resources will be used a a blueprint to register the service with Consul's service catalog and configure the Envoy proxy.

  • helm-diff

    A helm plugin that shows a diff explaining what a helm upgrade would change

    helm-diff plugin to see differences about what will be deployed.

  • helmfile

    Declaratively deploy your Kubernetes manifests, Kustomize configs, and Charts as Helm releases. Generate all-in-one manifests for use with ArgoCD. (by helmfile)

    Using Helmfile to deploy Helm charts with templated chart config values, where values and branch logic is set by env vars.

  • pydgraph-client

    Demonstraiton Dgraph client that using pydrgraph library

    This section covers deploying Kubernetes resources such as Deployment, StatefulSet, ServiceAccount, Service, and so on. This will cover installing the Consul Connect service mesh, Dgraph, and pydgraph-client to access Dgraph through the service mesh.

  • consul-k8s

    First-class support for Consul Service Mesh on Kubernetes

    injection stack traces when deploying multi-port application (issue 1594)

  • ratel

    Dgraph Data Visualizer and Cluster Manager (by dgraph-io)

    Now you can you can point the connection configuration in Ratel to http://localhost:8080:

  • SaaSHub

    SaaSHub - Software Alternatives and Reviews. SaaSHub helps you find the best software and product alternatives

    SaaSHub logo
  • traefik-consul

    traefik-consul walk-through

  • consul-k8s-ingress-controllers

    Testing for different API gateways with Consul

    consul ingress controllers integration with Traefik or Kong using terrafom

  • eks-consul-ingressnginx

    This a basic deployment to show case using nginx as ingress with Consul in transparent mode

    Consul on EKS using nginx as ingress (transparent mode)

  • consul-demo-tracing

    Examples using Distributed tracing with Datadog and Jaeger for Consul Service Mesh

    Consul Service Mesh Tracing Demo

  • blog_tutorials

    These are code related to tutorials created

    Blog Source Code: https://github.com/darkn3rd/blog_tutorials/tree/master/kubernetes/gke/service-mesh/consul-connect

  • greeter

    Greeter demo application for grpc with reflection and http with openapi (by darkn3rd)

    HTTP/gRPC Greeter Application: https://github.com/darkn3rd/greeter

  • zsh

    Mirror of the Z shell source code repository.

    POSIX shell (sh) such as GNU Bash (bash) or Zsh (zsh): these scripts in this guide were tested using either of these shells on macOS and Ubuntu Linux.

  • Vault

    A tool for secrets management, encryption as a service, and privileged access management

    The underlying tool Consul is very powerful, and Consul Connect service mesh on top of this tool is quite robust and extremely flexible where you can swap out the default CA for other solutions, like Vault CA, and swap out the Envoy proxy for another solution, like NGINX or HAProxy. For ingress into the cluster, you can use Consul API Gateway, or another API Gateway or an ingress controller.

  • consul

    Consul is a distributed, highly available, and data center aware solution to connect and configure applications across dynamic, distributed infrastructure.

    The underlying tool Consul is very powerful, and Consul Connect service mesh on top of this tool is quite robust and extremely flexible where you can swap out the default CA for other solutions, like Vault CA, and swap out the Envoy proxy for another solution, like NGINX or HAProxy. For ingress into the cluster, you can use Consul API Gateway, or another API Gateway or an ingress controller.

  • Nginx

    An official read-only mirror of http://hg.nginx.org/nginx/ which is updated hourly. Pull requests on GitHub cannot be accepted and will be automatically closed. The proper way to submit changes to nginx is via the nginx development mailing list, see http://nginx.org/en/docs/contributing_changes.html

    The underlying tool Consul is very powerful, and Consul Connect service mesh on top of this tool is quite robust and extremely flexible where you can swap out the default CA for other solutions, like Vault CA, and swap out the Envoy proxy for another solution, like NGINX or HAProxy. For ingress into the cluster, you can use Consul API Gateway, or another API Gateway or an ingress controller.

  • conduit

    Ultralight, security-first service mesh for Kubernetes. Main repo for Linkerd 2.x.

    I have experimented with other service meshes and I was able to get up to speed quickly: Linkerd = 1 day, Istio = 3 days, NGINX Service Mesh = 5 days, but Consul Connect service mesh took at least 11 days to get off the ground. This is by far the most complex solution available.

  • kubernetes

    Production-Grade Container Scheduling and Management

    Consul Connect service mesh has a higher memory footprint, so on a small cluster with e5-medium nodes (2 vCPUs, 4 GB memory), you will only be able to support a maximum of 6 side-car proxies. In order to get an application like Dgraph working, which will have 6 nodes (3 Dgraph Alpha pods and 3 Dgraph Zero pods) for high availability along with at least one client, a larger footprint with more robust Kubernetes worker nodes were required.

  • istio

    Connect, secure, control, and observe services.

    I have experimented with other service meshes and I was able to get up to speed quickly: Linkerd = 1 day, Istio = 3 days, NGINX Service Mesh = 5 days, but Consul Connect service mesh took at least 11 days to get off the ground. This is by far the most complex solution available.

  • hub-feedback

    Feedback and bug reports for the Docker Hub

    source env.sh # https://hub.docker.com/r/darknerd/pydgraph-client export DOCKER_REGISTRY=darknerd export CCSM_ENABLED=true helmfile --file ./examples/dgraph/pydgraph_client.yaml apply

  • helm

    The Kubernetes Package Manager

    For Kubernetes, experience with deploying applications with service resources is useful, but even if you don’t have this, this guide will walk you through it. Configuring KUBECONFIG to access the Kubernetes cluster with Kubernetes client (kubectl) and using Helm (helm), so familiarity to this is useful.

  • gRPC

    The C based gRPC (C++, Python, Ruby, Objective-C, PHP, C#)

    Deploying a server and a client with multiport support: HTTP and gRPC

  • git

    A fork of Git containing Windows-specific patches. (by git-for-windows)

    git (git command) to download source code from git code repositories.

  • dgraph

    The high-performance database for modern applications

    Consul Connect service mesh has a higher memory footprint, so on a small cluster with e5-medium nodes (2 vCPUs, 4 GB memory), you will only be able to support a maximum of 6 side-car proxies. In order to get an application like Dgraph working, which will have 6 nodes (3 Dgraph Alpha pods and 3 Dgraph Zero pods) for high availability along with at least one client, a larger footprint with more robust Kubernetes worker nodes were required.

  • google.cloud

    GCP Ansible Collection https://galaxy.ansible.com/google/cloud

    For Google Cloud, you should be familiar Google Cloud SDK (gcloud tool) with setting up an account, project, and provisioning resources. This is important as there are cost factors involved in setting these things up.

  • helm-charts

    Helm Charts published by Bedag Informatik AG (by bedag)

    repositories: # https://artifacthub.io/packages/helm/dgraph/dgraph/0.0.19 - name: dgraph url: https://charts.dgraph.io # https://artifacthub.io/packages/helm/main/raw - name: bedag url: https://bedag.github.io/helm-charts/ releases: # Dgraph additional resources required to support Consul - name: dgraph-extra chart: bedag/raw namespace: dgraph version: 1.1.0 values: - resources: - apiVersion: v1 kind: ServiceAccount metadata: name: dgraph-dgraph-zero - apiVersion: v1 kind: ServiceAccount metadata: name: dgraph-dgraph-alpha - apiVersion: v1 kind: ServiceAccount metadata: name: dgraph-dgraph-alpha-grpc - apiVersion: v1 kind: Service metadata: name: dgraph-dgraph-alpha-grpc spec: ports: - name: grpc-alpha port: 9080 publishNotReadyAddresses: true selector: app: dgraph chart: dgraph-0.0.19 component: alpha release: dgraph type: ClusterIP # Dgraph cluster with 2 x StatefulSet (3 Zero pods, 3 Alpha pods) - name: dgraph namespace: dgraph chart: dgraph/dgraph version: 0.0.19 needs: - dgraph/dgraph-extra values: - image: tag: v21.03.2 zero: extraAnnotations: consul.hashicorp.com/connect-inject: 'true' # disable transparent-proxy for multi-port services consul.hashicorp.com/transparent-proxy: 'false' consul.hashicorp.com/transparent-proxy-exclude-inbound-ports: "5080,7080" consul.hashicorp.com/transparent-proxy-exclude-outbound-ports: "5080,7080" alpha: extraAnnotations: consul.hashicorp.com/connect-inject: 'true' # disable transparent-proxy for multi-port services consul.hashicorp.com/transparent-proxy: 'false' # use these registered consul services for different ports consul.hashicorp.com/connect-service: 'dgraph-dgraph-alpha,dgraph-dgraph-alpha-grpc' consul.hashicorp.com/connect-service-port: '8080,9080' consul.hashicorp.com/transparent-proxy-exclude-inbound-ports: "5080,7080" consul.hashicorp.com/transparent-proxy-exclude-outbound-ports: "5080,7080" configFile: config.yaml: | security: whitelist: {{ env "DG_ACCEPT_LIST" | default "0.0.0.0/0" | quote }} # patch existing resources using merge patches strategicMergePatches: # add serviceAccountName to Alpha StatefulSet - apiVersion: apps/v1 kind: StatefulSet metadata: name: dgraph-dgraph-alpha spec: template: spec: serviceAccountName: dgraph-dgraph-alpha # add serviceAccountName to Zero StatefulSet - apiVersion: apps/v1 kind: StatefulSet metadata: name: dgraph-dgraph-zero spec: template: spec: serviceAccountName: dgraph-dgraph-zero # add label to Alpha headless service - apiVersion: v1 kind: Service metadata: name: dgraph-dgraph-alpha-headless labels: consul.hashicorp.com/service-ignore: 'true' # add label to Zero headless service - apiVersion: v1 kind: Service metadata: name: dgraph-dgraph-zero-headless labels: consul.hashicorp.com/service-ignore: 'true' # patch existing resource using jsonPatches jsonPatches: # remove existing grpc port from serivce - target: version: v1 kind: Service name: dgraph-dgraph-alpha patch: - op: remove path: /spec/ports/1

  • SaaSHub

    SaaSHub - Software Alternatives and Reviews. SaaSHub helps you find the best software and product alternatives

    SaaSHub logo
NOTE: The number of mentions on this list indicates mentions on common posts plus user suggested alternatives. Hence, a higher number means a more popular project.

Suggest a related project

Related posts

  • Ultimate EKS Baseline Cluster: Part 1 - Provision EKS

    17 projects | dev.to | 21 Jul 2023
  • POLL: How do you orchestrate your provisioning?

    5 projects | /r/devops | 28 Dec 2022
  • Detecting Kubernetes API Deprecations with pluto

    5 projects | dev.to | 24 Jul 2022
  • Kubernetes-based development with Devspace

    10 projects | dev.to | 15 Oct 2021
  • How to take down production with a single Helm command

    1 project | news.ycombinator.com | 4 Apr 2024

Did you konow that Go is
the 4th most popular programming language
based on number of metions?