Yeniləmə gəlir və tunelin o tayındakı sistemlər keçən həftə işləyən pod trafikini rədd etməyə başlayır. Tunel açıqdır, firewall qaydaları toxunulmayıb və heç kim qarşı tərəfin siyasətini redaktə etməyib. Dəyişən şey klaster jurnallarında görünmür: həmin sistemlərin indi gördüyü mənbə ünvanı. Bu fərq şəbəkə kəsilməsi kimi görünən və icazə problemi kimi davranan nasazlığı izah edir.

İki düzgün cavab var və onlar sizi müxtəlif yerlərə aparır. ConfigMap-i redaktə etməzdən əvvəl mənbə müqaviləsini seçin.

Quraşdırılmaqdan çıxan standart qayda

Əvvəlki GKE buraxılışları masquerade qaydası quraşdırırdı ki, bu qayda hədəf 10.0.0.0/8-dən kənarda olanda pod mənbələrini node ünvanı ilə əvəz edirdi. Həmin aralığın içindəki VPN şlüzü pod ünvanını görürdü, daha uzaqdakı hər şey isə node-dan gəlmiş kimi görünürdü. Qarşı tərəflər icazə siyahılarını və geri marşrutları node ünvanları ətrafında qurdular, çünki müşahidə etdikləri bu idi.

Sonrakı buraxılışlar həmin standart qaydayı quraşdırmağı dayandırdı. Pod trafiki indi hədəfin nə olmasından asılı olmayaraq şlüzə pod ünvanları ilə gəlir. Yalnız node ünvanlarını marşrutlaşdıran qarşı tərəf cavabları atır və heç bir tərəf faydalı jurnal qeydi yazmır. Sorğu hətta uzaq tərəfdə uğurla nəticələnə bilər, nasazlığı izləməyi çətinləşdirən də elə budur.

Ölü komponent mənasında heç nə sınıq deyil. İki tərəf sadəcə hansı mənbənin qanuni olduğu barədə razılaşmır.

Qarşı tərəfin görməli olduğu mənbəni seçin

Pod ünvanlarını saxlamaq daha dəqiq müqavilədir. Qarşı tərəf trafiki yaradan iş yükünü görür, jurnallar dürüst qalır və hər pod üçün siyasət mümkün olur. Qiymət odur ki, qarşı tərəf pod prefiksini daşımalıdır.

Node ünvanlarını saxlamaq daha ucuz müqavilədir. Həmin hədəf üçün maskeranı yenidən açın və qarşı tərəf artıq etibar etdiyi ünvanı görməyə davam edəcək.

Onların arasında bir sual qərar verir: qarşı tərəf mənbə ilə nə edir? Əgər jurnal yazır, hər mənbə üçün siyasət tətbiq edir və ya dar geri marşrutu məcbur edirsə, pod ünvanları əlavə konfiqurasiyanı doğruldur. Əgər yalnız cavab göndərməlidirsə, maskeranın xərci azdır və o biri tərəfdən heç nə tələb etmir. Hər iki seçim müdafiə oluna bilər, kifayətdir ki, hər iki komanda onu yazıya alsın.

Üçüncü seçim adətən səhvdir: hər şeyi maskeralamaq və trafiki aid etmə qabiliyyətini itirmək. Qarşı tərəf həqiqətən node ünvanlarından başqa heç nəyi marşrutlaşdıra bilmirsə, bundan çəkinin.

nonMasqueradeCIDRs-i real aralıqlara yönəldin

GKE kube-system-də ip-masq-agent işlədir və onun ConfigMap-i maskeranı atlayan hədəfləri sadalayır. Pod mənbələrini tunelə doğru qorumaq üçün pod aralığı, node alt şəbəkəsi və yerli prefiks hamısı həmin siyahıya aiddir.

Nümunə dəyərləri öz klasterinizin aralıqları ilə əvəz edin. Siyahını tələbin diktə etdiyindən geniş saxlamayın, çünki hər əlavə qeyd başqa bir hədəfin nə gördüyünü dəyişir. Aşağıdakı üç qeyd pod şəbəkəsini, node alt şəbəkəsini və tunelin arxasındakı prefiksi təmsil edir:

nonMasqueradeCIDRs:
  - 10.12.0.0/14
  - 10.100.0.0/16
  - 172.16.0.0/12
masqLinkLocal: false
resyncInterval: 60s

0.0.0.0/0 qeydi bütün hədəflər üçün maskeranı söndürür, bu da əlaqəsiz iş yüklərinin xarici xidmətlərə necə göründüyünü dəyişir və nadir hallarda nəzərdə tutulur. Agent konfiqurasiyasını resyncInterval-da yenidən oxuyur, ona görə yenidən başlatmaq adətən lazım deyil. Agent podunun işlədiyini yoxlayın, sonra onun içindəki montaj edilmiş faylı açın. Dəyişikliyin yerinə yetdiyini sübut edən həmin faylı oxumaqdır.

Cavab marşrutu digər yarıdır

Maskera yalnız sorğunun mənbəyini dəyişir. Qarşı tərəf hansı mənbəni alsa da, ona geri qayıtmaq üçün marşruta ehtiyacı var və klasterin hələ də qarşı tərəfə doğru marşruta ehtiyacı var.

VPN şlüzündə tutma iki nasazlığı tez ayırır. Pod ünvanları ilə gəlib heç vaxt cavab almayan paketlər qarşı tərəfin pod prefiksi üçün marşrutunun olmadığını göstərir. Şlüzdə görünüb klasterə heç vaxt çatmayan cavab yerli marşrutun itdiyini göstərir. Hər halda müqaviləni bilete yazın: qarşı tərəf hansı mənbəni görür və hansı prefiksə geri marşrutlaşdırır.

Hər yeniləmədən sonra yenidən yoxlayın

Standart maskera davranışı artıq bir dəfə dəyişib və node hovuzunun dəyişdirilməsi klaster şəbəkəsini sıfırlaya bilər. Mənbə müqaviləsinə fərz ediləcək bir şey kimi deyil, yoxlanılacaq bir şey kimi yanaşın.

Yeniləmədən sonra bir poddan yerli xidmətə bir sorğu göndərin və qarşı tərəfin jurnala yazdığı mənbəni oxuyun. Bu tək müşahidə tunel status səhifəsinin məmnuniyyətlə sağlam kimi bildirəcəyi reqressiyanı tutur. Onu təkrarlamaq bir dəqiqə çəkir və növbəti adama bir axşam qazandırır.

Əlaqəli məqalələr