برنامه نویسی

🚀 از صفر به 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:

  1. تصویر خود را بسازید
  2. استقرار آن با استفاده از k8s/deployment.yaml
  3. بندر 3000 به سمت محلی
  4. کد خود را در همگام نگه دارید
  5. در صورت تغییر موارد ، برنامه را مجدداً راه اندازی کنید

اکنون 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

برنامه نویسی مبارک ، همکار جدید جنگجو! 💙🐳


نوشته های مشابه

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *

دکمه بازگشت به بالا