このチュートリアルに従って、 Django アプリを Kubernetes クラスターにデプロイしました。チュートリアルのように、cloudsql 資格情報を作成してエクスポートしました
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ダッシュボードのパスワードは同じであるため、ローカルスコープにのみ適用されると思われます。これをリモートで機能させるには、証明書を再生成する必要があると思われますgke クラスタで?
したがって、環境変数はローカル用であり、クラウド SQL プロキシの資格情報は、使用され、誤解されているものですか? ところで、それらのファイルはどこにありますか?
EDIT2:
エクスポートされた変数ではなく、資格情報 json を使用する gke クラスターが実際にあることがわかりました。構成 json には既に base64 エンコード形式のパスワードが含まれていますが、まだ特殊文字が欠落している文字列の base64 エンコードです。特殊文字を使用せずに新しい資格情報を生成することが唯一の方法のように見えますが、これはバグのようですね。