b. High Level Architecture アジェンダ 3 Kubernetes on GCP & AWS a. Cloud Edge Proxy b. Service Mesh c. Secret Resource d. Role Based Access Control e. Optimization Node Pool
is 3,000 vCPU and 4,000 GiB memory on 100 nodes. The normal workload is 1,000 pods always running on 50 services. Kubernetes Resources in production environment 17 December 2021 The normal capacity is 4,000 vCPU and 5,500 GiB memory on 150+ nodes. ※ The normal workload is 2,500+ pods always running on 300 services. ※ ※ As the peak load increases, the number of nodes and pods is increased by the autoscaler.
is 3,000 vCPU and 4,000 GiB memory on 100 nodes. The normal workload is 1,000 pods always running on 50 services. Kubernetes Resources in production environment 18 December 2021 The normal capacity is 4,000 vCPU and 5,500 GiB memory on 150+ nodes. ※ The normal workload is 2,500+ pods always running on 300 services. ※ ※ As the peak load increases, the number of nodes and pods is increased by the autoscaler. サービスの細分化が加速し、異なる特性を持ったワークロードが増加した
api-gateway Sidecar の Envoy Proxy Container 経由でサービス間通信が可能 Plain mTLS Ingress Anthos Service Mesh Namespace: service-a Namespace: service-b Namespace: service-c API Gateways API Gateway API Gateways Envoy Proxy API Gateways Service A API Gateways Envoy Proxies API Gateways Service B API Gateways Envoy Proxies API Gateways Service C API Gateways Envoy Proxies Auto Injection by Kubernetes Cluster Pod: API Gateway Pod: Service A Pod: Service B Pod: Service C
Cluster Namespace: api-gateway Sidecar の Envoy Proxy Container 経由でサービス間通信が可能 Plain mTLS Ingress AWS App Mesh Namespace: service-a Namespace: service-b Namespace: service-c API Gateways API Gateway API Gateways Envoy Proxy API Gateways Service A API Gateways Envoy Proxies API Gateways Service B API Gateways Envoy Proxies API Gateways Service C API Gateways Envoy Proxies Auto Injection by AWS Cloud Pod: API Gateway Pod: Service A Pod: Service B Pod: Service C
• GCP, AWS と構成が異なるとプラットフォームごとに対応を変える必要がある • Node のスケールイン、スケールアウトでそれぞれの課題が発生する Node Pool: 新たな課題 88 Kubernetes Cluster Service pod Service pod pod が再起動されてしま う
Cluster Node が起動するのに数 分かかる Service pod Service pod 実現しようとすると以下の課題が発生した • Node Pool の種類が増えると開発者がどこに起動させればよいかわからない • GCP, AWS と構成が異なるとプラットフォームごとに対応を変える必要がある • Node のスケールイン、スケールアウトでそれぞれの課題が発生する
NAT Service Kubernetes Cluster Node Pool: High CPU Type (Fixed) Node Pool: High CPU Node Pool (Auto Scalable) Node Pool: High Memory Type (Fixed) Node Pool: High Memory Node Pool (Auto Scalable) Node Pool: High CPU Type (Fixed) Node Pool: High CPU Node Pool (Auto Scalable) Node Pool: High Memory Type (Fixed) Node Pool: High Memory Node Pool (Auto Scalable)
NAT Service Kubernetes Cluster Node Pool: High CPU Type (Fixed) Node Pool: High CPU Node Pool (Auto Scalable) Node Pool: High Memory Type (Fixed) Node Pool: High Memory Node Pool (Auto Scalable) Node Pool: High CPU Type (Fixed) Node Pool: High CPU Node Pool (Auto Scalable) Node Pool: High Memory Type (Fixed) Node Pool: High Memory Node Pool (Auto Scalable)
NAT Service Kubernetes Cluster Node Pool: High CPU Type (Fixed) Node Pool: High CPU Node Pool (Auto Scalable) Node Pool: High Memory Type (Fixed) Node Pool: High Memory Node Pool (Auto Scalable) Node Pool: High CPU Type (Fixed) Node Pool: High CPU Node Pool (Auto Scalable) Node Pool: High Memory Type (Fixed) Node Pool: High Memory Node Pool (Auto Scalable)
NAT Service Kubernetes Cluster Node Pool: High CPU Type (Fixed) Node Pool: High CPU Node Pool (Auto Scalable) Node Pool: High Memory Type (Fixed) Node Pool: High Memory Node Pool (Auto Scalable) Node Pool: High CPU Type (Fixed) Node Pool: High CPU Node Pool (Auto Scalable) Node Pool: High Memory Type (Fixed) Node Pool: High Memory Node Pool (Auto Scalable)
NAT Service Kubernetes Cluster Node Pool: High CPU Type (Fixed) Node Pool: High CPU Node Pool (Auto Scalable) Node Pool: High Memory Type (Fixed) Node Pool: High Memory Node Pool (Auto Scalable) Node Pool: High CPU Type (Fixed) Node Pool: High CPU Node Pool (Auto Scalable) Node Pool: High Memory Type (Fixed) Node Pool: High Memory Node Pool (Auto Scalable)
利用する 1 vCPU に対して Memory 2 GiB 以下 再配置を 許容できる 再配置を 許容できる NAT IP を 利用する NAT IP を 利用する NAT IP を 利用する Yes ex: High CPU Workload No ex: High Memory Workload Yes No Yes No private-cpu .yaml Yes No public-cpu .yaml private-cpu -asg.yaml Yes No public-cpu -asg.yaml private-mem -asg.yaml Yes No public-mem- asg.yaml private-mem .yaml Yes No public-mem .yaml