Kubernetes - Triển khai

Các triển khai được nâng cấp và phiên bản cao hơn của bộ điều khiển nhân rộng. Họ quản lý việc triển khai các tập hợp bản sao cũng là một phiên bản nâng cấp của bộ điều khiển nhân bản. Họ có khả năng cập nhật nhóm bản sao và cũng có khả năng quay trở lại phiên bản trước.

Họ cung cấp nhiều tính năng cập nhật của matchLabelsselectors. Chúng tôi đã có một bộ điều khiển mới trong Kubernetes master được gọi là bộ điều khiển triển khai giúp điều này xảy ra. Nó có khả năng thay đổi việc triển khai giữa chừng.

Thay đổi triển khai

Updating- Người dùng có thể cập nhật triển khai đang diễn ra trước khi hoàn thành. Trong trường hợp này, triển khai hiện có sẽ được giải quyết và triển khai mới sẽ được tạo.

Deleting- Người dùng có thể tạm dừng / hủy bỏ việc triển khai bằng cách xóa nó trước khi hoàn thành. Việc tạo lại cùng một triển khai sẽ tiếp tục.

Rollback- Chúng tôi có thể lùi quá trình triển khai hoặc việc triển khai đang diễn ra. Người dùng có thể tạo hoặc cập nhật triển khai bằng cách sử dụngDeploymentSpec.PodTemplateSpec = oldRC.PodTemplateSpec.

Chiến lược triển khai

Chiến lược triển khai giúp xác định cách RC mới sẽ thay thế RC hiện tại.

Recreate- Tính năng này sẽ giết tất cả RC hiện có và sau đó đưa ra những cái mới. Điều này dẫn đến việc triển khai nhanh chóng, tuy nhiên nó sẽ dẫn đến thời gian ngừng hoạt động khi các nhóm cũ không hoạt động và các nhóm mới chưa xuất hiện.

Rolling Update- Tính năng này dần dần loại bỏ RC cũ và đưa lên RC mới. Điều này dẫn đến triển khai chậm, tuy nhiên không có triển khai. Luôn luôn có sẵn một số nhóm cũ và ít nhóm mới trong quá trình này.

Tệp cấu hình của Deployment trông như thế này.

apiVersion: extensions/v1beta1 --------------------->1
kind: Deployment --------------------------> 2
metadata:
   name: Tomcat-ReplicaSet
spec:
   replicas: 3
   template:
      metadata:
         lables:
            app: Tomcat-ReplicaSet
            tier: Backend
   spec:
      containers:
         - name: Tomcatimage:
            tomcat: 8.0
            ports:
               - containerPort: 7474

Trong đoạn mã trên, điều duy nhất khác với bộ bản sao là chúng tôi đã định nghĩa loại là triển khai.

Tạo triển khai

$ kubectl create –f Deployment.yaml -–record
deployment "Deployment" created Successfully.

Tìm nạp triển khai

$ kubectl get deployments
NAME           DESIRED     CURRENT     UP-TO-DATE     AVILABLE    AGE
Deployment        3           3           3              3        20s

Kiểm tra trạng thái triển khai

$ kubectl rollout status deployment/Deployment

Cập nhật Triển khai

$ kubectl set image deployment/Deployment tomcat=tomcat:6.0

Quay lại triển khai trước đó

$ kubectl rollout undo deployment/Deployment –to-revision=2