Google Cloud ปรับใช้ Docker รุ่นใดที่คุ้มค่าที่สุด?
เรียกใช้คอนเทนเนอร์ Docker ด้วย Compute Engine (GCE) บน Google Cloud Platform (GCP) เป็นตัวเลือกแรกสำหรับทีมขนาดเล็กและขนาดกลางนักพัฒนาแต่ละรายและสถาปัตยกรรมไมโครเซอร์วิสอย่างไรก็ตาม GCP มีโมเดลหลายร้อยแบบหากคุณเลือกข้อกำหนดที่ไม่ถูกต้องไม่เพียงแต่การเรียกเก็บเงินรายเดือนจะทำให้การเงินหายใจไม่ออกแต่ยังอาจทำให้คอนเทนเนอร์ขัดข้องบ่อยครั้งเนื่องจากหน่วยความจำล้น (OOM)
ความแตกต่างที่ใหญ่ที่สุดระหว่างการเรียกใช้ Docker และการเรียกใช้เครื่องเสมือนแบบเดิมคือ:
ค่าใช้จ่ายของคอนเทนเนอร์นั้นต่ำมากเคอร์เนลโฮสต์ที่ใช้ร่วมกันสิ่งที่กินทรัพยากรจริงๆคือการมิเรอร์แอปพลิเคชันและการทำงานพร้อมกันของคุณ
。
บทแนะนำเชิงลึกนี้ไม่ได้พูดถึงการพูดเปล่าๆตั้งแต่ "การค้าประเวณีฟรี" ไปจนถึง "ประสิทธิภาพด้านต้นทุนสูงระดับองค์กร" การรื้อและปรับใช้ Docker บน GCP ซึ่งเป็นคู่มือการเลือกรุ่นที่ประหยัดที่สุดและหลีกเลี่ยงหลุม
ก่อนอื่นให้ค้นหาลักษณะ "กินทรัพยากร" ของ Docker
ก่อนที่จะเลือกรุ่นเราต้องเข้าใจตรรกะการใช้ทรัพยากรของคอนเทนเนอร์ Docker บนเครื่องเสมือน Linux ก่อน:
หน่วยความจำ (RAM) เป็นเส้นชีวิตแรก: Docker container แชร์เคอร์เนลโฮสต์พลังการประมวลผลของ CPU ไม่เพียงพอและการตอบสนองจะช้าที่สุดแต่เมื่อหน่วยความจำระเบิด Linux OOM Killer จะฆ่ากระบวนการคอนเทนเนอร์ของคุณโดยตรงดังนั้น "อัตราส่วนราคาต่อประสิทธิภาพของหน่วยความจำ" จึงมีความสำคัญมากกว่า "ความถี่ CPU" เมื่อเลือก
การสนับสนุนเนทีฟของสถาปัตยกรรม Arm นั้นยอดเยี่ยมมาก: ปัจจุบันซอฟต์แวร์โอเพนซอร์สหลักมากกว่า95% (Nginx, Node.js, Go, Python, MySQL, Redis) มีมิเรอร์ arm64 Docker อย่างเป็นทางการการสร้างภาพหลายสถาปัตยกรรม (docker buildx) กลายเป็นบรรทัดฐานซึ่งช่วยขจัดอุปสรรคในการเลือกรุ่น Arm ที่คุ้มค่ามาก
2.คู่มือการเลือกโมเดลตามฉาก
เราแบ่งสถานการณ์การปรับใช้ Docker ออกเป็นสามประเภท:
น้ำหนักเบาส่วนบุคคล/การทดสอบ
、
บริการไมโครการผลิตขนาดเล็กและขนาดกลาง
, และ
แอปพลิเคชั่นโอเวอร์โหลดพร้อมกันสูง
。
สถานการณ์ที่1: โครงการส่วนบุคคล/เครื่องมือความถี่ต่ำ/การทดสอบการพัฒนา (0หยวน ~ ไม่กี่ดอลลาร์/เดือน)
ตัวเลือกที่แนะนำ:
อีทู-ไมโคร
หรือ
อีสอง-เล็ก
การค้าประเวณีสีขาวที่ประหยัดเงินมาก: การกำหนดค่า e2-micro: 2 vCPU (คอร์ที่ใช้ร่วมกันโดยปกติจะจัดสรรพลังการประมวลผล CPU จริง0.25ตัวรองรับการระเบิดในระยะสั้น) หน่วยความจำ1 GB ราคา: ใน us-central1 us-east1หรือพื้นที่ us-west1 GCP ให้วงเงินฟรี1 e2-micro ต่อผู้ใช้ต่อเดือนปัญหาคอขวดและวิธีแก้ปัญหาที่แท้จริง: หน่วยความจำ1 GB เรียกใช้ Docker ค่อนข้างกะทัดรัดหากคุณเรียกใช้พื้นหลัง Go/Node ของ Nginx ก็ง่ายที่จะ OOM กลโกงหลุม: ต้องเปิดบนโฮสต์ Linux
เปิด2 GB Swap พาร์ทิชัน! ในขณะเดียวกันหลีกเลี่ยงการใช้เครื่องนี้เพื่อสร้างภาพมิเรอร์ออนไลน์ (ตัวกรองจะกิน CPU และหน่วยความจำทันที) ขอแนะนำให้ใช้ docker pull โดยตรงหลังจากสร้างภาพมิเรอร์ในเครื่องหรือการดำเนินการของ GitHub
ประเภทที่เสถียรและใช้งานได้จริง: การกำหนดค่า e2-small: 2 vCPU (แกนที่ใช้ร่วมกันพลังบัญชี0.5ตามปกติ) หน่วยความจำ2 GB ราคา: ประมาณ $12-$15/เดือนการใช้งาน: คอมโบ Docker น้ำหนักเบา (เช่น: Nginx + WordPress + MySQL 5.7) มากกว่าเว็บไซต์ส่วนบุคคลที่มีน้ำหนักเบา
สถานการณ์ที่2: สภาพแวดล้อมการผลิตขนาดเล็กและขนาดกลาง/คลัสเตอร์ตู้คอนเทนเนอร์ขนาดเล็ก (แผนที่แนะนำมากที่สุด)
หากคอนเทนเนอร์ Docker ของคุณทำงานในสภาพแวดล้อมการผลิตอย่าใช้
E2
โมเดลคอร์ที่ใช้ร่วมกันเนื่องจาก CPU Steal จะกระวนกระวายใจเมื่อเพื่อนบ้านยึดทรัพยากรความต้องการสภาพแวดล้อมการผลิต
พลังการคำนวณทางกายภาพพิเศษ
。
ทางเลือกที่แนะนำ: ค่ายสถาปัตยกรรม Arm-
Tau T2A
/
เอ็นโฟร์เอ (แอ็กซิออน)
นี่คือการปรับใช้ Docker GCP ในปัจจุบัน
คุ้มค่าที่สุดและประหยัดที่สุด
นักฆ่า!
Tau T2A / N4A (Arm Architecture): ชิป: ใช้ชิป Ampere Altra หรือชิป Axion Arm ที่พัฒนาขึ้นเองของ Google เหตุใดจึงเหมาะสำหรับ Docker:1 vCPU = 1แกนทางกายภาพจริงไม่มีปัญหาในการคว้าทรัพยากรโดย x86 Hyper-threading และประสิทธิภาพการทำงานพร้อมกันแบบหลายคอนเทนเนอร์นั้นเสถียรมากเมื่อเทียบกับรุ่น Intel (N2/N4) ที่มีคุณสมบัติเดียวกันต้นทุนการคำนวณหน่วยจะลดลงโดยตรง20% ~ 30% หน่วยความจำมีความยืดหยุ่น: 1 vCPU พร้อมหน่วยความจำ4 GB (ประเภทมาตรฐาน) ซึ่งเหมาะกับความต้องการหน่วยความจำของคลัสเตอร์คอนเทนเนอร์ Docker
หากแอปพลิเคชันต้องใช้สถาปัตยกรรม x86: N2D หรือ Tau T2D เป็นที่ต้องการหากมิเรอร์บางส่วนของคุณไม่มีเวอร์ชัน arm64 (เช่นไลบรารีไดนามิก x86 C แบบปิดเก่า) โปรดเลือก N2D หรือ T2D ของชิป AMD EPYC ก่อนภายใต้เพศเดียวกัน AMD (N2D/T2D) ถูกกว่า Intel (N2/N4) 10% ~ 15%
สถานการณ์ที่3: ไมโครเซอร์วิสไร้สัญชาติการดำเนินการและการบำรุงรักษาอัตโนมัติ (ขีดจำกัดสูงสุดของการประหยัดเงิน: ส่วนลดสูงสุด)
สุดยอดโปรแกรมประหยัดเงิน: Spot VMs (ตัวอย่างการยึด)
หากแอป Docker ของคุณคือ
ไม่มีสถานะ (Stateless)
-ตัวอย่างเช่นคอนเทนเนอร์ Node.js/Python ที่รับผิดชอบในการประมวลผลคำขอ API เท่านั้นข้อมูลทั้งหมดจะถูกเก็บไว้ใน C ภายนอก
ใน Cloud SQL หรือ Redis จากนั้น Spot VM คือสิ่งประดิษฐ์ที่ช่วยประหยัดเงินของคุณ
ความแรงของส่วนลด: ส่วนลด60%-90% เมื่อเทียบกับราคาตามความต้องการสำหรับเซิร์ฟเวอร์ที่มีราคาเดิม $100/เดือน Spot ต้องการเพียง $10-$30/เดือน
กฎการใช้งาน: GCP อาจเรียกคืนเครื่องเสมือนนี้ได้ตลอดเวลา (แจ้งล่วงหน้า30วินาที)
โซลูชันการจัดระเบียบที่หรูหราของ Docker: ใช้พูลโหนด Managed Instance Group (MIG) หรือ GKE (Google Kubernetes Engine) ของ GCP เปิดความสามารถในการขยายอัตโนมัติและการเปลี่ยนโหนด Spot และร่วมมือกับลักษณะการเริ่มต้นอย่างรวดเร็วของคอนเทนเนอร์ Docker (สามารถเริ่มเย็นได้ภายใน5วินาที) เพื่อให้เกิดการขัดจังหวะแบบไม่เหนี่ยวนำ
3.การเปรียบเทียบการกำหนดค่าโมเดลและการเรียกเก็บเงินรายเดือนอย่างง่าย
ใน
Us-central1
ความต้องการในการปรับใช้ภูมิภาค
2 vCPU + 8GB RAM
โหนดการผลิต Docker เป็นตัวอย่าง:
ซีรีส์รุ่นเครื่อง
สถาปัตยกรรมชิป
ฉากที่ใช้งานได้
ค่าบริการรายเดือนโดยประมาณ (ตามความต้องการ)
โปรแกรมประหยัดเงินที่ดีที่สุด (CUD/Spot)
E2-standard-2
X86 (Intel/AMD)
น้ำหนักเบามาก/ทดสอบ (แกนที่ใช้ร่วมกัน)
~ $48/เดือน
1ปี/3ปี CUD ลดประมาณ $21/เดือน
T2a-standard-2
Arm (Ampere)
ตัวเลือกที่ดีที่สุดสำหรับภาชนะบรรจุไมโครเซอร์วิส
~ $38/เดือน
ด้วย CUD ถึง ~ $22/เดือน
N2d-standard-2
X86 (AMD EPYC)
X86ผลิตไมโครเซอร์วิสแบบเดิม
~ $58/เดือน
ด้วย Spot ถึง ~ $15/เดือน
N2-standard-2
X86 (Intel)
ซอฟต์แวร์ธุรกิจแบบดั้งเดิม/เข้ากันได้กับกระจกเก่า
~ $67/เดือน
CUD ลดลงเหลือ ~ ใน3ปี $30/เดือน
สรุปการเลือก: ให้ความสำคัญกับ Arm (T2A / N4A)> ตามด้วย AMD (N2D / T2D)> สุดท้ายเลือก Intel (N2)
4.คำแนะนำในการหลีกเลี่ยงหลุม: ค่าใช้จ่ายที่ซ่อนอยู่เหล่านี้แพงกว่ารุ่นเอง!
เมื่อมือใหม่หลายคนปรับใช้ Docker บน GCP พวกเขาพบว่าโมเดลนั้นเลือก $15/เดือนอย่างชัดเจน
อีสอง-เล็ก
แต่ได้รับใบเรียกเก็บเงิน $50เมื่อชำระเงินปัญหามักอยู่ในสามจุดที่ซ่อนอยู่ต่อไปนี้:
┌─────────────────────────────────────────────────────────────────────────────────────────────────────
│Doc
Ker ปรับใช้ GCP เพื่อซ่อนหลุม │
└ ─────────────────────────────────────────────────────────────────────────────────────────────────────
│
┌────────────────────────────────────────────────────────────────────────────────────────────────────
▼▼▼
[Persistent Disk] [Static Public IP(Static IP)] [การจราจรขาออก]
* หลีกเลี่ยงการเปิด SSD 100GB แบบสุ่มสี่สุ่มห้าโดยค่าเริ่มต้น * การผูกเพื่อเปิดเครื่องเสมือน: ฟรี * การรับส่งข้อมูลขาออก GCP มีราคาแพงมาก ($0.085 /GB)
* เลือก pd-balanced / pd-standard * ไม่ได้ใช้งานไม่ได้ผูก: $0.005/ชั่วโมง (หักเงิน) * วิธีแก้ไข: ตั้ง Cloudflare CDN เพื่อหลีกเลี่ยงหลุม
1.การเลือกดิสก์และมิเรอร์ค้าง
ประเภทดิสก์: อย่าเลือก pd-ssd สุ่มสี่สุ่มห้า (ราคาแพงกว่าต่อ GB) สำหรับสถานการณ์ Docker ส่วนใหญ่ประสิทธิภาพของ pd-balanced (Balanced SSD) นั้นเพียงพออย่างสมบูรณ์และราคาถูกกว่าเกือบครึ่งหนึ่งหากเป็นเพียงบันทึก pd-standard (ดิสก์กลไกมาตรฐาน) จะคุ้มค่ากว่า
ล้างบันทึกและมิเรอร์เก่า: ไดรเวอร์บันทึก json-file เริ่มต้นของ Docker จะไม่ล้างไฟล์บันทึกโดยอัตโนมัติและดิสก์จะเต็มเมื่อเวลาผ่านไปในขณะเดียวกันอิมเมจขยะ overlay2ที่สร้างขึ้นโดยการทิ้งขยะบ่อยๆจะกินพื้นที่ดิสก์การเพิ่มประสิทธิภาพที่ต้องทำ: ตั้งค่าขีดจำกัดสูงสุดของบันทึก Docker และกำหนดค่าการกำหนดเวลางานทำความสะอาดมิเรอร์: Bash # โปรไฟล์ /etc/docker/daemon. json { "log-driver": "json-file", "log-opts": { "max-size": "20m", "max-file": "3" } } เรียกใช้ระบบล็อกเกอร์เป็นระยะๆ prune -af-volumes ทำความสะอาดภาพที่ถูกทิ้ง
2.การหักเงิน IP แบบคงที่ไม่ได้ใช้งาน
การรักษา IP สาธารณะแบบคงที่ของ GCP (Exte
Rnal IP) ฟรีบน VM ที่ถูกผูกไว้และเปิดอยู่ (หรือรวมอยู่ในจำนวนเงินที่ต่ำมาก)
แต่ถ้าคุณปิด VM หรือลบ VM แต่ลืมปล่อย IP แบบคงที่นี้ GCP จะเรียกเก็บ "ค่าธรรมเนียมการเข้าพัก IP แบบคงที่" ในอัตราประมาณ $0.005/ชั่วโมง
3.การจราจรขาออก (Egress Network)
ค่าบริการข้อมูลขาออกของ GCP มีราคาแพงกว่า (โดยทั่วไปเริ่มต้นที่ $0.085/GB ไปยังเครือข่ายสาธารณะ)
หากใช้คอนเทนเนอร์ Docker ของคุณเพื่อจัดหาเตียงรูปภาพการส่งวิดีโอหรือการดาวน์โหลดไฟล์ขนาดใหญ่ค่าใช้จ่ายในการรับส่งข้อมูลจะสูงกว่าค่าเช่าของ VM เองขอแนะนำให้ติดตั้ง Cloudflare CDN ฟรีที่หน้า VM หรือเปิดการบีบอัด gzip / brotli ซึ่งจะช่วยให้คุณประหยัดค่าใช้จ่ายในการรับส่งข้อมูลได้มากกว่า70%
5.รายการการตัดสินใจขั้นสุดท้าย
งบประมาณ0หยวน/เครื่องมือพิเศษส่วนบุคคล:👉E2-micro โดยตรง (พื้นที่ us-central1, โควต้าฟรี Always ฟรี) + ติดตั้งพาร์ติชัน Swap 2GB ด้วยตนเอง
คอมโบขนาดเล็กและขนาดกลาง Web / Docker Compose (2 ~ ข้อกำหนดหน่วยความจำ4GB):👉เลือก T2A / N4A (สถาปัตยกรรม Arm) หรือ e2-standard-2เพื่อให้ได้อัตราส่วนราคา/ประสิทธิภาพที่ดีเยี่ยม
คลัสเตอร์ไมโครเซอร์วิส/แอปพลิเคชันไร้สัญชาติที่สามารถทนต่อการหยุดชะงักในระยะสั้น:👉เลือกรุ่นสถาปัตยกรรม Spot VM + Arm ใช้1 ~ เพลิดเพลินกับประสิทธิภาพสูงในราคาลด20%
การดำเนินงานที่มั่นคงของฐานข้อมูลการผลิตและภาชนะบรรจุธุรกิจหลักมานานกว่า1ปี:👉เลือก N2D หรือ N4และซื้อ CUD 1ปีหรือ3ปี (ส่วนลดตามสัญญา) บนคอนโซล GCP และกด5 ~ โดยตรงบนบิลลด30%
