🚀 از صفر به K8s Hero بروید: Kubernetes Local Dev با DevSpace + Kind

بیایید با آن روبرو شویم – Kubernetes بسیار جذاب است ، اما توسعه آن می تواند احساس کند که سعی در اشکال زدایی کد اسپاگتی چشم بسته است. بین تنظیم خوشه ها ، همگام سازی کد و تعجب چرا غلاف دوباره تغییرات شما را انتخاب نمی کند، از دست دادن حرکت آسان است.
اما امروز نیست امروز ، شما می خواهید Kubernetes را با Devspace سیلی بزنید ، خوشه محلی خود را با نوع خود بچرخانید و یک برنامه Node.js بسازید که سریعتر از مصرف کافئین شما به روز شود.
این فقط یک راهنما نیست-این مسیر سریع شما برای تبدیل شدن به یک رئیس محلی K8S است.
⚙ آنچه ما در حال ساخت هستیم (و چرا باید مراقبت کنید)
ما یک برنامه ساده و با بارگیری زنده را ایجاد خواهیم کرد. شما دریافت خواهید کرد:
✅ یک خوشه واقعی Kubernetes (با مهربانی ، نه “وانمود-کوبه”)
reloads Live DevSpace و همگام سازی کد دو طرفه
✅ تنظیم استقرار به سبک تولید
✅ برنامه ای که در واقع کار و به روز می کند بدون شما از کروم خشمگین می شوید
repo github: narmidm/devspace-k8s-local-dev
🧪 پیش نیازها
قبل از شیرجه رفتن ، اطمینان حاصل کنید که:
پاداش: نصب Kind & DevSpace با Homebrew (MACOS)
brew install kind
brew install devspace
لینوکس؟ جای نگرانی نیست در عوض از اینها استفاده کنید:
curl -Lo ./kind https://kind.sigs.k8s.io/dl/v0.27.0/kind-$(uname)-amd64
chmod +x ./kind && sudo mv ./kind /usr/local/bin/kind
curl -L -o devspace https://github.com/loft-sh/devspace/releases/latest/download/devspace-linux-amd64
chmod +x devspace && sudo mv devspace /usr/local/bin/
🛠 مرحله 1: کلون و کاوش در repo
git clone https://github.com/narmidm/devspace-k8s-local-dev.git
cd devspace-k8s-local-dev
npm install
چه چیزی در داخل است؟
├── app.js # Node server (hello, world!)
├── index.html # Served from the app
├── Dockerfile # Our container recipe
├── devspace.yaml # DevSpace magic
└── k8s/
└── deployment.yaml # K8s deployment config
🔧 مرحله 2: یک خوشه محلی K8S با نوع ایجاد کنید
kind create cluster
رونق شما اکنون یک خوشه کاملاً کاربردی Kubernetes دارید … در حال اجرا است داخل داکربشر ویبس شروع؟ شاید. خنک؟ قطعاً
تأیید کنید که بالا است:
kubectl cluster-info
📦 مرحله 3: برنامه را درک کنید
برنامه شما یک سرور HTTP فوق العاده مبتنی بر است که در خدمت است index.html
بشر اما همچنین به اندازه کافی هوشمند است که بتواند زنده را بارگیری مجدد کند (به لطف nodemon
) و به محض تغییر پرونده ها به روز کنید.
// app.js
http.createServer((req, res) => {
// Serve index.html and show changes
}).listen(PORT)
سعی کنید ویرایش Timestamp را در index.html
بشر DevSpace آن را به صورت زنده در ظرف 💥 💥 💥 💥 💥.
🧙♂ مرحله 4: تنظیم DevSpace (با نام مستعار “جادو در اینجا اتفاق می افتد”)
DevSpace مراقبت می کند:
- 🛠 ساخت تصویر داکر
- 🚀 اعزام به خوشه خود
- 🔄 کد همگام سازی (دو طرفه!)
- 🔁 تنظیم خودکار برنامه خود را در تغییر
در devspace.yaml
همه آن را تعریف می کند:
images:
app:
image: devspace-k8s-local-dev:latest
dockerfile: Dockerfile
dev:
app:
sync:
- path: ./:/app
command: ["npm", "run", "dev"]
ports:
- port: 3000
بنابراین وقتی دویدید:
devspace dev
DevSpace Will:
- تصویر خود را بسازید
- استقرار آن با استفاده از
k8s/deployment.yaml
- بندر 3000 به سمت محلی
- کد خود را در همگام نگه دارید
- در صورت تغییر موارد ، برنامه را مجدداً راه اندازی کنید
اکنون http: // localhost: 3000 را باز کنید و برنامه زنده خود را مشاهده خواهید کرد. 🎉
✍ ویرایش و تماشای جادو
باز index.html
، یک عنوان یا زمان بندی را تغییر دهید. پس انداز
رونق در داخل غلاف بارگیری مجدد شد.
بدون بازسازی بدون استفاده مجدد بدون اشک
🧼 تمیز کردن
برای روز انجام شد؟
kind delete cluster
فضای داکر را نیز آزاد کنید:
docker system prune -f
🧠 جایزه: موضوعات مشترک
غلاف به طور مکرر دوباره راه اندازی می شود؟
گزارش ها را بررسی کنید:
kubectl logs
به روزرسانی در مرورگر ندارید؟
مجدداً devspace را مجدداً راه اندازی کنید. یا دوباره آن را خاموش و دوباره (کلاسیک).
مجوز رد شد؟
داکر ممکن است به سودو احتیاج داشته باشد. یا باید کاربر خود را به گروه Docker اضافه کنید.
thoughts افکار نهایی
Kubernetes Local Dev نیازی به مکیدن ندارد.
با نوع + devspace ، شما یک حلقه Dev-Fast-Fast ، قوام تولید مانند و لحظه های WTF کمتری در دقیقه دارید. این که آیا شما در حال کار انفرادی هستید یا در حال سوار شدن در یک تیم هستید ، این راه اندازی فقط کاربشر
دفعه بعد کسی می گوید “اما K8S برای Devs سخت است” ، این مقاله را برای آنها ارسال کنید – و پیوندی به تنظیم کار شما.
🧑💻 repo github: 👉 https://github.com/narmidm/devspace-k8s-local-dev
برنامه نویسی مبارک ، همکار جدید جنگجو! 💙🐳