All Projects → sdake → multicloud

sdake / multicloud

Licence: Apache-2.0 license
A multicloud demonstration presented at KubeCon 2019 EU featuring the Hipster Shop across AKS, GKE, and On-Premises

Programming Languages

shell
77523 projects

Projects that are alternatives of or similar to multicloud

azure-container-labs
Azure Container Labs - AKS, ACR, ACI, Web App for Containers, etc under frequent update
Stars: ✭ 24 (+84.62%)
Mutual labels:  istio, servicemesh, aks
iskan
Kubernetes Native, Runtime Container Image Scanning
Stars: ✭ 35 (+169.23%)
Mutual labels:  gke, aks, eks
Networking-and-Kubernetes
This is the code repo for Networking and Kubernetes: A Layered Approach. https://learning.oreilly.com/library/view/networking-and-kubernetes/9781492081647/
Stars: ✭ 103 (+692.31%)
Mutual labels:  gke, aks, eks
pixie
Instant Kubernetes-Native Application Observability
Stars: ✭ 3,238 (+24807.69%)
Mutual labels:  gke, aks, eks
k8s-flagger-istio-flux
Blue Green deployment with Flagger, Flux and Istio
Stars: ✭ 39 (+200%)
Mutual labels:  istio, aks
kconnect
Kubernetes Connection Manager CLI
Stars: ✭ 168 (+1192.31%)
Mutual labels:  aks, eks
Kubesphere
The container platform tailored for Kubernetes multi-cloud, datacenter, and edge management ⎈ 🖥 ☁️
Stars: ✭ 8,315 (+63861.54%)
Mutual labels:  istio, servicemesh
k8s-istio-observe-frontend
Angular 12-based front-end UI for k8s Golang observability project: https://github.com/garystafford/k8s-istio-observe-backend/tree/2021-istio
Stars: ✭ 20 (+53.85%)
Mutual labels:  gke, eks
unicorn
Content for the "Intelligent Cloud Bootcamp: Advanced Kubernetes" workshop
Stars: ✭ 28 (+115.38%)
Mutual labels:  istio, aks
Go Chassis
a microservice framework for rapid development of micro services in Go with rich eco-system
Stars: ✭ 2,428 (+18576.92%)
Mutual labels:  istio, servicemesh
gke-istio-telemetry-demo
This project demonstrates how to use an Istio service mesh in a single Kubernetes Engine cluster alongside Prometheus, Jaeger, and Grafana, to monitor cluster and workload performance metrics. You will first deploy the Istio control plane, data plane, and additional visibility tools using the provided scripts, then explore the collected metrics …
Stars: ✭ 55 (+323.08%)
Mutual labels:  gke, istio
multitenant-microservices-demo
Full Isolation in Multi-Tenant SaaS with Kubernetes + Istio
Stars: ✭ 57 (+338.46%)
Mutual labels:  gke, istio
istio-lab
《Istio 入门与实战》官方配套实验代码库
Stars: ✭ 87 (+569.23%)
Mutual labels:  istio, servicemesh
eks-with-istio
Terraform template for a production ready EKS Cluster and ISTIO Service Mesh 🐳 📦 🚀
Stars: ✭ 32 (+146.15%)
Mutual labels:  istio, eks
consul2istio
Connect Consul registry to Istio Service Mesh.
Stars: ✭ 27 (+107.69%)
Mutual labels:  istio, servicemesh
gke-istio-gce-demo
In this project, you will leverage Kubernetes Engine and Google Compute Engine to explore how Istio can manage services that reside outside of the Kubernetes Engine environment. You will deploy a typical Istio service mesh in Kubernetes Engine, then configure an externally deployed microservice to join the mesh.
Stars: ✭ 53 (+307.69%)
Mutual labels:  gke, istio
micro-starter
Micro 微服务实践
Stars: ✭ 391 (+2907.69%)
Mutual labels:  istio, servicemesh
k8s-istio-webinar
Istio webinar
Stars: ✭ 18 (+38.46%)
Mutual labels:  istio, eks
laravel-php-k8s
Just a simple port of renoki-co/php-k8s for easier access in Laravel
Stars: ✭ 71 (+446.15%)
Mutual labels:  gke, eks
terraform-google-kubernetes-istio
Creates a kubernetes cluster with istio enabled on GKE
Stars: ✭ 27 (+107.69%)
Mutual labels:  gke, istio

Istio Three (3) Cluster Multicloud Demo

This is a demonstration of the Hipster Shop running across three Kubernetes environments (Azure, GKE, and On-premises) using Istio. The demonstration was originally given to the audience at KubeCon EU 2019:

For those that want to skip ahead, the demo is here.

The objective of this repository is to teach new contributors how multicloud works with Istio. As such, nothing all that advanced is used beyond bash, helm, and kubectl commands. Once you are up to speed, come join us develop #multicloud in the Istio project.

Architecture

The Hipster Shop includes 10 microservices. Full details of the architecture and implementation of the Hipster Shop are available in that project. This architecture diagram shows how the Hipster shop is split across 3 clouds.

Files in this repository

Component Description
license_header.txt A license header placed at the front of every K8s manifest
make-manifests.sh Creates K8s manifests from a git clone of ../microservices-demo
manifests Manifests generated from the make-manifests.sh script
onprem Scripts to install docker, kubeadm/kubelet, and deploy Kubernetes

Deploying the three (3) Kubernetes environments:

These steps are incomplete. This text will be removed when the steps are accurate and confirmed.

Prequisities

  • There must be at minimum one Kubernetes control plane node and 1 Kubernetes worker node. Most kubernetes cloud controllers suffer from an issue that does not permit the scheduling of services of type load balancer to an all-in-one deployment.
  • For On-Premises clusters using metallb, all-in-one deployments Of Kubernetes and Istio work well.
  • Three clusters are needed. This demo uses Azure AKS, Google Cloud's GKE, and Kubernetes deployed on-premesis. The demo works equally well in one cloud provider or many. To demonstrate the full power of Istio the most challenging deployment scenario was chosen.
  • Each cluster must implement a proper load balancer. Network load balancers are the optimal choice, although others can be made to work with some specific hacks, err, systems engineering.
  • One load balancer must be available in the quota of the cloud provider.
  • Sufficient security group rules quota must be available for Istio and the demonstration app. I have found through experimentation this number is at most 200 rules per cluster. Amazon Web Services defaults to 60 security groups per VPC, so you will need to request a quota increase to run this demo against AWS.
  • Each cluster must meet the minimum requirements below to launch the demo properly. The CPU/Memory requests have been set to their minimums for Istio in the Istio manifests.
CPU Memory
10 vCPU 16.0 GiB

Deploy an AKS cluster

Please follow the 5 minute quickstart for Azure CLI or Azure Portal to deploy a properly sized K8s cluster.

Deploy a GKE cluster

Please follow the GKE How-To to deploy a properly sized K8s cluster.

Deploy an On-Premises cluster

Please install Kubernetes and kubeadm and deploy an all-in-one cluster with metallb.

There are several helper scripts in the onprem directory to install Kubernetes and depooy Kubernetes 1.14.2 with metallb. I recommend using these if you don't already have Kubernetes up and running.

In any event, it is mandatory to intall a Load Balancer provider. Typically this is provided by an internal or external cloud provider, however, in the case of bare metal, metallb works well for this purpose.

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].