مقدمه
کوبرنیتیز به عنوان زیرساخت اصلی برای استقرار برنامههای مبتنی بر هوش مصنوعی و عاملهای هوشمند، نیازمند شبکهسازی انعطافپذیر و پایداری است. انتشار Gateway API نسخه ۱.۶.۰ توسط جامعه Kubernetes SIG Network، گامی مهم در استانداردسازی شبکههای سرویسی محسوب میشود. این نسخه که در ۳۰ ژوئن امسال منتشر شد، علاوه بر پشتیبانی پایدار از ترافیک لایه ۷ (HTTP و TLS)، امکانات جدیدی را برای مسیریابی لایه ۴ فراهم کرده است.
ارتقا TCPRoute و UDPRoute به سطح استاندارد
تا پیش از این نسخه، Gateway API تنها مدل مسیریابی پایدار را برای ترافیک HTTP و TLS ارائه میداد. بارهای کاری که از پروتکلهای خام TCP یا UDP استفاده میکنند (مانند پایگاههای داده، DNS، VoIP، سرورهای بازی و تلهمتری اینترنت اشیا) راهکار قابلانتقالی برای اتصال به Gateway نداشتند و مجبور به استفاده از سرویسهای ساده کوبرنیتیز یا CRDهای وابسته به پیادهساز خاص بودند.
در نسخه ۱.۶.۰، منابع TCPRoute و UDPRoute از کانال آزمایشی (Experimental) به کانال استاندارد (Standard) ارتقا یافته و به نسخه v1 API منتقل شدهاند. این تغییر به معنای پایداری تولید (GA) برای مسیریابی ترافیک L4 است.
نحوه عملکرد مسیریابی L4
برای استفاده از این قابلیت، یک Gateway به شنونده (Listener) نیاز دارد که اتصال TCPRoute را مجاز کند. در مثال زیر، Gateway روی پورت ۱۲۳۴۵ تنظیم شده است:
```yaml
apiVersion: gateway.networking.k8s.io/v1
kind: Gateway
metadata:
name: example-gateway
spec:
gatewayClassName: example-gateway-class
listeners:
- name: foo
protocol: TCP
port: 12345
allowedRoutes:
kinds:
- kind: TCPRoute
`
سپس یک TCPRoute به این شنونده متصل شده و ترافیک را به یک سرویس پشتیبان ارسال میکند:
```yaml
apiVersion: gateway.networking.k8s.io/v1
kind: TCPRoute
metadata:
name: tcp-app
spec:
parentRefs:
- name: example-gateway
sectionName: foo
rules:
- backendRefs:
- name: my-foo-service
port: 6000
`
در این پیکربندی، ترافیک وارد شده به پورت ۱۲۳۴۵ Gateway، به پورت ۶۰۰۰ سرویس my-foo-service پروکسی میشود. حذف پارامترهای sectionName و port باعث میشود مسیر به تمام شنوندههای TCP متصل شود. الگوی UDPRoute نیز کاملاً مشابه است با این تفاوت که نوع پروتکل و Route تغییر میکند.
جداسازی گروه APIهای آزمایشی
یکی از چالشهای توسعهدهندگان، تشخیص منابع پایدار از آزمایشی بوده است. در نسخه ۱.۶، منابع آزمایشی به یک گروه API مجزا با پیشوند gateway.networking.x-k8s.io و حرف X منتقل شدهاند. این جداسازی، مرز بین ویژگیهای استاندارد و نوآوریهای آزمایشی را شفاف میکند.
معرفی منبع XBackend
در بخش آزمایشی، منبع جدید XBackend معرفی شده است. این منبع به عنوان یک دکوراتور همهمنظوره برای Serviceها عمل میکند. از آنجا که منبع Service بسیار پایدار و انعطافپذیر است، افزودن مفاهیم جدید به آن دشوار است. XBackend این محدودیت را برطرف کرده و امکان توسعه برای موارد استفادهای که با Service خطرناک یا دشوار هستند را فراهم میکند. نسخه اولیه XBackend از مقاصد ExternalHostname پشتیبانی میکند.
کاربردها، محدودیتها و راهنمای امنیتی
برای مهندسان هوش مصنوعی و توسعهدهندگان پلتفرم، این بهروزرسانی امکان استقرار عاملهای هوش مصنوعی که نیازمند ارتباطات L4 با تاخیر پایین هستند (مانند استریم صوتی یا تلهمتری مدلها) را به صورت استاندارد فراهم میکند. با این حال، نسخه v1alpha2 از TCPRoute و UDPRoute در این نسخه منسوخ شده و در آینده حذف خواهد شد؛ لذا مهاجرت به v1 الزامی است.
از منظر امنیتی، استفاده از Gateway API به جای سرویسهای سنتی امکان اعمال سیاستهای دقیقتر در سطح شنونده را میدهد. مهندسان باید مطمئن شوند که allowedRoutes به درستی پیکربندی شده است تا از اتصال مسیرهای غیرمجاز به شنوندههای حساس جلوگیری شود.