Я следил за этим руководством по развертыванию приложения Django в кластере Kubernetes. Я создал учетные данные cloudql и экспортировал их, как в учебнике.
export DATABASE_USER=<your-database-user>
export DATABASE_PASSWORD=<your-database-password>
Однако мой пароль был сгенерирован LastPass и содержит специальные символы, которые в Kubernetes Pod выделены полосами, что делает пароль неверным.
Это мой пароль (изменен, показаны только специальные символы) 5bb4&sL!EB%e
Итак, я пробовал различные способы экспорта этой строки, повторяя ее, всегда показывал правильный пароль, однако в панели управления Kubernetes пароль всегда неверен (также изменен в DevTools, но некоторые символы просто удалены)
Вещи, которые я пробовал
export DATABASE_PASSWORD=$'5bb4&sL\!EB\%e'
export DATABASE_PASSWORD='5bb4&sL!EB%e'
Эхо всегда хорошо, но kubernetes всегда его раздевает.
Развертывание с skaffold deploy
РЕДАКТИРОВАТЬ:
После подсказки я попытался сохранить пароль в форме кодировки base64, однако я подозреваю, что он применим только к локальной области, так как пароль в Kubernetes Dashboard все тот же, я подозреваю, что мне нужно повторно сгенерировать сертификат, чтобы эта работа работала удаленно. на кластере гке?
Значит, переменные env предназначены для локальных, а учетные данные в облачном прокси-сервере sql - это те, которые используются и неправильно интерпретируются? Кстати, где эти файлы?
РЕДАКТИРОВАТЬ2:
Я только что узнал, что действительно кластер gke использует учетные данные json, а не экспортируемые переменные. Конфигурация json уже содержит пароль в кодированной форме base64, ОДНАКО это кодировка строки base64, в которой все еще отсутствуют специальные символы. Похоже, единственный выход - сгенерировать новые учетные данные без специальных символов, это похоже на ошибку, не так ли?