2016-03-25 29 views
21

Từ những gì tôi có thể biết trong tài liệu, một ReplicaSet được tạo khi chạy Deployment. Dường như hỗ trợ một số tính năng tương tự của một số ReplicationController - tăng/giảm kích thước và tự động khởi động lại, nhưng không rõ liệu nó có hỗ trợ nâng cấp hoặc tự động cuộn hay không.Sự khác biệt giữa ReplicaSet và ReplicationController là gì?

Hướng dẫn sử dụng v1.1.8 cho biết cách tạo triển khai trong Deploying Applications (tự động tạo ReplicaSet), nhưng lệnh kubectl get replicasets không khả dụng cho đến v1.2.0. Tôi không thể tìm thấy bất kỳ thông tin nào khác về ReplicaSet trong tài liệu.

Liệu ReplicaSet cuối cùng có thay thế ReplicationController không? Tại sao tôi muốn sử dụng DeploymentReplicaSet thay vì ReplicationController?

+1

Tôi đang có cùng một câu hỏi vào lúc này. Tôi đoán Deployments và ReplicaSets sẽ thay thế ReplicationControllers. Điều xấu là gần như tất cả các tài liệu hiện hành là về ReplicationControllers. –

Trả lời

13

Bộ bản sao là thế hệ tiếp theo của Bộ điều khiển nhân bản. Bộ điều khiển nhân bản là điều bắt buộc, nhưng các bộ bản sao cố gắng khai báo càng tốt.

1. Sự khác biệt chính giữa bộ bản sao và bộ điều khiển nhân bản ngay bây giờ là bộ chọn hỗ trợ.

+--------------------------------------------------+-----------------------------------------------------+ 
|     Replica Set     |    Replication Controller    | 
+--------------------------------------------------+-----------------------------------------------------+ 
| Replica Set supports the new set-based selector. | Replication Controller only supports equality-based | 
| This gives more flexibility. for eg:    | selector. for eg:         | 
|   environment in (production, qa)   |    environment = production    | 
| This selects all resources with key equal to | This selects all resources with key equal to  | 
| environment and value equal to production or qa | environment and value equal to production   | 
+--------------------------------------------------+-----------------------------------------------------+ 

2. Điều thứ hai là cập nhật nhóm.

+-------------------------------------------------------+-----------------------------------------------+ 
|      Replica Set      |   Replication Controller    | 
+-------------------------------------------------------+-----------------------------------------------+ 
| rollout command is used for updating the replica set. | rolling-update command is used for updating | 
| Even though replica set can be used independently, | the replication controller. This replaces the | 
| it is best used along with deployments which   | specified replication controller with a new | 
| makes them declarative.        | replication controller by updating one pod | 
|              | at a time to use the new PodTemplate.   | 
+-------------------------------------------------------+-----------------------------------------------+ 

Đây là hai điểm phân biệt RS và RC. Việc triển khai với RS được sử dụng rộng rãi vì nó khai báo nhiều hơn.

10

Hiện tại, sự khác biệt sẽ không đáng kể trong hầu hết các trường hợp. Bản sao có bộ chọn nhãn được tổng quát: https://github.com/kubernetes/kubernetes/issues/341#issuecomment-140809259. Nó sẽ hỗ trợ tất cả các tính năng mà bộ điều khiển nhân rộng hỗ trợ.

ReplicaSet cuối cùng sẽ thay thế ReplicationController? Tại sao tôi muốn sử dụng Deployment và ReplicaSet thay vì ReplicationController?

Điều này sẽ làm giảm thời gian cập nhật khi triển khai. Vui lòng đọc tài liệu về triển khai để hiểu sự khác biệt: http://kubernetes.io/docs/user-guide/deployments/. Tóm lại, nếu bạn bắt đầu cập nhật và đóng máy tính xách tay của bạn, bản sao của bạn có một số bản trộn của các phiên bản hình ảnh trung gian. Nếu bạn tạo một triển khai và đóng máy tính xách tay của bạn, triển khai hoặc được POST thành công để apiserver, trong trường hợp nó hoạt động phía máy chủ, hoặc nó không, trong trường hợp tất cả các bản sao của bạn vẫn còn trên phiên bản cũ.

Điều xấu là gần như tất cả tài liệu hiện tại là về ReplicationControllers.

Đồng ý, hầu hết các tài liệu đang được cập nhật. Thật không may tài liệu trên internet là khó khăn hơn để cập nhật hơn những người trên github.

+1

Tôi mới ở Kubernetes. Khi tôi tạo một triển khai (chạy kubectl) cũng có một bản sao được tạo ra. Chúng ta vẫn phải sử dụng replicationControllers? Các tài liệu hiện nay cho biết: Replica Set là thế hệ tiếp theo Replication Controller. Sự khác biệt duy nhất giữa bộ bản sao và bộ điều khiển nhân bản ngay bây giờ là bộ chọn hỗ trợ. Tại sao họ tạo ra một loại rc mới. – DenCowboy

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