2015-07-22 40 views
21

Gần đây tôi đã cố gắng triển khai vùng chứa docker bằng cách sử dụng định nghĩa nhiệm vụ của AWS. Trên đường đi, tôi đi qua những câu hỏi sau đây.Cách hiểu cụm Amazon ECS

  1. Cách thêm thể hiện vào cụm? Khi tạo một cụm mới bằng cách sử dụng bảng điều khiển Amazon ECS, cách thêm một thể hiện ec2 mới vào cụm mới. Nói cách khác, khi khởi chạy một cá thể ec2 mới, cần cấu hình gì để phân bổ nó cho một cụm người dùng được tạo dưới Amazon ECS.

  2. Cần bao nhiêu trường hợp ECS trong một cụm và các yếu tố là gì?

  3. Nếu tôi có hai phiên bản (ins1, ins2) trong một cụm và webapp, vùng chứa db của tôi đang chạy trong ins1. Sau khi tôi cập nhật dịch vụ đang chạy (thông qua http://docs.aws.amazon.com/AmazonECS/latest/developerguide/update-service.html), tôi có thể thấy dịch vụ mới được tạo đang chạy trong "ins2", trước khi thoát dịch vụ cũ trong "ins1". Câu hỏi của tôi là sau khi thùng chứa webapp của tôi được cấp phát cho một cá thể khác, địa chỉ IP truy cập trở thành một cá thể IP khác. Làm thế nào để ngăn chặn hoặc những gì các giải pháp để làm cho cùng một địa chỉ IP truy cập vào webapp? Không chỉ IP, về dữ liệu sau khi thay đổi thành một cá thể mới thì sao?

Trả lời

31

Đây là những thực sự ba câu hỏi khá khác nhau, vì vậy nó có thể tốt nhất để tách chúng thành những câu hỏi khác nhau ở đây phù hợp - Tôi sẽ cố gắng cung cấp một câu trả lời bất kể:

  1. Amazon ECS Container Instances được bổ sung một cách gián tiếp, đó là công việc của Amazon ECS Container Agent trên mỗi cá thể để tự đăng ký với cụm được tạo và đặt tên theo bạn, xem conceptslifecycle để biết chi tiết. Để làm việc này, bạn cần làm theo các bước được nêu trong Launching an Amazon ECS Container Instance, có thể là thủ công hoặc thông qua tự động hóa. Hãy nhận biết các bước 10 .:

Theo mặc định, ví dụ container của bạn ra mắt vào cụm mặc định của bạn. Nếu bạn muốn khởi chạy vào cụm của riêng mình thay vì mặc định , hãy chọn danh sách Chi tiết nâng cao và dán đoạn mã sau vào trường Dữ liệu người dùng, thay thế your_cluster_name bằng tên cụm của bạn.

#!/bin/bash 
echo ECS_CLUSTER=your_cluster_name >> /etc/ecs/ecs.config 
  1. Bạn chỉ cần một trường hợp duy nhất cho ECS để làm việc như vậy, vì bản thân cụm được quản lý bởi AWS thay cho bạn. Điều này sẽ không đủ cho các kịch bản tính sẵn sàng cao mặc dù:

    • Bởi vì các host chứa chỉ là thường xuyên Amazon EC2 trường hợp, bạn sẽ cần phải làm theo thông lệ tốt nhất AWS và lây lan cho họ hơn hai hoặc ba Availability Zones (AZ) để một (hiếm Việc mất điện của AZ không ảnh hưởng đến cụm của bạn, vì ECS có thể di chuyển các thùng chứa của bạn sang một cá thể máy chủ khác (với điều kiện cụm của bạn có đủ dung lượng dự phòng).
    • Nhiều công nghệ phân cụm nâng cao tạo điều kiện cho các thùng chứa có các lớp phối hợp dịch vụ riêng của chúng và thường yêu cầu số không đồng đều> = 3 (dịch vụ) cho thiết lập khả dụng cao. Bạn có thể đọc thêm về điều này trong phần Kích thước cụm tối ưu trong phạm vi Administration ví dụ (xem thêm Running CoreOS with AWS EC2 Container Service).
  2. này đề cập trở lại tính sẵn sàng cao và dịch vụ chủ đề dàn nhạc đề cập trong 2. rồi, chính xác hơn bạn đang phải đối mặt với vấn đề service discovery, mà trở nên phổ biến hơn ngay cả khi sử dụng công nghệ chứa nói chung và vi-dịch vụ cụ thể:

+1

câu trả lời tuyệt vời! tôi hy vọng nó vẫn hoạt động nhưng bạn đánh tôi như kiểu người sẽ cập nhật câu trả lời của mình nếu có điều gì đó đã thay đổi. – the0ther

Các vấn đề liên quan