استقرار Kubernetes را با استفاده از Terraform و Github Actions به صورت خودکار انجام دهید
ارسال GitHub Action + Dev 2023
چیزی که من ساختم
- من کد Terraform را ایجاد کرده ام که یک فضای نام ایجاد می کند و سرور Nginx را در خوشه minikube مستقر می کند و تأیید و استقرار کد TF با استفاده از اقدامات GitHub خودکار شده است.
چگونه ساختم
- یک گردش کار GitHub Actions با استفاده از افزونههای اقدامات بازار Github ایجاد کرد،
-
actions/checkout@v2.5.0-> برای بررسی کد -
medyagh/setup-minikube@v0.0.13-> برای راه اندازیminikube -
Azure/setup-kubectl@v3-> برای راه اندازیkubectl -
hashicorp/setup-terraform@v2.0.2-> برای راه اندازیterraform
-
- این گردش کار را می توان در محیط های توسعه استفاده کرد، که در آن یک توسعه دهنده Infra می تواند کد Terraform را برای استقرار بار کاری kubernetes ایجاد کند. پس از ایجاد کد tf، توسعهدهنده میتواند گردش کار Terraform را راهاندازی کند، که CI را برای کد Terraform انجام میدهد و infra را در آن مستقر میکند.
minikube. - زمینه پیکربندی kube به عنوان یک متغیر در Terraform ایجاد شده است، بنابراین میتوان آن را با سایر پیکربندیها و زمینههای Kubernetes Cluster از ارائهدهندگان Cloud مانند Amazon EKS یا Azure AKS یا GCP GKE Cluster لغو کرد.
ارسال دسته
استقرار DIY
لینک برنامه
کد منبع برای Repo در اینجا موجود است
Github Action Workflow Yaml
اسکرین شات ها

شرح
راه اندازی گردش کار
این گردش کار می تواند از actions با ارائه دایرکتوری کد Terraform به عنوان ورودی (به اسکرین شات بالا مراجعه کنید).
بنابراین مراحل زیر را در دایرکتوری ارائه شده به عنوان ورودی اجرا می کند.
- نصب گردش کار،
minikube،kubectlوterraformفایل های اجرایی CLI باید توسط بقیه گردش کار استفاده شوند - اجرا می شود
terraform initدستور دانلودkubernetesارائه دهنده - سپس می دود
terraform validateدستور بررسی کد tf معتبر است یا خیر - بعد از آن اجرا می شود،
terraform planوterraform applyایجاد فضای نام Kubernetes را فرمان داده و انجام می دهد و سرور nginx را مستقر می کند. - گردش کار نیز دارد
terraform destroyدستور، که زیرنویس kubernetes ایجاد شده در گردش کار را حذف می کند
ارسال گردش کار
- این گردش کار از
workflow_displatchنحو Github – بلوک فرعی درون بلوک راهاندازی رویداد on است که در آن میتوانیم ورودیهای مورد نیاز برای راهاندازی گردش کار را مشخص کنیم. - در بلوک رویداد
workflow_dispatchبخش، مسیر دایرکتوری ورودیها را اضافه میکنیم، که در آن اعتبار کد Terraform خود را اجرا میکنیم. - برای سهولت هدف آزمایشی، به دایرکتوری ‘kubernetes’ موجود در مخزن پیشفرض است.
پیوند به کد منبع
کد منبع برای Repo در اینجا موجود است
گزارش گردش کار اکشن Github
Github Action Workflow Yaml

مجوز مجاز
مجوز من
زمینه
همانطور که قبلا ذکر شد،
این گردش کار (یا خط لوله) را می توان برای آزمایش کد زمینی که توسط مهندسان/SRE/توسعه دهندگان DevOps فشار داده شده است پیکربندی کرد و هر زمان که کد tf جدیدی برای مدیریت بار کاری Kubernetes به یک شاخه خاص فشار داده شد، فعال شود.
منابع/اطلاعات اضافی



