Skaffold Dev Community Building — สร้าง

Skaffold Dev Community

Skaffold Continuous Development Kubernetes Hot Reload CI/CD Build Deploy File Sync Port Forwarding Multi-service Docker Helm Kustomize Community Building
| Dev Tool | Hot Reload | Multi-service | K8s Native | เหมาะกับ |
|---|---|---|---|---|
| Skaffold | ใช่ | ใช่ | ใช่ | K8s Developer |
| Tilt | ใช่ | ใช่ | ใช่ | UI Dashboard |
| DevSpace | ใช่ | ใช่ | ใช่ | Remote Dev |
| Telepresence | ใช่ | บางส่วน | ใช่ | Intercept Traffic |
| Docker Compose | บางส่วน | ใช่ | ไม่ | Simple Setup |
Skaffold Setup
=== Skaffold Configuration ===
อ่านเพิ่ม: LocalAI Self-hosted Event Driven Design | SiamCafe Blog · อ่านเพิ่ม: MLflow Experiment Home Lab Setup | SiamCafe Blog · อ่านเพิ่ม: LocalAI Self-hosted Tech Conference 2026 | SiamCafe Blog
Install
brew install skaffold
# or
curl -Lo skaffold https://storage.googleapis.com/skaffold/releases/latest/skaffold-linux-amd64
chmod +x skaffold && sudo mv skaffold /usr/local/bin
skaffold.yaml — Basic Configuration
apiVersion: skaffold/v4beta7
kind: Config
metadata:
name: my-app
build:
artifacts:
- image: my-app-api
context: services/api
docker:
dockerfile: Dockerfile
sync:
manual:
- src: 'src/**/*.ts'
dest: /app/src
- image: my-app-web
context: services/web
docker:
dockerfile: Dockerfile
sync:
manual:
- src: 'src/**/*.tsx'
dest: /app/src
deploy:
kubectl:
manifests:
- k8s/*.yaml
portForward:
- resourceType: service
resourceName: api
port: 3000
เนื้อหาเกี่ยวข้อง — ดูเพิ่มเติมเรื่อง Whisper Speech Message Queue Design
localPort: 3000
- resourceType: service
resourceName: web
port: 8080
localPort: 8080
Profiles — Multiple Environments
profiles:
- name: dev
activation:
- command: dev
build:

local:
push: false
แนะนำเพิ่มเติม — หนังสือเทรดที่ SiamCafeBook
- name: staging
build:
googleCloudBuild: {}
deploy:
helm:
releases:
- name: my-app
chartPath: charts/my-app
valuesFiles:
- values-staging.yaml
- name: production
deploy:
helm:
releases:
- name: my-app
chartPath: charts/my-app
valuesFiles:
- values-production.yaml
from dataclasses import dataclass
@dataclass
class SkaffoldCommand:
command: str
description: str
use_case: str
frequency: str
commands = [
SkaffoldCommand("skaffold dev", "Watch mode, auto build+deploy", "Local development", "ทุกวัน"),
SkaffoldCommand("skaffold run", "One-time build+deploy", "CI/CD, staging", "ทุก PR"),
SkaffoldCommand("skaffold debug", "Dev mode + debugger", "Debugging", "เมื่อต้องการ"),
เนื้อหาเกี่ยวข้อง — Fail2ban Advanced Developer Experience DX
SkaffoldCommand("skaffold render", "Output manifests", "GitOps, review", "CI/CD"),
SkaffoldCommand("skaffold build", "Build images only", "Pre-build", "CI/CD"),
SkaffoldCommand("skaffold init", "Auto-generate config", "New project", "ครั้งเดียว"),
]
Multi-service Development
=== Multi-service Workflow ===
Project Structure
my-platform/
├── skaffold.yaml
แนะนำเพิ่มเติม — iCafeForex
├── services/
│ ├── api/
│ │ ├── Dockerfile
│ │ ├── src/
│ │ └── package.json
│ ├── web/
│ │ ├── Dockerfile
│ │ ├── src/
│ │ └── package.json
เนื้อหาเกี่ยวข้อง — อ่านต่อ: คู่มือฉบับสมบูรณ์ PlanetScale Vitess AR VR Development 2026: เปลี่ยนโลกด้วยเท…
│ ├── worker/
│ │ ├── Dockerfile
│ │ └── main.py
│ └── gateway/
│ ├── Dockerfile
│ └── nginx.conf
├── k8s/
│ ├── api.yaml
│ ├── web.yaml
│ ├── worker.yaml
│ └── gateway.yaml
└── charts/
└── my-platform/
Development Workflow
Terminal 1: skaffold dev --port-forward
Terminal 2: kubectl logs -f -l app=api
Terminal 3: Edit code -> auto-deploy
@dataclass
class ServiceStatus:
name: str
เนื้อหาเกี่ยวข้อง — อ่านต่อ: ethical hacking สอน
image: str
pods: int
status: str
sync_mode: str
last_deploy: str
services = [
ServiceStatus("api", "my-app-api:latest", 2, "Running", "File Sync", "2s ago"),
ServiceStatus("web", "my-app-web:latest", 2, "Running", "File Sync", "5s ago"),
ServiceStatus("worker", "my-app-worker:latest", 1, "Running", "Rebuild", "30s ago"),
ServiceStatus("gateway", "my-app-gateway:latest", 1, "Running", "Rebuild", "1m ago"),
ServiceStatus("postgres", "postgres:16", 1, "Running", "N/A (external)", "Stable"),
ServiceStatus("redis", "redis:7", 1, "Running", "N/A (external)", "Stable"),
]
เคล็ดลับ
- File Sync: ใช้ File Sync แทน Rebuild เร็วกว่ามาก
- Profile: แยก Profile สำหรับ Dev Staging Production
- Template: สร้าง Template Project ให้ทีมใช้เหมือนกัน
- Workshop: จัด Workshop ทุกเดือนสำหรับคนใหม่
- Docs: เขียน Getting Started Guide ให้ละเอียด
Skaffold คืออะไร
CLI Tool Google Continuous Development Kubernetes Build Push Deploy Hot Reload File Sync skaffold dev skaffold run Docker Helm Kustomize skaffold.yaml





