VPN sidecar у Kubernetes Pod-у изгледа као VPN на нивоу хоста са бољим манирима, и сличност се завршава на граници именског простора. Контејнери у једном Pod-у деле мрежни именски простор, укључујући адресни и портни простор, па sidecar који инсталира руте и политику заиста мења куда иду пакети апликације. За остале Pod-ове на чвору не мења ништа и не дира сопствени стек чвора, осим ако га тако конфигуришете. Исправно разумевање те границе одређује и шта можете да увезете и шта морате да тестирате. Одељци испод прате то од именског простора ка споља.

Заједнички именски простор, заједничке последице

Два контејнера у Pod-у разговарају преко loopback-а и виде исте интерфејсе, и зато sidecar образац уопште функционише: апликација не мора да зна да тунел постоји, јер је рута коју разреши инсталирана у именском простору који користи. Исто својство значи да су грешке sidecar-а грешке апликације. Рута која хвата превише, или DNS промена која показује на resolver унутар тунела, одмах се примењује на сваки процес у том Pod-у. У заједничком именском простору нема рутирања по контејнеру, па се sidecar не може ограничити на један процес.

То је механизам који треба имати на уму током прегледа: радијус утицаја је Pod, не чвор и не кластер.

Докле sidecar не допире

Други Pod-ови задржавају своје именске просторе и своје рутирање, па радно оптерећење коме треба исти излаз треба исти sidecar или, уместо тога, дизајн на нивоу чвора. Ни саобраћај чвора није унутар именског простора Pod-а, а Pod-ови са мрежом хоста свесно потпуно одустају од те изолације. Ако sidecar покренете са мрежом хоста да дохватите нешто згодно, проширили сте обухват са једног Pod-а на цео чвор и то треба гласно рећи.

Саобраћај ка сервисима кластера је друго често изненађење. Широка подразумевана рута унутар Pod-а може да ухвати захтеве намењене API серверу или сервису ClusterIP, а они потом падају на начин који изгледа као да је тунел покварен.

План рута: Pod, сервис, чвор и VPN опсези

Запишите четири опсега и проверите их на преклапање пре него што било шта увезете: Pod CIDR, сервисни CIDR, адресе чвора и одредишта иза VPN-а. Преклапање између приватних опсега VPN-а и властитог простора кластера није ретко, а подразумевана рута је погрешно решење за то. План рута припада истом репозиторијуму као манифест, јер следећи кластер може да додели сасвим другачије Pod и сервисне опсеге.

DNS је део плана, а не одвојена брига. Sidecar који преписује конфигурацију resolver-а може да сломи откривање сервиса унутар кластера док спољашња претрага ради беспрекорно.

Покретање и квар су експлицитна стања

Покренут sidecar процес није излазна политика. Одлучите који саобраћај сме да тече пре него што тунел буде спреман и шта се догоди ако после умре, па ту одлуку спроведите: проба која пропушта контејнер апликације, мрежна политика која одбија по подразумеваном, или обоје. Без једног од тога апликација се покрене, разреши и пошаље саобраћај изван уобичајене путање чвора док се тунел још повезује.

Та празнина је кратка у здравом кластеру и трајна у поквареном, и то је управо својство које нападач или случајно цурење података преферира.

Упарите редослед са тестом квара. Убијте sidecar и потврдите да апликација губи предвиђени излаз уместо да се тихо враћа назад.

Способности, политике и тестирање из контејнера апликације

Додела способности потребних за стварање интерфејса и мењање рута је одлука о привилегијама, а привилегија прикладна за изоловани Pod није аутоматски прикладна на стек-у чвора. Користите механизме мрежне и безбедносне политике које кластер подржава и не претпостављајте да свака имплементација CNI-ја или политике третира VPN интерфејс једнако; разлике се покажу управо у случајевима квара до којих вам је стало.

Тестирајте из стварног контејнера апликације, свежим захтевима ка приватном одредишту, сервису кластера и јавном интернету. Тест из sidecar-а доказује да тунел ради, не да апликација може да дохвати оно што јој треба.

Документујте претпоставке мреже кластера уз VPN конфигурацију. Премештање радног оптерећења у други кластер тада је вежба провере плана рута, а не промена слике која тихо престаје да ради.

Повезани чланци