OpenShift - Mở rộng ứng dụng
Tự động thay đổi tỷ lệ là một tính năng trong OpenShift nơi các ứng dụng được triển khai có thể mở rộng quy mô và chìm khi có yêu cầu theo thông số kỹ thuật nhất định. Trong ứng dụng OpenShift, tính năng autoscaling còn được gọi là pod autoscaling. Có haitypes of application scaling như sau.
Chia tỷ lệ dọc
Chia tỷ lệ dọc là tất cả về việc tăng thêm ngày càng nhiều năng lượng cho một máy duy nhất, nghĩa là thêm nhiều CPU và đĩa cứng. Đây là một phương pháp cũ của OpenShift hiện không được các bản phát hành OpenShift hỗ trợ.
Chia tỷ lệ ngang
Kiểu chia tỷ lệ này rất hữu ích khi cần xử lý nhiều yêu cầu hơn bằng cách tăng số lượng máy.
Trong OpenShift, có two methods to enable the scaling feature.
- Sử dụng tệp cấu hình triển khai
- Trong khi chạy hình ảnh
Sử dụng tệp cấu hình triển khai
Trong phương pháp này, tính năng mở rộng quy mô được kích hoạt thông qua tệp yaml cấu hình của người triển khai. Đối với điều này, lệnh OC tự động tỷ lệ được sử dụng với số lượng bản sao tối thiểu và tối đa, lệnh này cần chạy tại bất kỳ thời điểm nhất định nào trong cụm. Chúng ta cần một định nghĩa đối tượng để tạo autoscaler. Sau đây là một ví dụ về tệp định nghĩa pod autoscaler.
apiVersion: extensions/v1beta1
kind: HorizontalPodAutoscaler
metadata:
name: database
spec:
scaleRef:
kind: DeploymentConfig
name: database
apiVersion: v1
subresource: scale
minReplicas: 1
maxReplicas: 10
cpuUtilization:
targetPercentage: 80
Khi chúng tôi có tệp tại chỗ, chúng tôi cần lưu tệp với định dạng yaml và chạy lệnh sau để triển khai.
$ oc create –f <file name>.yaml
Trong khi chạy hình ảnh
Người ta cũng có thể chỉnh tỷ lệ tự động mà không cần tệp yaml, bằng cách sử dụng oc autoscale lệnh trong dòng lệnh oc.
$ oc autoscale dc/database --min 1 --max 5 --cpu-percent = 75
deploymentconfig "database" autoscaled
Lệnh này cũng sẽ tạo ra một loại tệp tương tự mà sau này có thể được sử dụng để tham khảo.
Các chiến lược triển khai trong OpenShift
Chiến lược triển khai trong OpenShift xác định luồng triển khai với các phương pháp có sẵn khác nhau. Trong OpenShift, sau đây làimportant types of deployment strategies.
- Chiến lược cuộn
- Tạo lại chiến lược
- Chiến lược tùy chỉnh
Sau đây là một ví dụ về tệp cấu hình triển khai, được sử dụng chủ yếu để triển khai trên các nút OpenShift.
kind: "DeploymentConfig"
apiVersion: "v1"
metadata:
name: "database"
spec:
template:
metadata:
labels:
name: "Database1"
spec:
containers:
- name: "vipinopenshifttest"
image: "openshift/mongoDB"
ports:
- containerPort: 8080
protocol: "TCP"
replicas: 5
selector:
name: "database"
triggers:
- type: "ConfigChange"
- type: "ImageChange"
imageChangeParams:
automatic: true
containerNames:
- "vipinopenshifttest"
from:
kind: "ImageStreamTag"
name: "mongoDB:latest"
strategy:
type: "Rolling"
Trong tệp Deploymentconfig ở trên, chúng ta có chiến lược là Rolling.
Chúng ta có thể sử dụng lệnh OC sau để triển khai.
$ oc deploy <deployment_config> --latest
Chiến lược cuộn
Chiến lược cuộn được sử dụng để cập nhật hoặc triển khai cuộn. Quá trình này cũng hỗ trợ các móc vòng đời, được sử dụng để đưa mã vào bất kỳ quá trình triển khai nào.
strategy:
type: Rolling
rollingParams:
timeoutSeconds: <time in seconds>
maxSurge: "<definition in %>"
maxUnavailable: "<Defintion in %>"
pre: {}
post: {}
Tạo lại chiến lược
Chiến lược triển khai này có một số tính năng cơ bản của chiến lược triển khai cuốn chiếu và nó cũng hỗ trợ vòng đời.
strategy:
type: Recreate
recreateParams:
pre: {}
mid: {}
post: {}
Chiến lược tùy chỉnh
Điều này rất hữu ích khi một người muốn cung cấp quy trình hoặc luồng triển khai của riêng mình. Tất cả các tùy chỉnh có thể được thực hiện theo yêu cầu.
strategy:
type: Custom
customParams:
image: organization/mongoDB
command: [ "ls -l", "$HOME" ]
environment:
- name: VipinOpenshiftteat
value: Dev1