کانتینر ابری نوعی محصول بر پایهی رایانش ابری است که سرویسدهنده با ایجاد امکانات سختافزاری و برخی ابزارها، سرعت توسعه نرمافزار را بالا برده و دغدغهی توسعهدهنده را در ارتباط با زیرساختهای موردنیاز محصول، رفع میکند.
در این راهنما به شیوهی تنظیم دامنهی شخصی جهت استفاده در کانتینر ابری آروان میپردازیم.
پیشنیاز
در مقالهی آموزش ساخت Route اطلاعات کاملی راجع به نحوه ساخت و کاربرد Route گفته شد.اگر نیاز دارید بدون اعمال تنظیمات در پنل کاربری و از طریق کامندلاین دامنه شخصی خود را تنظیم کنید، لازم است Route متناسب را برای اپلیکیشن خود ایجاد کنید. برای تنظیم دامنه شخصی با استفاده از کامندلاین کافی است یک Route تعریف کرده و در بخش Host، دامنه یا زیردامنهی مورد نظر خود را وارد کنید برای مثال:
apiVersion: v1 kind: Route metadata: name: nginx-route spec: host: my-app.example.com to: kind: Service name: nginx-service tls: termination: edge insecureEdgeTerminationPolicy: Allow port: targetPort: http
نکته: دندانهگذاری (Indentation) در فایلهای yaml مهم است و کوچکترین جابهجایی میتواند باعث برگرداندن خطا و یا تنظیمات ناخواسته شود.
در ادامه فیلدهای مربوطه توضیح داده میشود:
kind: مشخصکننده نوع ماهیت است. این فیلد میتواند مقادیری مانند: Pod ،Route ،Service ،StatefulSet و… داشته باشد. در این مثال، هدف تعریف route است که این مقدار مشخص شده است.
metadata.name: مشخصکنندهی نام route است.
spec.host: مشخصکنندهی دامنهای است که از طریق آن میتوان از خارج از سکوی ابری آروان درخواستها را به route ارسال کرد. توجه کنید که مقدار قرار داده شده معادل رکوردی است که تنظیم کردهاید.
spec.to: مشخصکنندهی موجودیتی است که باید درخواستها به سمت آن هدایت شود. در این مثال درخواستها به service مربوط به nginx ارسال میشود.
spec.tls: در این بخش اطلاعات لازم جهت tls termination قرار میگیرد.
spec.tls.termination: این فیلد مشخص میکند که نحوه termination به چه شکل باشد. مقادیر مجاز برای این فیلد edge ،passthrough و reencrypt است.
spec.tls.insecureEdgeTerminationPolicy: به صورت پیشفرض اجازه عبور ترافیک ناامن (http) داده نمیشود. با قرار دادن spec.tls.insecureEdgeTerminationPolicy برابر با Allow، ترافیکهای ناامن نیز اجازه عبور از route را خواهند داشت.
spec.port.targetPort: توجه داشته باشید که Route میتواند ترافیک را صرفن به یک Port تعریف شده در Service ارسال کند. بهشکل پیشفرض، Route ترافیک را به Portای ارسال میکند که در تعریف service زودتر تعریف شده باشد. در صورتی که نیازمند ارسال ترافیک به port خاصی از سرویس باشید، از این فیلد برای اختصاص port جهت ارسال ترافیک میتوانید استفاده کنید.
خطوط بالا را در یک فایل به نام nginx-route.yaml وارد کرده و ذخیره کنید. سپس از طریق کامند لاین با دستور زیر، route خود را به سکوی ابری آروان ارایه کنید.
arvan paas apply -f nginx-route.yaml
سپس با دستور زیر میتوانید از وضعیت Route خود و اجرای آن بر روی سکوی ابری آروان آگاه شوید.
arvan paas get route
خروجی مشابه زیر خواهد بود:
$ arvan paas get route NAME HOST/PORT PATH SERVICES PORT TERMINATION WILDCARD nginx-route my-app.example.com nginx-service <all> edge/Allow None
توجه کنید، از آنجا که شما نماد ابر را برای رکورد خود فعال کردید، و همچنین ترافیک از Route به اپلیکیشن شما به صورت HTTP ارسال میشود، نیازی به ارایه Certificate نیست و با تنظیمات گفته شده، میتوانید از ترافیک HTTPS نیز برای ارسال درخواست به اپلیکیشن خود بهره ببرید.
از این امکان میتوانید در هاست دانلود ابر آروان نیز استفاده کنید.