2016-04-09 37 views
39

kümenizde hiçbir Kapsayıcı Örneği bulunamadı konteyner resmini kullanarak dağıtmaya çalışıyorum, ancak EC2 örneği oluşturulmuyor.AWS ECS Görev çalıştırırken hata oluştu:

1. benim Amazon ECS Ubuntu DAN bir liman işçisi görüntüsü itti: Burada

"A client error (InvalidParameterException) occurred when calling the RunTask operation: No Container Instances were found in your cluster."

benim adımlar şunlardır: Ben neden aşağıdaki hatayı alıyorum bir açıklama beklediğini internet scoured repo.

2.

bir ECS Görev Tanımı Kayıtlı:
aws ecs register-task-definition --cli-input-json file://path/to/my-task.json 

3.

görevi Ran: Henüz

aws ecs run-task --task-definition my-task 

, başarısız olur.

İşte benim görevdir: Ben de bir küme ve hizmetlerini yapılandırmak için yönetim konsolu ile denedi

{ 
    "family": "my-task", 
    "containerDefinitions": [ 
    { 
     "environment": [], 
     "name": "my-container", 
     "image": "my-namespace/my-image", 
     "cpu": 10, 
     "memory": 500, 
     "portMappings": [ 
      { 
       "containerPort": 8080, 
       "hostPort": 80 
      } 
     ], 
     "entryPoint": [ 
      "java", 
      "-jar", 
      "my-jar.jar" 
     ], 
     "essential": true 
    } 
    ] 
} 

, henüz aynı hatayı alıyorum. Kümenin ec2 örneklerine sahip olmasını nasıl yapılandırabilirim ve ne tür kapsayıcı örneklerini kullanmam gerekiyor? Bu sürecin, başlamak için EC2 örneklerini oluşturmak olduğunu sanmıştım!

cevap

65

Birkaç saat daha araştırdıktan sonra bunu anladım. saçma sapan olduğunu Burada

"Before you can add ECS instances to a cluster you must first go to the EC2 Management Console and create ecs-optimized instances with an IAM role that has the AmazonEC2ContainerServiceforEC2Role policy attached"

: Eğer dinlerken eğer bir küme oluşturarak veya kümeye örneklerini eklerken Amazon, sizin yönetim konsolunda Bunu biryere belirtmelidir için

1. git senin EC2 Dashboard ve Launch Instance düğmesini tıklayın.

2. Community AMIs altında, ecs-optimized'u arayın ve proje gereksinimlerinize en uygun olanı seçin. Herhangi bir işe yarayacak. Sonrakine tıkla.

3. Yapı Ayrıntılarını Yapılandır'a ulaştığınızda, create new IAM role link'a tıklayın ve ecsInstanceRole adlı yeni bir rol oluşturun. Bu role AmazonEC2ContainerServiceforEC2Role politikasını ekleyin.

5. Ardından, ECS Örneğinizi yapılandırmayı tamamlayın.
NOT: Bir web sunucusu oluşturarak size örnek başlatıldığında, bir kaç dakika sonra port 80

erişime izin vermek için bir SecurityGroup oluşturmak istediğiniz ve size üzerinde ECS Örnekleri sekmesini yenileyebilir çalışan varsa örnekleri de eklemeye çalışıyorsunuz. Verilen bölge için belirtilen önerilen ami seçilmesi

+4

Verilen bölge için belirtilen önerilen aminin seçilmesi sorunumu çözdü. Ami'yi bulmak için bu url'yi kontrol etmeyi seçmelisiniz http://docs.aws.amazon.com/AmazonECS/latest/developerguide/launch_container_instance.html – user3716835

+1

AmazonEC2ContainerServiceforEC2Role'u göremiyorsanız, son yazınızdan bu yana herhangi bir değişiklik var mı? – BlueDolphin

+0

@BlueDolphin IAM'de yeni bir rol oluşturduğumda bu politikayı bulabildim. – cyrf

15

Şu anda bu dizisindeki http://docs.aws.amazon.com/AmazonECS/latest/developerguide/launch_container_instance.html

fazla bilgi mevcuttur, bu kayıt edeceğiz böylece otomatik olarak doğru AMI ve doğru adla örneklerini oluşturabilir Amazon AWS web arayüzü doğru kümeye.

Tüm örnekler Amazon tarafından doğru ayarlarla oluşturulmuş olsa da, örneklerim kayıt olmaz. Amazon AWS forums'da bir ipucu buldum. Kümelerinizin internet erişimine ihtiyacı olduğu ve özel VPC'nizin bir internet ağ geçidi yoksa, kümelerin bağlanamayacağı ortaya çıkıyor.

VPC gösterge tablosunda düzeltme

Yeni İnternet Ağ Geçidi oluşturmalısınız ve küme tarafından kullanılan VPC bağlayın. kez geçen satırını güncelleme (veya oluşturun) VPC rota masa ve eklemelisiniz ekli

IGW-24b16740 senin taze oluşturulan internet ağ geçidi adıdır
0.0.0.0/0 igw-24b16740 

.

+0

yapabilseydim iki kere oy kullanırdım. Cevabınız, benim için "Kümenizde hiçbir Kapsayıcı Örneği bulunamadı" konusunu çözdü. Çok teşekkür ederim! –

+0

Bu, http://docs.aws.amazon.com/AWSEC2/latest/UserGuide/TroubleshootingInstancesConnecting.html * [EC2-VPC] adresinde belirtilmiştir. Alt ağ için rota tablosunu kontrol edin. VPC'nin dışındaki tüm trafiği VPC'nin Internet ağ geçidine gönderen bir rotana ihtiyacınız vardır. * –

+0

İpucu için teşekkürler! Yük dengeleyicime gelen trafik dışındaki tüm giden trafiği engelleyen örneklerime bir güvenlik grubu atamıştım. Bunu tüm giden trafiğe izin vermek için değiştirdim, ancak gelen trafiği yalnızca yük dengeleyiciden sınırlandırdım ve örnekler daha sonra EC2 kümemde göründü. – Mikepote