Skaffold Dev Container Orchestration

Skaffold Dev Container Orchestration คืออะไร

Skaffold เป็น CLI tool จาก Google สำหรับ automate Kubernetes development workflow ครอบคลุม build, push และ deploy containers อัตโนมัติพร้อม hot-reload Container Orchestration คือการจัดการ containers หลายตัวให้ทำงานร่วมกันอย่างมีประสิทธิภาพ ครอบคลุม scheduling, scaling, networking และ health management การรวม Skaffold กับ container orchestration ช่วยให้ developers พัฒนา microservices บน Kubernetes ได้อย่างรวดเร็ว ลด inner loop time จากนาทีเหลือวินาที
Skaffold Configuration
# skaffold.yaml — Skaffold configuration for microservices
apiVersion: skaffold/v4beta6
kind: Config
metadata:
name: my-microservices
build:
artifacts:
- image: api-gateway
context: services/api-gateway
docker:
dockerfile: Dockerfile
sync:
manual:
- src: "src/**/*.py"
dest: /app
- image: user-service
context: services/user-service
docker:
dockerfile: Dockerfile
sync:
manual:
- src: "src/**/*.py"
dest: /app
- image: order-service
context: services/order-service
docker:
dockerfile: Dockerfile
- image: notification-service
context: services/notification-service
docker:
dockerfile: Dockerfile
local:
push: false
useBuildkit: true
concurrency: 2
deploy:
helm:
releases:
- name: api-gateway
chartPath: charts/api-gateway
valuesFiles:
- charts/api-gateway/values-dev.yaml
setValues:
image.tag: "{{.IMAGE_TAG_api_gateway}}"
- name: user-service
chartPath: charts/user-service
valuesFiles:
- charts/user-service/values-dev.yaml
- name: order-service
chartPath: charts/order-service
valuesFiles:
- charts/order-service/values-dev.yaml
statusCheckDeadlineSeconds: 120
portForward:
- resourceType: service
resourceName: api-gateway
port: 8080
localPort: 8080
- resourceType: service
resourceName: user-service
port: 8081
localPort: 8081
profiles:
- name: dev
activation:
- command: dev
patches:
- op: add
path: /build/local/push
value: false
- name: staging
build:
googleCloudBuild:
projectId: my-project
deploy:
kustomize:
paths:
- k8s/overlays/staging
- name: production
build:
googleCloudBuild:
projectId: my-project
deploy:
kustomize:
paths:
- k8s/overlays/production

FAQ - คำถามที่พบบ่อย
Q: Skaffold กับ Tilt อันไหนดี?
A: Skaffold: CLI-first, config-as-YAML, CI/CD friendly, Google-backed Tilt: UI dashboard, Tiltfile (Starlark), better visualization, Docker Compose-like Skaffold ดีกว่า: CI/CD integration, simple projects, kubectl/Helm/Kustomize users Tilt ดีกว่า: complex microservices, team collaboration, visual debugging ทั้งคู่ฟรี open source — ลองทั้งคู่แล้วเลือก
เนื้อหาเกี่ยวข้อง — อ่านต่อ: LocalAI Self-hosted Developer Experience DX
Q: File sync กับ rebuild ต่างกันอย่างไร?
แนะนำเพิ่มเติม — แหล่งความรู้ Forex iCafeForex
A: File sync: copy ไฟล์ที่เปลี่ยนเข้า running container → ไม่ต้อง rebuild image (~1 วินาที) Rebuild: build Docker image ใหม่ → push → redeploy pod (~30-60 วินาที) File sync เหมาะ: source code changes (Python, JS, HTML) Rebuild จำเป็น: Dockerfile changes, dependency changes (requirements.txt)
เนื้อหาเกี่ยวข้อง — แนะนำให้อ่าน api คือน้ํามัน — ข้อมูลครบถ้วน 2026
Q: Skaffold ใช้กับ local development ได้ยังไง?
A: ต้องมี local Kubernetes: Minikube, Kind, Docker Desktop K8s, Rancher Desktop skaffold dev → build locally → deploy to local cluster → port forward → access at localhost ใช้ build.local.push: false → ไม่ push to registry (เร็วกว่า) Tips: ใช้ Kind + Skaffold = setup เร็วที่สุด
แนะนำเพิ่มเติม — หนังสือเทรดที่ SiamCafeBook
เนื้อหาเกี่ยวข้อง — อ่านต่อ: MLOps Pipeline Data Pipeline ETL — สร้างระบบ ML
Q: รองรับกี่ services ได้?
A: ไม่มี limit ทางทฤษฎี — แต่ performance ขึ้นกับ hardware 5-10 services: ทำงานดีบน laptop ทั่วไป 10-20 services: ต้อง RAM 16GB+, SSD, parallel builds 20+ services: แนะนำ remote cluster + Cloud Build แทน local Tips: ใช้ Skaffold modules — dev แค่ services ที่กำลังทำ ไม่ต้อง build ทั้งหมด
เนื้อหาเกี่ยวข้อง — อ่านต่อ: Great Expectations Cost Optimization ลดค่าใช้จ่าย





