Google Cloud CDN и снятие отпечатков активов с непрерывным развертыванием
У меня есть среда kubernetes, настроенная на GKE с 6 реплицированными модулями и входом, подключенным к балансировщику нагрузки GCP с включенным Google Cloud CDN.
Как скользящие развертывания работают в отношении снятия отпечатков активов? В ситуации, когда выполняется развертывание и запрос нового отпечатка ресурса направляется в модуль, у которого еще нет нового отпечатка ресурса? Как это можно смягчить? или Google Cloud CDN позаботится об этом?
В этой статье описывается ситуация, о которой я думаю: https://buildingvts.com/serving-assets-while-rolling-your-deploys-c656ce6a2123
1 ответ
Здесь ответ будет основан на общей ссылке, которая связана с хэшированием отпечатков пальцев. Пожалуйста, проясните, что вы подразумеваете под "дактилоскопией" и временем выполнения (python, ruby, nodejs), что поможет лучше ответить на вопрос.
Основываясь на том, как задан этот вопрос, я подозреваю, что анти-шаблон с тем, как используются контейнеры и Kubernetes. Поскольку вы спрашивали об активах, а не о путях к динамическому контенту, я подозреваю, что вы запускаете модуль и собираете все ресурсы во время запуска. Обычно вы выполняете всю эту работу во время создания образа. Поэтому не должно быть прерываний в обслуживании, поскольку все их активы предварительно генерируются до времени запуска (как я полагаю, белый экран на общей ссылке предназначен для прерывания обслуживания).
Что касается данного вопроса, Kubernetes не делает ничего особенного, что не делает обычный балансировщик нагрузки. Kubernetes 5 кортежей хеш-соединений через балансировщик нагрузки к узлу, а затем к модулю. Как только соединение создается из веб-браузера, оно (вероятно) будет продолжать обслуживаться модулем до тех пор, пока соединение не будет разорвано.
В Google Cloud CDN нет механизма, гарантирующего отсутствие прерывания. Если в кеше нет актива, он должен перейти к модулю, и у модуля может быть, а может и не быть, данный актив. Если ресурс находится в кеше, он будет выдан без подключения к модулю.