ข้ามไปเนื้อหาหลัก

คู่มือการใช้งาน Amazon EKS บน Fargate พร้อม AWS Load Balancer Controller และแอป 2048

เจาะลึกขั้นตอนการติดตั้งคลัสเตอร์ Kubernetes บน Amazon EKS โดยใช้ AWS Fargate และเชื่อมต่อกับ Application Load Balancer อย่างสมบูรณ์แบบ

เรียบเรียงโดย AI
Inewgen
03 Aug 2026ที่มา: Dev.to4 นาทีอ่าน (0 ครั้ง)อัปเดตล่าสุด 29 Aug 2026
แชร์
คู่มือการใช้งาน Amazon EKS บน Fargate พร้อม AWS Load Balancer Controller และแอป 2048

ภาพประกอบจากคลังภาพสต็อก ไม่ใช่ภาพจากเหตุการณ์จริง

ขนาดตัวอักษร
  • รันเวิร์กโหลดบน AWS Fargate โดยไม่ต้องจัดการ worker nodes
  • กำหนดค่า OpenID Connect และ Fargate Profile สำหรับเนมสเปซเกม 2048
  • แก้ปัญหาข้อผิดพลาดทั่วไปในการติดตั้ง Helm chart และปัญหา Fargate Pods เข้าถึง IMDS

บทความนี้เป็นคู่มือแนะนำวิธีปรับใช้แอปพลิเคชัน Kubernetes บน Amazon Elastic Kubernetes Service (EKS) โดยใช้ AWS Fargate พร้อมทั้งเปิดให้เข้าถึงแอปผ่าน Application Load Balancer (ALB) ที่จัดการโดย AWS Load Balancer Controller จุดเด่นสำคัญของการใช้งานรูปแบบนี้คือเวิร์กโหลดทั้งหมดจะทำงานบน AWS Fargate ทำให้ผู้ดูแลระบบไม่ต้องมานั่งปวดหัวกับการจัดการ worker nodes แต่อย่างใด

ก่อนที่จะเริ่มต้นลงมือปฏิบัติจริง ผู้ใช้งานจำเป็นต้องตรวจสอบความพร้อมของเครื่องมือหลักๆ ที่ต้องใช้งานให้เรียบร้อยเสียก่อน โดยมีเครื่องมือสำคัญดังต่อไปนี้:

  • AWS CLI (ตรวจสอบด้วยคำสั่ง aws --version)
  • Kubectl (ตรวจสอบด้วยคำสั่ง kubectl version --client)
  • Eksctl (ตรวจสอบด้วยคำสั่ง eksctl version)
  • Helm (ตรวจสอบด้วยคำสั่ง helm version)

นอกจากนี้ บัญชี IAM ที่ใช้ในการติดตั้งจะต้องได้รับสิทธิ์นโยบายแบบ AWS managed policies ที่จำเป็น เช่น สิทธิ์ในการสร้างและจัดการ EKS คลัสเตอร์, สิทธิ์ให้ EKS โต้ตอบกับบริการอื่นๆ ของ AWS, สิทธิ์สำหรับการดำเนินงานที่เกี่ยวกับโหนดและ Fargate, สิทธิ์ดึงภาพคอนเทนเนอร์จาก ECR, สิทธิ์สร้าง IAM roles และ service accounts รวมไปถึงสิทธิ์ที่จำเป็นเนื่องจาก eksctl จะต้องสร้าง AWS CloudFormation stacks ขึ้นมาเบื้องหลัง

การใช้งาน Amazon EKS ร่วมกับ AWS Fargate ช่วยลดภาระในการบริหารจัดการโครงสร้างพื้นฐานด้านเซิร์ฟเวอร์ (Serverless computing สำหรับ Kubernetes) ได้อย่างยอดเยี่ยม นักพัฒนาไม่ต้องกังวลเรื่องการอัปเดต OS แพตช์ความปลอดภัย หรือการปรับขนาด EC2 instances ของโหนดแต่อย่างใด อย่างไรก็ตาม การที่ Fargate pods ไม่สามารถเข้าถึง EC2 Instance Metadata Service (IMDS) ได้โดยตรง ก็เป็นจุดสังเกตสำคัญที่ต้องระวังในการออกแบบสถาปัตยกรรมแอปพลิเคชัน

