টাস্ক চালানোর সময় AWS ইসিএস ত্রুটি: আপনার ক্লাস্টারে কোনও ধারক উদাহরণ পাওয়া যায় নি


115

আমি ব্যবহারের dockerজন্য একটি ধারক চিত্র মোতায়েন করার চেষ্টা করছি , তবে ইসি 2 উদাহরণটি তৈরি হচ্ছে না। আমি নিম্নলিখিত ত্রুটিটি কেন পাচ্ছি সে সম্পর্কে একটি ব্যাখ্যা খুঁজতে আমি ইন্টারনেটকে ঘৃণা করেছি:AWSECS

"রানটাস্ক অপারেশন কল করার সময় একটি ক্লায়েন্ট ত্রুটি (অবৈধপ্যারামিটার এক্সেপশন) ঘটেছিল: আপনার ক্লাস্টারে কোনও ধারক উদাহরণ পাওয়া যায় নি।"

আমার পদক্ষেপ এখানে:

1. আমার অ্যামাজন ইসিএস রেপোতে উবুন্টু থেকে একটি ডকার চিত্র ঠেলাঠেলি করে।

2. একটি ইসিএস কার্য সংজ্ঞা নিবন্ধিত:

aws ecs register-task-definition --cli-input-json file://path/to/my-task.json 

৩. টাস্কটি চালান:

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

তবুও, এটি ব্যর্থ।

আমার কাজটি এখানে:

{
  "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
    }
  ]
}

আমি একটি ক্লাস্টার এবং পরিষেবাদি কনফিগার করতে ম্যানেজমেন্ট কনসোলটি ব্যবহার করার চেষ্টা করেছি, তবুও আমি একই ত্রুটি পেয়েছি। আমি ক্লিস্টারটি কীভাবে E2 দৃষ্টান্তগুলি কনফিগার করব এবং আমার কী ধরণের কনটেইনার উদাহরণ ব্যবহার করা উচিত? আমি ভেবেছিলাম এই পুরো প্রক্রিয়াটি শুরু হওয়ার সাথে সাথে ইসি 2 উদাহরণ তৈরি করা হবে !!


ক্লাস্টার তৈরি করা এবং কোনও টাস্ক চালানোর ধাপগুলির মধ্যে যখন আমি দ্রুত যেতে পারি তখন আমার মনে হয় আমি এটি দেখেছি।
বেন ক্র্যাসি

উত্তর:


158

আরও কয়েক ঘন্টা তদন্তের পরে আমি এটি আবিষ্কার করেছি। অ্যামাজন, যদি আপনি শুনছেন, ক্লাস্টার তৈরি করার সময় বা ক্লাস্টারে উদাহরণগুলি যুক্ত করার সময় আপনার পরিচালনা কনসোলটিতে কোথাও এটি বিবরণ দেওয়া উচিত:

"আপনি একটি ক্লাস্টারে ইসিএস দৃষ্টান্ত যুক্ত করার আগে আপনাকে অবশ্যই প্রথমে ইসি 2 ম্যানেজমেন্ট কনসোলে যেতে হবে ecs-optimizedএবং AmazonEC2ContainerServiceforEC2Roleনীতিটি সংযুক্ত থাকা আইএএম ভূমিকা সহ উদাহরণস্বরূপ তৈরি করতে হবে "

এখানে কঠোরতা:

1. আপনার ইসি 2 ড্যাশবোর্ডে যান এবং এ ক্লিক করুনLaunch Instance বোতামটি ।

২. এর অধীনে Community AMIs, অনুসন্ধান ecs-optimizedকরুন এবং আপনার প্রকল্পের প্রয়োজনগুলির মধ্যে সবচেয়ে উপযুক্ত ফিট করে এমন একটি নির্বাচন করুন। যে কোনও কাজ করবে। পরবর্তী ক্লিক করুন।

৩. আপনি যখন ইনস্ট্যান্সের বিবরণগুলি কনফিগার করতে পারেন তখন ক্লিক করুন create new IAM role linkএবং ডাকা একটি নতুন ভূমিকা তৈরি করুন ecsInstanceRole

৪) AmazonEC2ContainerServiceforEC2Roleসেই ভূমিকার সাথে নীতিটি সংযুক্ত করুন ।

৫. এরপরে, আপনার ইসিএস ইনস্ট্যান্স কনফিগার করা শেষ করুন।
দ্রষ্টব্য: আপনি যদি ওয়েব সার্ভার তৈরি করে থাকেন তবে আপনি পোর্ট 80 এ প্রবেশের অনুমতি দেওয়ার জন্য একটি সুরক্ষা গ্রুপ তৈরি করতে চাইবেন।

