しばらくの間、Kubernetes Engineに問題なくデプロイしていましたが、統合されたクラウドコンテナビルダーパイプラインで作業しているときに、問題が発生し始めました。
何が変わったのかわかりません。以前クラウドビルダーなしで行った方法でも、kubernetesにデプロイできなくなりました。
ポッドのロールアウトプロセスで、レジストリからプルできないことを示すエラーが表示されます。イメージが存在し(cliを使用してプルできます)、関連する可能性のあるすべてのアクセス許可をユーザーとクラウドビルダーサービスアカウントに付与したため、これは奇妙に思えます。
ImagePullBackOffエラーが発生し、ポッドイベントでこれが表示されます。
イメージ "gcr.io/my-project/backend:f4711979-eaab-4de1-afd8-d2e37eaeb988"のプルに失敗しました:rpcエラー:コード=不明desc =無許可:認証が必要です
どうしたの?誰が、何のために承認を必要としますか?
私のプロジェクトの資格情報がどういうわけか台無しになりました。Kubernetes Engine、Deployment Manager、Container BuilderなどのいくつかのAPIを再初期化することで、問題を解決しました。
初めてこれを試したときは成功しませんでした。何かを無効にするには、それに依存するすべてのAPIを最初に無効にする必要があるためです。GCloud Web UIを介してこれを行うと、UIですべて無効にできるわけではないサービスのリストが表示される可能性があります。
gcloud
CLIを使用すると、プロジェクトのすべてのAPIを一覧表示し、すべてを適切に無効にできることを学びました。
その後、物事はうまくいきました。
物事がめちゃくちゃだとわかったのは、実稼働環境と同じもののコピーを持っていて、そこにはこれらの問題がなかったからです。開発環境には多くの反復があり、資格情報をいじり回していたため、どこかで問題が発生しました。
便利なコマンドの例を次に示します。
gcloud projects get-iam-policy $PROJECT_ID
gcloud services disable container.googleapis.com --verbosity=debug
gcloud services enable container.googleapis.com
サービスアカウントの資格情報を復元する方法など、詳細はこちら。
この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。
侵害の場合は、連絡してください[email protected]
コメントを追加