معرفی
هنگام برنامه ریزی شبکه برای خوشه Azure Kubernetes، به ملاحظات زیر فکر می کنیم.
- آیا Azure Kubernetes Cluster من نیاز به ادغام با سایر مؤلفههای خارج از Cluster دارد یا مستقل است و نیازی به ادغام با مؤلفههای خارجی ندارد؟
- آیا باید مستقیماً به Pods در یک خوشه دسترسی داشته باشید یا باید Pods را در کلاستر جدا کنید تا کسی نتواند مستقیماً به آن دسترسی داشته باشد؟
- برای برقراری ارتباط با Pods چه استراتژی باید دنبال کنید؟
- آیا نیاز به پیکربندی سیاست های شبکه و فایروال ها در سطح Pods دارید؟
- تعداد اجزای شبکه و پادهایی که برای Cluster برنامه ریزی می کنید چقدر است و آیا آدرس IP کافی برای اختصاص دادن دارید؟
این ملاحظات بلوک اصلی برای طراحی شبکه خوشه ای Azure Kubernetes شما را تشکیل می دهند. قبل از ارائه خوشه باید شبکه را برای خوشه Azure Kubernetes خود برنامه ریزی کنید. یا ممکن است در نهایت کلاستر را مجدداً ایجاد کنید تا تغییراتی در سطح شبکه را در زمان بعدی انجام دهید. سرویس Azure Kubernetes انواع شبکه های مجازی زیر را برای رفع نگرانی های شبکه برای خوشه شما ارائه می دهد.
- شبکه های پایه با استفاده از Kubenet
- شبکه سازی پیشرفته با استفاده از Azure CNI
Kubenet به شما اجازه نمی دهد مستقیماً به Pod متصل شوید. با این حال، با استفاده از Azure CNI، می توانید مستقیماً به Pod دسترسی داشته باشید. اجازه دهید شبکه مجازی Kubenet را برای سرویس Azure Kubernetes در این مقاله بررسی کنیم و شبکه مجازی Azure CNI را برای مقاله بعدی رزرو کنیم.
در زیر مقالات قبلی سری Azure Kubernetes آمده است که به شما کمک می کند تا مفاهیم اولیه را در این زمینه بسازید.
شبکه های پایه با استفاده از Kubenet
Kubenet ساده ترین گزینه شبکه است که توسط هر خوشه Kubernetes ارائه شده است. شبکه مجازی یک خوشه Kubenetes با استفاده از Kubenet توسط Kubernetes Master ایجاد و مدیریت می شود. شما هیچ کنترلی روی آن ندارید. با طراحی، شما نمی توانید شبکه مجازی Kubenet را با هیچ شبکه مجازی دیگری یکپارچه کنید. هر یک از گره ها در کلاستر یک آدرس IP از محدوده شبکه مجازی زیرین دریافت می کند. با این حال، Pods یک آدرس IP دریافت می کند که از محدوده شبکه مجازی نیست. Kubernetes Master آدرس IP را در حین ایجاد آن در Cluster به Pod اختصاص می دهد. به همین دلیل است که Pods مستقیماً از خارج از خوشه قابل دسترسی نیست. هر یک از Pods در گره به یک پل متصل می شود. این طراحی به Pods کمک می کند تا در داخل Node با یکدیگر ارتباط برقرار کنند. پل به یک روتر متصل می شود که ترافیک را از پل به دنیای خارجی هدایت می کند. ترجمه آدرس شبکه به ترجمه آدرس IP به یک آدرس IP خارجی که توسط گره مقصد شناسایی می شود کمک می کند که همچنین می تواند در یک شبکه مجازی متفاوت باشد. انتقال IP برای گرهها فعال میشود، و مسیر تعریفشده توسط کاربر، ترافیک را بر اساس آدرس IP خارجی ترجمه شده توسط ترجمه آدرس شبکه، به گره مقصد ارسال میکند.
شکل 1 یک خوشه Kubernetes را نشان می دهد که با استفاده از Kubenet شبکه شده است، جایی که Master Node یک شبکه مجازی با محدوده آدرس به عنوان 10.220.0.0/16 ارائه کرده است. Node 1 و Node 2 یک آدرس IP اختصاص داده شده از شبکه مجازی زیرین دریافت می کنند. دو Pod در هر یک از گره ها وجود دارد و Pods آدرس های IP متفاوت از شبکه مجازی زیربنایی را به دست آورده اند. فرض کنید ما سناریویی داریم که در آن Pod 1 در Node 1 با Pod 4 در Node 2 ارتباط برقرار می کند. Pod 1 ترافیک را به Bridge ارسال می کند و Router ترافیک را به سمت Node1 از پل هدایت می کند. ترجمه آدرس شبکه آدرس IP را به آدرس مقصد ترجمه می کند. مسیر تعریف شده توسط کاربر ترافیک را به Node 2 تحویل می دهد. Network Address Translation و Router ترافیک را به Bridge در Node 2 تحویل می دهد و Bridge شبکه را به Pod 4 تحویل می دهد.
![شبکه خدمات Azure Kubernetes - شبکه مجازی Kubenet](http://pezhvak24.ir/dl/10kcor/cscd/article/azure-kubernetes-service-networking/Images/1.jpg)
شکل 1
وقتی از Kubenet استفاده می کنید، نمی توانید Pods خود را با استفاده از فایروال ایمن کنید. شما نمی توانید فایروال را برای Pod خود پیکربندی کنید. میتوانید شبکه Kubernetes را با استفاده از Kubenet به همراه Calico پیکربندی کنید که به شما کمک میکند فایروالها را برای Pods پیکربندی کنید.