這次我分享的主題是 “Empower Your Kubernetes with Service Mesh + Distributed Tracing”,主要介紹了 service mesh 與 distributed tracing 的基礎概念,並帶領大家以 kubernetes-native 的方式實際部署一個範例應用,將 distributed tracing 與 service mesh 無縫整合。
We will build a continuous delivery pipeline that deploys a React application to Amazon S3 and syncs it with Amazon CloudFront, a content delivery network (CDN) managed by AWS.
Traefik is a powerful ingress controller with easy deployment and configuration. However, cloud providers like AWS and GCP also provide ingress implementations of their managed Kubernetes.
In this post, we will take GCP as example and walk through all needed knowledge of integrating Traefik deployment with ingress provided by GKE. This way, we could enjoy the benefits of feature-rich Traefik CRD as well as convenient infrastruture provisions provided by cloud ingress.
We are going to deploy a sample app container on Amazon ECS using Fargate, a serverless compute engine for containers. Fargate removes the need to provision and manage servers, lets us specify and pay for resources per application, and improves security through application isolation by design.
Amazon CloudFront is a fast content delivery network (CDN) service managed by AWS. It serves your contents across edge locations around the globe with high transfer speeds and low latency under secured connections.
In this post, we will set up an Amazon CloudFront distribution that serves private contents on your S3 bucket in order to speed up your content retrival while fully controlling user access permissions.
The following diagram shows a typical high-availibility Kubernetes cluster with embedded etcd:
However, HA architecture also brings about another problem - which K8s API server should the client connect to? How to detect a node failure while fowarding traffic in order to achieve high availibility?
When developing HTTP APIs, we may have to process the same request-specific data throughout middlewares. Since it’s a quite common pattern, I decide to figure it out and share how I solve it.