- OpenShift 教程
- OpenShift - 主页
- OpenShift - 概述
- OpenShift - 类型
- OpenShift - 架构
- OpenShift - 环境设置
- OpenShift - 基本概念
- OpenShift - 入门
- OpenShift - 构建自动化
- OpenShift-CLI
- OpenShift - CLI 操作
- OpenShift - 集群
- OpenShift - 应用程序扩展
- OpenShift - 管理
- OpenShift - Docker 和 Kubernetes
- OpenShift - 安全
- OpenShift 有用资源
- OpenShift - 快速指南
- OpenShift - 有用的资源
- OpenShift - 讨论
OpenShift - 应用程序扩展
自动缩放是 OpenShift 中的一项功能,其中部署的应用程序可以根据特定规范在需要时进行缩放和下沉。在 OpenShift 应用程序中,自动缩放也称为 pod 自动缩放。应用程序扩展有两种类型,如下所示。
垂直缩放
垂直扩展就是为单台机器添加越来越多的功能,这意味着添加更多的 CPU 和硬盘。这是 OpenShift 的一种旧方法,现在 OpenShift 版本不支持。
水平缩放
当需要通过增加机器数量来处理更多请求时,这种类型的扩展非常有用。
在 OpenShift 中,有两种方法可以启用缩放功能。
- 使用部署配置文件
- 运行图像时
使用部署配置文件
在此方法中,通过部署配置 yaml 文件启用扩展功能。为此,OC autoscale 命令与最小和最大副本数一起使用,该命令需要在集群中的任何给定时间点运行。我们需要一个对象定义来创建自动缩放器。以下是 pod 自动缩放器定义文件的示例。
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
一旦我们有了文件,我们需要将其保存为 yaml 格式并运行以下命令进行部署。
$ oc create –f <file name>.yaml
运行图像时
通过在 oc 命令行中使用以下oc autoscale命令,也可以在没有 yaml 文件的情况下自动缩放。
$ oc autoscale dc/database --min 1 --max 5 --cpu-percent = 75 deploymentconfig "database" autoscaled
该命令还将生成类似的文件,供以后参考。
OpenShift 中的部署策略
OpenShift 中的部署策略定义了具有不同可用方法的部署流程。在 OpenShift 中,以下是重要的部署策略类型。
- 滚动策略
- 重建策略
- 定制策略
以下是部署配置文件示例,主要用于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"
在上面的 Deploymentconfig 文件中,我们的策略为 Rolling。
我们可以使用下面的OC命令进行部署。
$ oc deploy <deployment_config> --latest
滚动策略
滚动策略用于滚动更新或部署。此过程还支持生命周期挂钩,用于将代码注入到任何部署过程中。
strategy: type: Rolling rollingParams: timeoutSeconds: <time in seconds> maxSurge: "<definition in %>" maxUnavailable: "<Defintion in %>" pre: {} post: {}
重建策略
该部署策略具有滚动部署策略的一些基本特征,并且还支持生命周期钩子。
strategy: type: Recreate recreateParams: pre: {} mid: {} post: {}
定制策略
当人们希望提供自己的部署过程或流程时,这非常有帮助。所有定制都可以根据要求完成。
strategy: type: Custom customParams: image: organization/mongoDB command: [ "ls -l", "$HOME" ] environment: - name: VipinOpenshiftteat value: Dev1