কয়েক মিনিটের পরে, যখন উদাহরণটি আরম্ভ করা হয় এবং চলমান আপনি ইসিএস ইনস্ট্যান্স ট্যাবটি রিফ্রেশ করতে পারেন আপনিও উদাহরণগুলি যুক্ত করার চেষ্টা করছেন।


10
প্রদত্ত অঞ্চলের জন্য নির্দিষ্ট করা প্রস্তাবিত অমি নির্বাচন করা আমার সমস্যার সমাধান করে। অ্যামিটি সন্ধানের জন্য আপনার
আমাজোনইসিএস /

1
AmazonEC2ContainerServiceforEC2 রোল দেখছেন না, আপনার শেষ পোস্টের পরে কি কোনও পরিবর্তন আছে?
ব্লুডলফিন

1
আইএএম-তে নতুন ভূমিকা তৈরি করার সময় আমি ব্লুডলফিন সেই নীতিটি সন্ধান করতে সক্ষম হয়েছি।
সাইরফ

6
এই পুরো ধরণের ঝামেলা এড়াতে আপনি যদি বর্তমানে বিটা ফারগেট ( aws.amazon.com/fargate ) ব্যবহার করে থাকেন তবে এখনই (এপ্রিল 2018) লক্ষ্য করার মতো বিষয়, আপনি এই ত্রুটিটি পেয়ে গেলে আমার পছন্দ হতে পারে লঞ্চ প্রকার হিসাবে আপনি কেবলমাত্র নির্বাচন করেছেন ...EC2
রুপ

10
এবং, যখন EC2 তৈরি, অ্যাড করতে ভুলবেন না #!/bin/bash echo ECS_CLUSTER=your_cluster_name >> /etc/ecs/ecs.configমধ্যে Advanced Details -> User dataযদি আপনার নিজস্ব, অ ডিফল্ট ক্লাস্টার আছে। নতুনভাবে তৈরি নতুন ইসি 2 উদাহরণটি ডিফল্ট ক্লাস্টার তৈরি করবে।
Jakub Czaplicki

40

বর্তমানে, অ্যামাজন এডাব্লুএস ওয়েব ইন্টারফেসটি স্বয়ংক্রিয়ভাবে সঠিক এএমআই এবং সঠিক নাম দিয়ে উদাহরণ তৈরি করতে পারে যাতে এটি সঠিক ক্লাস্টারে নিবন্ধিত হয়।

যদিও সমস্ত দৃষ্টান্ত সঠিকভাবে সেটিংস সহ অ্যামাজন দ্বারা তৈরি করা হয়েছিল, আমার উদাহরণগুলি নিবন্ধভুক্ত হবে না। উপর আমাজন ডেস্কটপ AWS ফোরামে আমি একটি সুরুক পাওয়া যায় নি। দেখা যাচ্ছে যে আপনার ক্লাস্টারদের ইন্টারনেট অ্যাক্সেস প্রয়োজন এবং যদি আপনার ব্যক্তিগত ভিপিসির কাছে ইন্টারনেট গেটওয়ে না থাকে তবে ক্লাস্টারগুলি সংযোগ করতে সক্ষম হবে না।

ঠিক করা

ভিপিসি ড্যাশবোর্ডে আপনার উচিত একটি নতুন ইন্টারনেট গেটওয়ে তৈরি করা এবং এটি ক্লাস্টারের ব্যবহৃত ভিপিসির সাথে সংযুক্ত করা উচিত। একবার সংযুক্ত হওয়ার পরে আপনাকে অবশ্যই ভিপিসির জন্য রুট টেবিলটি আপডেট করতে হবে (বা তৈরি করতে হবে) এবং শেষ লাইন হিসাবে যুক্ত করতে হবে

0.0.0.0/0 igw-24b16740  

যেখানে igw-24b16740 আপনার সদ্য নির্মিত ইন্টারনেট গেটওয়ের নাম।



2
ক্লু জন্য আপনাকে ধন্যবাদ! আমি আমার দৃষ্টান্তগুলিতে একটি সুরক্ষা গোষ্ঠী নিযুক্ত করেছিলাম যা আমার লোড ব্যালান্সারের ট্র্যাফিক ব্যতীত সমস্ত বাহ্যিক ট্র্যাফিক অবরোধ করে। সমস্ত আউটবাউন্ড ট্র্যাফিকের অনুমতি দেওয়ার জন্য আমি এটি স্যুইচ করেছি তবে কেবল লোড ব্যালান্সারের কাছ থেকে আগত ট্র্যাফিককে সীমাবদ্ধ করব এবং এর উদাহরণগুলি আমার ইসি 2 ক্লাস্টারে হাজির।
মাইকপোট

