Tôi biết đây là một chủ đề cũ, nhưng giải pháp dễ dàng hơn nhiều so với hầu hết các câu trả lời ở đây đưa ra.
Cách cập nhật container đang chạy theo hai bước:
Dưới đây giả sử bạn có một dịch vụ đang chạy một tác vụ đang tham chiếu một vùng chứa được gắn thẻ latest
(hoặc bất kỳ thẻ tĩnh nào khác không thay đổi qua các cập nhật của vùng chứa).
- Tải lên container mới của bạn vào kho lưu trữ
- Giết thủ công nhiệm vụ của bạn
Nếu mục tiêu là để chúng tôi xây dựng một công trình mới, chúng tôi không thực sự cần phải dựa vào dịch vụ của mình cho điều đó (và tôi tranh luận, chúng tôi không nên dựa vào nó). Nếu bạn giết nhiệm vụ của mình, dịch vụ sẽ nhận ra nó không có các Desired Count
tác vụ đang chạy và chỉ cần quay một nhiệm vụ mới. Điều này sẽ kích hoạt việc kéo lại container của bạn, dựa trên cùng một thẻ.
Các dịch vụ ECS là mạng bảo mật HA, không phải là sự thay thế cho đường ống CD / CI của bạn.
Tiền thưởng: Nếu mục tiêu là để một dịch vụ nhận ra một container mới đã được đẩy (bất kể thẻ nào), chúng ta cần xem xét ý nghĩa của việc đó. Chúng ta có thực sự muốn một dịch vụ cơ bản kiểm soát đường ống triển khai cho chúng ta không? Có khả năng là không. Lý tưởng nhất là bạn sẽ đẩy các thùng chứa của mình bằng các thẻ khác nhau (dựa trên các phiên bản phát hành hoặc thứ gì đó). Trong trường hợp này, rào cản đối với việc triển khai là dịch vụ phải được thông báo về một điều mới - một lần nữa, đó là mạng lưới an toàn cho dịch vụ và không có gì nữa.
Cách triển khai thẻ mới theo ba bước:
- Tải mới của bạn lên
container:tag
kho lưu trữ
- Tạo một định nghĩa nhiệm vụ mới tham chiếu cái mới
tag
- Cập nhật dịch vụ của bạn để tham khảo định nghĩa nhiệm vụ mới
- Cẩn thận đây! Nếu bạn đã
minimum healthy
đặt thành 0%
một số câu trả lời khác, bạn sẽ trao cho AWS toàn quyền giết toàn bộ dịch vụ của bạn để triển khai định nghĩa nhiệm vụ mới. Nếu bạn thích triển khai lăn / dần dần, hãy đặt mức tối thiểu của bạn thành thứ gì đó >0%
.
- Ngoài ra, thiết lập của bạn
minimum healthy
để 100%
và bạn maximum healthy
đến một cái gì đó >100%
để cho phép dịch vụ của bạn để triển khai mới các nhiệm vụ trước khi tiêu diệt hết những cái cũ (giảm thiểu tác động đến người dùng của bạn).
Từ thời điểm này, dịch vụ của bạn sẽ tự động nhận ra bạn đã chỉ định một tác vụ mới và triển khai triển khai dựa trên ngưỡng minimum
/ maximum
lành mạnh mà bạn đã định cấu hình.