PHP 편집기 Strawberry는 컨테이너화된 애플리케이션 배포 문제를 해결하던 중 ECR(Amazon Elastic Container Registry)에서 EKS(Amazon Elastic Kubernetes Service)로의 이미지가 제대로 작동하지 않는다는 사실을 발견했습니다. 특히 생성된 포드는 항상 0/2입니다. 이는 컨테이너가 정상적으로 시작되거나 실행될 수 없음을 의미합니다. 이 문제는 이미지 자체의 문제, 컨테이너 구성의 오류 또는 네트워크 환경의 제한 사항을 포함하여 여러 측면과 관련될 수 있습니다. 개발자가 이 문제를 신속하게 해결할 수 있도록 몇 가지 일반적인 솔루션이 아래에 자세히 소개됩니다.
올바른 방향으로 가기 위해 거의 모든 것을 시도했지만 여전히 Pod를 사용 가능한 상태로 만들 수 없습니다.
그래서 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 --capability capability_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
명령 후 결과:
이제 배포.yaml 및 service.yaml 파일을 배포해 봅니다
deployment.yaml
으아악명령 및 결과:
Nowservice.yaml
으아악명령 및 결과:
이 모든 작업이 완료된 후 kubectl get 배포를 실행하면 다음과 같은 결과를 얻습니다.
디버깅을 위해 kubectl explain pod helloworld를 시도했고 다음을 얻었습니다
으아악stackoverflow에서 제안한 대로 많은 솔루션을 시도했지만 아무것도 효과가 없는 것 같습니다. 어떻게 하면 작동하게 할 수 있는지 제안해 주실 수 있나요? 미리 감사드립니다.
몇 가지 사항이 있습니다. 첫째, 최신 태그를 사용하지 않아야 합니다. 이것은 안티 패턴입니다. 이미지를 ECR에 푸시할 때 빌드 레이블이나 버전 번호를 이미지 레이블로 사용하십시오. 둘째, 작업자 노드에 ECR, 특히 AmazonEC2ContainerRegistryReadOnly 정책에서 이미지를 가져올 수 있는 권한이 있는지 확인해야 합니다. 그렇지 않으면 kubelet이 ECR에서 이미지를 가져올 수 없습니다. 레지스트리가 클러스터와 다른 계정에 있는 경우 리포지토리 [리소스] 정책을 생성해야 합니다. https://docs.aws.amazon.com/AmazonECR/latest/userguide/repository-policies.html을 참조하세요.
위 내용은 결과 Pod가 항상 0/2이므로 ECR에서 EKS로의 이미지가 작동하지 않습니다.의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!