1
আমি আশা করি আমি আপনার উত্তর একাধিকবার ভোট দিতে পারতাম। এটি আমার সঠিক সমস্যাটি সমাধান করেছে "আপনার ক্লাস্টারে কোনও ধারক উদাহরণ পাওয়া যায় নি।" এবং আসল উত্তরের ভোট দেওয়া আপনার আসল সমাধানের সাথে আরও কিছু করার নেই। আবার আপনাকে ধন্যবাদ.
অলেক্সকবি

আপনার ভিপিসির সাথে গেটওয়ে সংযুক্ত করার পাশাপাশি আপনার ইসিএস দৃষ্টান্তগুলি নির্দিষ্ট নির্দিষ্ট সাবনেটের জন্য আপনাকে এটির মাধ্যমে ইন্টারনেট ট্র্যাফিকের রুট করতে হবে। - যেমন aws ec2 associate-route-table --subnet-id $SUBNET_ID --route-table-id $ROUTE_TABLE_ID- আমি উত্তরে এটি যুক্ত করার পরামর্শ দিতে পারি?
গ্রেগ

আমি মনে করি এটি উল্লেখ করার মতো যে আপনি যে মুহুর্তে ০.০.০...০ / ০ এর জন্য কোনও আইজিডাব্লুতে নির্দেশ করবেন সেই সাবনেটটি আর কোনও ব্যক্তিগত সাবনেট নেই। একটি নেটওয়ার্ক সুরক্ষা দৃষ্টিকোণ থেকে একটি NAT-গেটওয়ে নির্দেশ করে একটি রুট তৈরি করা ভাল।
হেনরিক পিঙ্গেল

18

ফারগেট ব্যবহার করার সময় আমি এই সমস্যার মধ্যে পড়েছিলাম। কল করার সময় আমি স্পষ্টভাবে সংজ্ঞায়িত হয়ে launchType="FARGATE"গেলে এটি ঠিক করেছিলাম run_task


1
--launch-type FARGATE
সিএলআইয়ের

11

অন্যান্য প্রস্তাবিত চেক

  1. প্রদত্ত অঞ্চলের জন্য নির্দিষ্ট করা প্রস্তাবিত এএমআই নির্বাচন করা আমার সমস্যার সমাধান করে।

    এএমআই অনুসন্ধান করতে - একটি অ্যামাজন ইসিএস কনটেইনার ইনস্ট্যান্স চালু করে দেখুন

  2. ডিফল্টরূপে সমস্ত ec2 দৃষ্টান্ত ডিফল্ট ক্লাস্টারে যুক্ত হয়। সুতরাং গুচ্ছের নামটিও গুরুত্বপূর্ণ।

একটি অ্যামাজন ইসিএস কনটেইনার ইনস্ট্যান্স চালু করতে 10 পয়েন্ট দেখুন ।

এই থ্রেডে আরও তথ্য উপলব্ধ ।


3

আমি যেমন ছিলাম অন্য কেউ এই সমস্যায় অবরুদ্ধ থাকলে আমি এখানে সবকিছু চেষ্টা করেছি এবং আমার পক্ষে কাজ করি নি।

এখানে যা বলা হয়েছিল তা ইসি 2 ইনস্ট্যান্স রোল সম্পর্কিত, এখানে যেমন মন্তব্য করা হয়েছে আমার ক্ষেত্রে কেবল তখনই কাজ করে যদি আমি এখনও সাধারণ তথ্য দিয়ে ইসি 2 ইনস্ট্যান্স কনফিগার করেছিলাম। ব্যবহারকারী ডেটা ব্যবহার করে এটির মতো প্রাথমিক স্ক্রিপ্ট:

#!/bin/bash
cat <<'EOF' >> /etc/ecs/ecs.config
ECS_CLUSTER=quarkus-ec2
EOF

এই ইসি কনফিগার ফাইলে তৈরি সম্পর্কিত ইসিএস ক্লাস্টার নামকে অবহিত করা, আমার সমস্যার সমাধান করেছে। এই কনফিগারটি ছাড়াই, ইসি 2 ইনস্ট্যান্সের ইসিএস এজেন্ট লগ একটি ত্রুটি দেখিয়েছিল যা ইসিএসের সাথে সংযোগ স্থাপন করা সম্ভব ছিল না, এটি করে আমি ইসি ক্লাস্টারের কাছে ইসি 2 ইনস্ট্যান্সটি দৃশ্যমান পেয়েছি।