หลังจากเตรียมความพร้อมเรื่องสิทธิ์และเครื่องมือแล้ว ขั้นตอนต่อมาคือการสร้างคลัสเตอร์ด้วยคำสั่ง eksctl create cluster --name demo-eks-cluster --region us-east-1 --fargate พร้อมทั้งกำหนดค่า kubeconfig เพื่อให้ kubectl สามารถสื่อสารกับคลัสเตอร์ชื่อ demo-eks-cluster ในภูมิภาค us-east-1 ได้อย่างราบรื่น ซึ่งในการใช้งาน Fargate นั้น เมื่อรันคำสั่งตรวจสอบโหนดด้วย kubectl get nodes จะไม่ปรากฏ EC2 nodes ให้เห็นเหมือนกับการใช้งานทั่วไป

ไม่อยากพลาดข่าวใหม่?

สมัครรับสรุปข่าวสารใหม่ทางอีเมล ไม่บ่อยจนรำคาญ

โฆษณา

Kubernetes cluster terminal command line

ภาพประกอบจากคลังภาพสต็อก ไม่ใช่ภาพจากเหตุการณ์จริง

ในส่วนของการตั้งค่าความปลอดภัย OpenID Connect (OIDC) จะช่วยให้ Kubernetes service accounts สามารถสวมบทบาท AWS IAM roles ได้อย่างปลอดภัยผ่าน IRSA (IAM Roles for Service Accounts) เพื่อให้พอดสามารถรับข้อมูลประจำตัวชั่วคราวในการเข้าถึงบริการ AWS ต่างๆ ได้ นอกจากนี้ยังต้องสร้าง Fargate Profile เฉพาะสำหรับเนมสเปซเกม 2048 โดยใช้คำสั่ง eksctl create fargateprofile --cluster demo-eks-cluster --region us-east-1 --name alb-game-2048 --namespace game-2048 เพื่อแยกการทำงานของแอปพลิเคชันอย่างเป็นระเบียบ

เมื่อถึงขั้นตอนการติดตั้ง AWS Load Balancer Controller ซึ่งทำหน้าที่สร้างและจัดการ ALB สำหรับ Kubernetes Ingress resources อาจพบปัญหาในการเชื่อมต่อกับ Helm repository โดยคำสั่ง helm repo add eks https://aws.github.io/eks-charts อาจแสดงข้อผิดพลาด EOF แม้ว่าการดาวน์โหลดไฟล์ index.yaml ผ่าน curl จะทำได้ปกติก็ตาม ทางออกคือนำเข้าไฟล์แพ็กเกจด้วย wget เช่น wget https://aws.github.io/eks-charts/aws-load-balancer-controller-3.4.3.tgz แล้วจึงทำการติดตั้งผ่าน Helm แทน

ปัญหาอีกจุดหนึ่งที่มักพบคือข้อผิดพลาด CrashLoopBackOff และข้อความ failed to fetch VPC ID from instance metadata ซึ่งมีสาเหตุมาจากการที่ Fargate pods ไม่สามารถเข้าถึง EC2 Instance Metadata Service (IMDS) ได้โดยตรง ทำให้ต้องดึงค่า VPC ID ผ่านคำสั่ง AWS CLI เช่น aws eks describe-cluster --name demo-eks-cluster --region us-east-1 --profile dev --query "cluster.resourcesVpcConfig.vpcId" แทน

ที่มา: Dev.to

ความคิดเห็น

แสดงความคิดเห็น
0/2000

พบข้อมูลผิดพลาดในบทความนี้? แจ้งปัญหาบทความนี้