
Мне нужно изменить IP-адрес рабочего веб-сервера. Мне было интересно, возможно ли это сделать без простоя. Я думал, что сработают следующие шаги:
- Зарезервировать новый статический IP-адрес
- Добавьте IP-адрес в DNS для домена, который я переключаю.
- Разверните конфигурацию Kubernetes, которая использует новый статический IP-адрес.
- Удалить старую запись DNS
- Отменить резервирование старого статического IP-адреса.
Стоит ли ожидать, что это сработает? Если ничего не прослушивается по ту сторону нового IP-адреса, большинство вещей просто переключаются на другой IP-адрес? Или они жестко терпят неудачу?
решение1
Ключевая фраза в вашем вопросе — «без простоя», а ответ для вашей очевидной конфигурации — «нет». Предположим, ваш производственный веб-сервер — production.example.com
.
Вот хронология вашего оригинального поста:
- Добавьте IP-адрес в DNS для домена, который я переключаю.
Какое FQDN вы добавляете в этот момент? Если это не адрес production.example.com
, то эта новая запись A не делает ничего для облегчения маршрутизации трафика на ваш новый IP. Если этоявляетсязапись A для production.example.com
вашего TTL вступит в игру. Обычно я устанавливаю свое значение на 300 (5 минут), но это не значит, что у вас есть 5 минут, чтобы выполнить шаг 3. Как только этот новый адрес начнет распространяться среди ваших клиентов, они начнут пытаться отправлять HTTP-запросы на новый IP.
- Разверните конфигурацию Kubernetes, которая использует новый статический IP-адрес.
После того, как вы это сделаете и перезапустите свой веб-сервер, все текущие сеансы TCP будут прерваны, что означает, что любые текущие HTTP(s)-запросы не будут выполнены.
Что касается вашего вопроса «Если по ту сторону нового IP-адреса ничего не прослушивается, большинство вещей просто переключаются на другой IP-адрес?», то да, если такнетHTTP-активность, то все в порядке.
По моему опыту, требование «без простоев» трудновыполнимо, и под сложным я подразумеваю сложный и дорогой. К чему следует стремиться, так это к минимальному простою, которого можно достичь, имея надежный процесс, с помощью которого вы собираетесь перенести веб-сайт, будь то изменение IP-адреса или перемещение его на другой сервер или обновление базовой базы данных. После того, как вы разработали процесс, протестируйте его, чтобы увидеть, как ведет себя ваш трафик и где ваши предположения подтверждаются или опровергаются. Усовершенствуйте процесс, чтобы достичь нужных вам показателей простоя, и протестируйте его снова. Вымойте, ополосните и повторите.