HTML Diff
0 added 0 removed
Original 2026-01-01
Modified 2026-02-19
1 <p>Чтобы стать действительно крутым инженером, недостаточно просто знать, как строить большие системы. Нужно понимать, как они ломаются. В этом смысле публичные постмортемы лучшее, что случилось с интернетом с точки зрения профессионального роста.</p>
1 <p>Чтобы стать действительно крутым инженером, недостаточно просто знать, как строить большие системы. Нужно понимать, как они ломаются. В этом смысле публичные постмортемы лучшее, что случилось с интернетом с точки зрения профессионального роста.</p>
2 <p><strong>Пример подобного постмортема:</strong></p>
2 <p><strong>Пример подобного постмортема:</strong></p>
3 <p>🔅 SNAT нам все сломал, или сначала нужно проверить на staging (подробнее -<a>тут</a>).</p>
3 <p>🔅 SNAT нам все сломал, или сначала нужно проверить на staging (подробнее -<a>тут</a>).</p>
4 <ul><li><strong>Ключевой симптом</strong>: Все сетевое взаимодействие внутри кластера работало, а все запросы наружу из кластера не работали должным образом.</li>
4 <ul><li><strong>Ключевой симптом</strong>: Все сетевое взаимодействие внутри кластера работало, а все запросы наружу из кластера не работали должным образом.</li>
5 </ul><ul><li><strong>Что пошло не так:</strong></li>
5 </ul><ul><li><strong>Что пошло не так:</strong></li>
6 </ul><p>Проблема заключалась в механизме SNAT, реализованном в AWS VPC CNI плагине. По умолчанию, при отправке трафика из подов на адреса за пределами VPC, CNI плагин выполняет SNAT, заменяя исходный IP-адрес пода на основной IP-адрес сетевого интерфейса ноды. Поскольку нужно было обращаться в другой VPC, SNAT приводил к сбоям в сетевом взаимодействии. Включение параметра AWS_VPC_K8S_CNI_EXTERNALSNAT=true отключило этот механизм, позволив трафику из подов выходить напрямую без трансляции, что решило проблему.</p>
6 </ul><p>Проблема заключалась в механизме SNAT, реализованном в AWS VPC CNI плагине. По умолчанию, при отправке трафика из подов на адреса за пределами VPC, CNI плагин выполняет SNAT, заменяя исходный IP-адрес пода на основной IP-адрес сетевого интерфейса ноды. Поскольку нужно было обращаться в другой VPC, SNAT приводил к сбоям в сетевом взаимодействии. Включение параметра AWS_VPC_K8S_CNI_EXTERNALSNAT=true отключило этот механизм, позволив трафику из подов выходить напрямую без трансляции, что решило проблему.</p>
7 <ul><li><strong>Что следовало сделать по-другому:</strong></li>
7 <ul><li><strong>Что следовало сделать по-другому:</strong></li>
8 </ul><p>Тестирование в staging-среде: Перед развертыванием изменений в production необходимо проводить обширное тестирование в изолированной среде, имитирующей production, чтобы выявить потенциальные проблемы.</p>
8 </ul><p>Тестирование в staging-среде: Перед развертыванием изменений в production необходимо проводить обширное тестирование в изолированной среде, имитирующей production, чтобы выявить потенциальные проблемы.</p>
9 <p>Больше публичных постмортемов можно найти<a>на этом ресурсе.</a></p>
9 <p>Больше публичных постмортемов можно найти<a>на этом ресурсе.</a></p>
10 <p>Учиться на чужих ошибках здорово и весело.</p>
10 <p>Учиться на чужих ошибках здорово и весело.</p>
11 <p>В этом смысле публичные постмортемы лучшее, что случилось с интернетом с точки зрения профессионального роста.<strong>А еще классно учиться на курсе<a>"Kubernetes База"</a></strong>- там есть стенды для практики, поэтому даже если система сломается, продакшен не пострадает.</p>
11 <p>В этом смысле публичные постмортемы лучшее, что случилось с интернетом с точки зрения профессионального роста.<strong>А еще классно учиться на курсе<a>"Kubernetes База"</a></strong>- там есть стенды для практики, поэтому даже если система сломается, продакшен не пострадает.</p>
12 <p>2025-07-04 20:07<a>Kubernetes</a></p>
12 <p>2025-07-04 20:07<a>Kubernetes</a></p>