Касательно проблемы с предоставлением доступа на GCP - исправьте это, используя адрес электронной почты (строка, заканчивающаяся ...@developer.gserviceaccount.com
) вместо идентификатора клиента для значения параметра client_id. Заданное Google название дает путаницу.
Дополнительную информацию и сведения об устранении неполадок можно найти здесь: google-oautgh-grant .
Касательно проблемы с пробниками:
Проверьте, исправен ли URL. Ваши датчики могут быть слишком чувствительными - ваше приложение может начать или ответить некоторое время.
Датчики готовности и живучести могут использоваться параллельно для одного контейнера. Использование обоих может гарантировать, что traffi c не достигнет контейнера, который не готов к нему, и что контейнеры будут перезапущены при сбое.
Проверка жизнеспособности проверяет, находится ли ваше приложение в исправном состоянии в уже работающий модуль.
Датчик готовности фактически проверит, готов ли ваш модуль к получению трафика c. Таким образом, если конечная точка / path отсутствует, она никогда не будет отображаться как Running
egg:
livenessProbe:
httpGet:
path: /your-path
port: 5000
failureThreshold: 1
periodSeconds: 2
initialDelaySeconds: 2
ports:
- name: http
containerPort: 5000
Если конечная точка / index2 не будет существовать, pod никогда не появится as Running.
Убедитесь, что вы правильно настроили проверку живучести и готовности.
Для проверки HTTP кублет отправляет HTTP-запрос указанному путь и порт для выполнения проверки. Кублет отправляет зонд на IP-адрес модуля, если только этот адрес не переопределен необязательным полем хоста в httpGet. Если для поля схемы установлено значение HTTPS, то кублет отправляет запрос HTTPS, пропуская проверку сертификата. В большинстве сценариев ios вы не хотите устанавливать поле хоста. Вот один сценарий, в котором вы бы его установили. Предположим, что Container прослушивает 127.0.0.1
, а поле hostNetwork модуля имеет значение true. Затем хост под httpGet должен быть установлен на 127.0.0.1.
Убедитесь, что вы это сделали. Если ваш модуль использует виртуальные хосты, что, вероятно, является более распространенным случаем, вам не следует использовать хост, а вместо этого установить заголовок Host в httpHeaders.
Для зонда TCP кублет устанавливает соединение зонда на узел, а не в модуле, что означает, что вы не можете использовать имя службы в параметре хоста, так как kubelet не может разрешить его.
Наиболее важная вещь, которую необходимо настроить при использовании проб живучести , Это настройка initialDelaySeconds.
Убедитесь, что у вас открыт порт 80
на контейнере.
Ошибка датчика живучести вызывает перезапуск модуля. Вы должны убедиться, что зонд не запускается, пока приложение не будет готово. В противном случае приложение будет постоянно перезагружаться и никогда не будет готово!
Я рекомендую использовать время запуска p99 для initialDelaySeconds.
Взгляните сюда: probes-kubernetes , самый распространенный, не может-kubernetes-развертываний .