এটি করার পরে, আমি আমার ইসি 2 ক্লাস্টারের জন্য ইসি 2 ইনস্ট্যান্সটি পেতে পারি: এখানে চিত্র বর্ণনা লিখুন

এডাব্লুএস ডকুমেন্টেশন বলেছে যে এই অংশটি isচ্ছিক, তবে আমার ক্ষেত্রে এটি এই "alচ্ছিক" কনফিগারেশন ছাড়া কাজ করে না।


2

গুচ্ছ তৈরি করার পরে যদি আপনি এই সমস্যাটি জুড়ে এসে থাকেন

ইসি 2 উদাহরণগুলি ইসি 2 উদাহরণের তালিকায় যান এবং আপনি যে আইএএম ভূমিকাটি অর্পণ করেছেন তা পরীক্ষা করে দেখুন। উদাহরণগুলির নাম শুরু হওয়ার সাথে আপনি উদাহরণগুলি সহজেই সনাক্ত করতে পারেনECS Instance

এখানে চিত্র বর্ণনা লিখুন

এর পরে আইএএম ভূমিকার উপর ক্লিক করুন এবং এটি আপনাকে আইএএম কনসোলে পরিচালিত করবে। AmazonEC2ContainerServiceforEC2Roleঅনুমতি নীতি তালিকা থেকে নীতিটি নির্বাচন করুন এবং ভূমিকাটি সংরক্ষণ করুন।

আপনার উদাহরণগুলি ক্লাস্টারে এটি সংরক্ষণের অল্প সময় পরে পাওয়া যাবে।


1

আসল বিষয়টি অনুমতির অভাব। যতক্ষণ আপনি অ্যামাজন EC2ContainerServiceforEC2 রোল অনুমতি সহ আইএএম রোলটি তৈরি এবং নির্ধারণ করেন ততক্ষণ সমস্যাটি চলে যায়।


0

আমি যে অন্য সম্ভাব্য কারণটিতে দৌড়েছি তা হ'ল আমার ইসিএস ক্লাস্টার এএমআইকে একটি "অ্যামাজন লিনাক্স এএমআই" এর পরিবর্তে একটি "অ্যামাজন লিনাক্স 2" এএমআইতে আপডেট করা, যার ফলে আমার ইসি 2 ব্যবহারকারী_ডাটা লঞ্চ স্ক্রিপ্টটি কাজ না করে।


0

এটি যখন ঘটে তখন আপনাকে নিম্নলিখিতগুলির দিকে নজর দেওয়া দরকার:

  1. আপনার ইসি 2 দৃষ্টান্তের AmazonEC2ContainerServiceforEC2Roleসাথে এটির সাথে যুক্ত নীতিমালার ভূমিকা থাকতে হবে
  2. আপনার ইসি 2 উদাহরণগুলি এএমআই চিত্র চলমান হওয়া উচিত যা এটি ecs-optimized(আপনি এটি ইসি 2 ড্যাশবোর্ডে দেখতে পারেন)
  3. আপনার ভিপিসির ব্যক্তিগত সাবনেটগুলিতে সার্বজনীন আইপি নির্ধারিত নেই, বা আপনার কোনও ইন্টারফেস ভিপিসি শেষ পয়েন্ট কনফিগার করা নেই, বা আপনার কাছে নেট গেটওয়ে সেট আপ নেই don't

বেশিরভাগ সময়, ভুল কনফিগার্ড করা ভিপিসির কারণে এই সমস্যাটি উপস্থিত হয়। ডকুমেন্টেশন অনুযায়ী :

উদ্ধৃতি: যদি আপনার কোনও ইন্টারফেস ভিপিসি শেষ পয়েন্টটি কনফিগার করা না থাকে এবং আপনার ধারক দৃষ্টান্তগুলির সর্বজনীন আইপি ঠিকানা না রয়েছে, তবে তাদের এই অ্যাক্সেস সরবরাহ করতে অবশ্যই নেটওয়ার্ক ঠিকানা অনুবাদ (NAT) ব্যবহার করতে হবে।

  • একটি ভিপিসি শেষ পয়েন্ট তৈরি করতে: এখানে ডকুমেন্টেশন অনুসরণ করুন
  • NAT গেটওয়ে তৈরি করতে: এখানে ডকুমেন্টেশন অনুসরণ করুন

আপনি ইসিএস ড্যাশবোর্ডে তালিকাভুক্ত ইসি 2 উদাহরণগুলি দেখতে না পাওয়ার কারণগুলি এই।

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.