Skip to main content

Amazon EKS

บทนำเกี่ยวกับ Amazon EKS

  • Amazon EKS ย่อมาจาก Amazon Elastic Kubernetes Service เป็นบริการสำหรับ เปิดและจัดการ Kubernetes cluster บน AWS

An image

Kubernetes คืออะไร?

  • Kubernetes เป็น ระบบโอเพนซอร์ส สำหรับการ deploy, scale และจัดการแอปพลิเคชันแบบ containerized (โดยทั่วไปคือ Docker)
  • Kubernetes เป็นทางเลือกของ ECS ซึ่งมีเป้าหมายคล้ายกันคือรัน container แต่ใช้ API ที่ต่างกัน
  • จุดแตกต่างคือ ECS ไม่ใช่โอเพนซอร์ส ในขณะที่ Kubernetes เป็นโอเพนซอร์สและใช้ได้กับหลาย cloud provider ซึ่งทำให้เกิด มาตรฐานการใช้งาน

โหมดการเปิดใช้งาน Amazon EKS

Amazon EKS รองรับ สองโหมดการเปิดใช้งาน:

  1. EC2 Launch Mode: เปิด worker node เป็น EC2 instances
  2. Fargate Mode: เปิด container แบบ serverless บน EKS cluster

Use Case:

  • สำหรับองค์กรที่ใช้ Kubernetes อยู่แล้วบน on-premises หรือ cloud อื่น
  • ผู้ที่ต้องการใช้ Kubernetes API พร้อมใช้ AWS จัดการ cluster

Kubernetes Cloud Agnosticism

  • Kubernetes เป็น cloud agnostic ใช้ได้กับ cloud อื่น เช่น Azure, Google Cloud
  • ทำให้ การย้าย container ระหว่าง cloud ง่ายขึ้น หากใช้ Amazon EKS

สถาปัตยกรรม Amazon EKS

  • โดยทั่วไป EKS จะอยู่ใน VPC ที่มี 3 Availability Zones (AZ) แยกเป็น public และ private subnet

  • EKS Worker Nodes (EC2 instances) จะรัน Pods

    • Pod คือ container group ใน Kubernetes คล้ายกับ ECS task
  • Node สามารถบริหารด้วย Auto Scaling Group

  • การ expose service ของ EKS/Kubernetes สามารถใช้ load balancer แบบ private หรือ public

ประเภทของ Node ใน Amazon EKS

  1. Managed Node Groups: AWS สร้างและจัดการ EC2 instances ให้เป็นส่วนหนึ่งของ Auto Scaling Group (รองรับทั้ง On-Demand และ Spot Instances)

  2. Self-Managed Nodes: คุณสร้างและจัดการ nodes เอง

    • ลงทะเบียนกับ EKS cluster และจัดการใน Auto Scaling Group
    • ใช้ EKS Optimized AMI หรือสร้าง AMI เอง
    • รองรับทั้ง On-Demand และ Spot Instances
  3. Fargate Mode: ไม่มี nodes ให้เห็นหรือจัดการ

    • Containers รันแบบ serverless บน EKS

ตัวเลือก Storage สำหรับ Amazon EKS

  • สามารถ attach data volumes บน EKS cluster โดยใช้ StorageClass manifest ผ่าน Container Storage Interface (CSI)

  • ตัวเลือก Storage ที่รองรับ:

    • Amazon EBS
    • Amazon EFS (storage class เดียวที่ compatible กับ Fargate)
    • Amazon FSx for Lustre
    • Amazon FSx for NetApp ONTAP

An image

สรุป

  • Amazon EKS เป็นบริการ Kubernetes ที่บริหารจัดการโดย AWS
  • รองรับทั้ง EC2 และ Fargate
  • มีตัวเลือก node และ storage ยืดหยุ่นสำหรับองค์กรที่ใช้ Kubernetes

Key Takeaways

  1. Amazon EKS เป็น Managed Kubernetes service บน AWS รองรับทั้ง EC2 และ Fargate
  2. Kubernetes เป็น โอเพนซอร์ส สำหรับ deploy, scale และ manage containerized applications
  3. EKS รองรับ Managed Node Groups, Self-Managed Nodes และ Fargate serverless nodes
  4. Storage options: Amazon EBS, Amazon EFS (compatible กับ Fargate), Amazon FSx ผ่าน CSI