Kubernetes’da Pod VPN yoki chiqish darvozasi: tunnel kimniki?
Pod o‘zining tarmoq nomlar maydoniga ega, shuning uchun asl tanlov tunnel qaysi qatlamga tegishli ekanida: har bir ish yuklamasi uchun identifikatsiya yoki bitta umumiy manbaga ega CNI boshqaradigan chiqish.
Siz vpn-gateway nomli Pod joylashtirasiz, sinov mijozini uning manziliga yo‘naltirasiz va paketlar yo‘qolayotganini ko‘rasiz. Manifestda hech narsa noto‘g‘ri emas va kubelet’ning shikoyati yo‘q. Sabab konfiguratsion emas, tizimli: Kubernetes har bir Pod’ga o‘z tarmoq nomlar maydonini beradi, shuning uchun nom, yorliq yoki umumiy API nomlar maydoni paketlar qayerga ketishini o‘zgartirmaydi. Shuning uchun VPN trafigi klasterdan qanday chiqishini hal qilish egalik haqidagi savoldan boshlanadi, konteyner tasvirlaridan emas.
Ikki mexanizm real joylashtirishlarning ko‘pini qamrab oladi va ular bir-birini almashtirmaydi. Biri tunnelni ish yuklamasining o‘z tarmoq nomlar maydoniga joylashtiradi. Ikkinchisi CNI’dan tanlangan trafikni belgilangan darvoza tugunidan o‘tkazishni so‘raydi. Ular turlicha muvaffaqiyatsizlikka uchraydi, turlicha masshtablanadi va turli jamoalarga bo‘ysunadi, shuning uchun konteyner savoli odatda hech qachon hal bo‘lmaydigan bahslar tug‘diradi.
Pod chegarasi — nomlar maydoni, sakrash hosti emas
Linux tarmoq nomlar maydoni o‘z interfeyslari, manzillari, marshrutlari va xavfsizlik devori qoidalariga ega, va har bir Pod bittasini oladi. O‘sha Pod ichidagi konteynerlar unga qo‘shiladi, shuning uchun yordamchi konteyner ilova keyin yuradigan marshrutlarni qayta yozishi mumkin. Qo‘shni Pod tashqi ko‘rinishda bir xil, ammo butunlay alohida stekga ega. Darvoza Pod meros olishi mumkin bo‘lgan umumiy jadval yo‘q va bir nomlar maydonidan boshqasiga trafikning yashirin o‘tkazilishi yo‘q.
Shuning uchun darvoza-Pod namunasi faqat yuqoridan biror narsa unga haqiqatan paket yuborganda ishlaydi: Service, tugundagi statik marshrut yoki CNI’dagi yo‘naltirish siyosati. Yolg‘iz manzil hech narsani tortmaydi.
Har bir Pod uchun tunnel nima beradi va qancha turadi
Ish yuklamasining nomlar maydonida ishlaydigan tunnel o‘sha yuklamaga o‘zining mijoz identifikatsiyasini beradi, uni ko‘plab masofaviy kirish xizmatlari sessiyani ruxsatlash yoki hisoblashdan oldin talab qiladi. Zarar radiusi ham mahalliy bo‘lib qoladi: buzilgan tunnel hamma ishlatadigan umumiy yo‘l o‘rniga bitta Deployment’ni to‘xtatadi. Uning qanday ishlashi amalga oshirishga bog‘liq, va aynan shu yerda odamlar noto‘g‘ri taxmin qiladi.
Faqat yadro holatini talab qiladigan sozlash init konteynerida tugab chiqishi mumkin. Pod’ning butun umri davomida tirik qolishi kerak bo‘lgan foydalanuvchi maydoni demoni Kubernetes 1.29’da mahalliy sidecar sifatida kiritilgan qayta ishga tushiriladigan init konteyner shakliga muhtoj, va bu farq diddan emas, tunnel amalga oshirilishidan keladi. Bu modelning narxi — takrorlash: har bir replika autentifikatsiyadan o‘tadi, o‘z tunnel manzilini oladi va masofaviy sessiya joyini egallaydi, shuning uchun avtoskaling hodisasi aloqaning narigi tomonida sig‘im hodisasiga aylanadi. Bitta hisob ma’lumotini barcha replikalarga ko‘chirish bu narxni yo‘qotmaydi, u audit izini yo‘qotadi. Ruxsatlar ham xuddi shu tekshiruvga loyiq, chunki o‘z maydonida NET_ADMIN istagan tunnelning privileged: true misolidagi butun host hokimiyatini meros olishga asosi yo‘q.
CNI chiqishga egalik qilganda
Agar CNI buni qo‘llab-quvvatlasa, chiqish darvozasi trafikni ish yuklamasi va manzil oralig‘i bo‘yicha tanlaydi, so‘ng uni tanlangan tugunlar orqali bitta bashorat qilsa bo‘ladigan manba manzili ostida yuboradi. Cilium versiyasi odatiy havola bo‘lib, uning hujjatlari bu xususiyat uchun maxsus Cilium konfiguratsiyasi hamda to‘g‘ri interfeys va manzillarga ega darvoza tugunlari kerakligini aniq aytadi. Shuningdek, Pod yaratilgandan keyingi boshlang‘ich davrni ham qayd etadi, unda yo‘naltirish hali qo‘llanmaydi, va bu izoh emas, dizayn kirishidir.
Bu kechikishni o‘z va’dangizga qarab o‘qing. Agar qoida hech qanday trafik boshqa yo‘l bilan chiqmasligi bo‘lsa, bo‘shliq paytida yuborayotgan yangi Pod uni allaqachon buzgan, shuning uchun ishga tushish ketma-ketligi o‘z javobiga muhtoj: siyosat qo‘llanmaguncha ilovani ushlab turing yoki oynani qabul qilib hujjatlashtiring.
Da’voni tor tuting. Chiqish darvozasi yo‘lni tanlaydi va tarjima qiladi. U VPN’ni tugatmaydi va orqasida qo‘llab-quvvatlanadigan ulanish bo‘lmasa klasterni masofaviy tarmog‘ingiz mijoziga aylantirmaydi.
| Question | Per-Pod tunnel | CNI egress gateway |
|---|---|---|
| Who holds the client identity | Each workload | The gateway, shared |
| What scaling changes | Enrollment and sessions per replica | Throughput and capacity per node |
| What the remote side sees | Distinct addresses | One translated source |
| Failure scope | One Deployment | Every workload behind the gateway |
Tarjima masofaviy tomon ko‘radigan narsani jimgina o‘zgartiradi
Darvoza manbani qayta yozgach, har bir Pod’ning manzillari yo‘qoladi, shuning uchun identifikatsiyaga asoslangan ruxsat ro‘yxati bitta umumiy manzilga asoslangan ro‘yxatga aylanadi. Bu kamchilik emas, almashinuv: kamroq qoida saqlash, biror narsa yomon tutganda qo‘polroq nisbatlash.
Ilova darajasidagi autentifikatsiya va so‘rov jurnali tarmoq endi xabar qilmaydigan narsani ko‘tarishi kerak. Darvoza sig‘imi va uni almashtirishni umumiy infratuzilma deb biling, chunki bitta tugunni qayta yuklash endi uning orqasidagi har bir yuklamani to‘xtatadi, va qaytish yo‘lini erta tekshiring: masofaviy tomon tarjima qilingan manzilga qanday yetishni bilishi kerak, odatda marshrut yoki NAT orqali, unga manifest emas, inson egalik qilishi kerak. Manzillarni rejalashtirish ham shu yerga kiradi, chunki kesishgan klaster va masofaviy diapazonlar ikkala modelni ham buzadi va IPv6’ni qabul qilish ziddiyatli rejani oqlamaydi.
Egalik bo‘yicha qaror qiling, so‘ng va’da qilingan nosozlikni sinang
Har bir Pod uchun tunnelni masofaviy xizmat alohida yuklamalarni autentifikatsiya qilganda, ulanish faqat bir nechta Deployment’ga kerak bo‘lganda va nosozlik mahalliy qolishi kerak bo‘lganda tanlang. Darvozani tarmoq jamoasi yo‘lni allaqachon egallaganda, ko‘p yuklama bitta manzilni bo‘lishganda va barqaror manba manzili butun mashqning maqsadi bo‘lganda tanlang.
Qanday bo‘lmasin, barqaror holatni emas, sotgan xususiyatingizni tekshiring. Pod yarating, unga darhol yuborishga ruxsat bering va va’da tunneldan hech narsa qochmasligi bo‘lsa, birinchi soniyalarni kuzating. Besh replikagacha masshtablang va va’da har bir yuklama uchun identifikatsiya bo‘lsa, masofaviy tomon xabar qiladigan sessiyalarni sanang. Bu ikki tekshiruv mexanizm chegaralarini manifestni ko‘rib chiqishdan ancha tez ochadi va keyingi hodisa qaysi jamoaga tegishli ekanini aytadi.