ホームページ  >  記事  >  バックエンド開発  >  結果のポッドが常に 0/2 になるため、ECR から EKS へのイメージが機能しない

結果のポッドが常に 0/2 になるため、ECR から EKS へのイメージが機能しない

WBOY
WBOY転載
2024-02-08 22:39:08876ブラウズ

从 ECR 到 EKS 的图像无法正常工作,因为生成的 Pod 始终为 0/2

#編集者の Strawberry がコンテナ化されたアプリケーションのデプロイメントの問題を解決していたとき、ECR (Amazon Elastic Container Registry) から EKS (Amazon Elastic Kubernetes Service) へのイメージが機能していないことに気づきました。きちんと。具体的には、生成された Pod は常に 0/2 であり、コンテナーが正常に起動または実行できないことを意味します。この問題には、イメージ自体の問題、コンテナ構成のエラー、ネットワーク環境の制限など、多くの側面が関係している可能性があります。開発者がこの問題を迅速に解決できるように、いくつかの一般的な解決策を以下で詳しく紹介します。

質問の内容

物事を正しい方向に進めるためにほぼすべてのことを試しましたが、ポッドを使用可能な状態にすることができません。

ということで、基本的なアプリケーションを go で作成しました。

docker build --tag docker-gs-ping . を使用してプログラムのイメージを作成しました 次に、コンテナ内で同じコマンドを実行してみました docker run --publish 8080:8080 docker-gs-ping

次に、イメージを amazon ecr に保存したいと思います。このために、ecr にリポジトリを作成しました。

リポジトリを作成した後、ローカルに存在するイメージにタグを付けました。

リーリー

f49366b7f534 はローカル イメージ タグです。 docker-gs-ping は、ecr のリポジトリ名です。

次に、コマンドを使用してタグ付き画像を ecr にアップロードしました。

リーリー

ECR にプッシュする特定のイメージを指定する方法がないため、上記のコマンドがタグ付けされたイメージをプッシュするのか、それともローカルからの最近のイメージをプッシュするのかわかりません。

現在の結果は次のとおりです

上記の手順を完了した後、次のファイルとコマンドを使用して vps を作成しました:

eks スタック:

リーリー

コマンド: aws cloudformation create-stack --region us-east-1 --stack-name my-eks-cluster --capabilitycapability_named_iam --template-body file://eks-stack.yaml

eks vpc yaml

リーリー

コマンド: aws cloudformation create-stack --region us-east-1 --stack-name my-eks-vpc --template-body file://eks-vpc-stack.yaml

コマンド後の結果:

ここで、deployment.yaml ファイルと service.yaml ファイルをデプロイしてみます

deployment.yaml

リーリー

コマンドと結果:

Nowservice.yaml

リーリー

コマンドと結果:

これをすべて完了した後、kubectl getdeploy を実行すると、次の結果が得られます。

デバッグのために、kubectl description pod helloworld を試したところ、次の結果が得られました

リーリー

stackoverflow で提案されているように多くの解決策を試しましたが、何もうまくいかないようです。うまく機能させる方法はありますか?事前にどうもありがとうございました。

解決策

いくつかのことがあります。まず、latest タグの使用は避けるべきです。これはアンチパターンです。イメージを ECR にプッシュするときは、イメージ ラベルとしてビルド ラベルまたはバージョン番号を使用します。次に、ワーカーノードに ECR、具体的には AmazonEC2ContainerRegistryReadOnly ポリシーからイメージをプルする権限があることを確認する必要があります。そうしないと、kubelet は ECR からイメージをプルできなくなります。レジストリがクラスターとは異なるアカウントにある場合は、リポジトリ [リソース] ポリシーを作成する必要があります。 https://docs.aws.amazon.com/AmazonECR /latest/userguide/repository-policies.html を参照してください。

以上が結果のポッドが常に 0/2 になるため、ECR から EKS へのイメージが機能しないの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事はstackoverflow.comで複製されています。侵害がある場合は、admin@php.cn までご連絡ください。