azure - 管理小规模 Docker 容器

标签 azure docker kubernetes google-cloud-platform

我已经使用 Azure 容器实例部署了 5 个应用程序,这些应用程序运行良好,但我遇到的问题是,目前所有容器都在运行,这会导致成本高昂。

我想要做的是在需要时启动/停止实例,为此使用始终工作的主容器或虚拟机。

E.G.

此主服务收到请求,将 3 号服务启动 2 小时,然后将其关闭,所有其他容器将关闭,直到收到类似的请求。

对于我的用例,大多数时候每项服务每天的使用时间少于 5 小时。

现在,我知道 Kubernetes 是一个用于管理容器的引擎,但我发现的所有示例都是针对大规模服务的,而不是针对每个只有一个容器的 5 个服务的,也不确定 Kubernetes 是否允许关闭所有容器的时间。

我正在考虑的是处理所有这些抛出一些API,但我没有在Azure中找到任何允许类似的服务,我只找到了创建新容器的选项,而不是启动和关闭他们下来了。

编辑:

此外,该应用程序运行的进程对于无服务器平台而言过于繁重。

最佳答案

解决方案是为您的部署定义水平 Pod 自动缩放器。

Horizo​​ntal Pod Autoscaler 根据观察到的 CPU 利用率(或者通过自定义指标支持,根据应用程序提供的其他一些指标)自动缩放复制 Controller 、部署或副本集中的 Pod 数量。请注意,Horizo​​ntal Pod Autoscaling 不适用于无法缩放的对象,例如 DaemonSets。

Horizo​​ntal Pod Autoscaler 是作为 Kubernetes API 资源和 Controller 实现的。资源决定 Controller 的行为。 Controller 定期调整复制 Controller 或部署中的副本数量,以使观察到的平均 CPU 利用率与用户指定的目标相匹配。

配置文件应如下所示:

apiVersion: autoscaling/v1
kind: HorizontalPodAutoscaler
metadata:
 name: hpa-images-service
spec:
 scaleTargetRef:
   apiVersion: apps/v1beta1
   kind: Deployment
   name: example-deployment
 minReplicas: 2
 maxReplicas: 100
 targetCPUUtilizationPercentage: 75

scaleRef 应引用您的部署定义,minReplicas 可以设置为 0,targetCPUUtilization 的值您可以根据您的喜好设置。这种方法应该可以帮助您节省资金,因为终止 pod 的 CPU 利用率很高。

Kubernetes官方文档:kubernetes-hpa .

GKE 自动缩放器文档:gke-autoscaler .

关于使用 GCP 节省现金的有用博客:kubernetes-google-cloud .

关于azure - 管理小规模 Docker 容器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58104279/

相关文章:

.net - 从 AKS 访问 Azure Blob 存储

docker - docker容器的health_status更改时该怎么办或如何处理

c# - 如何在asp.net core 2+中增加上传大小?请求的实体太大

azure - 如何读取Azure数据工厂中的*.txt文件?

c# - 使用 Microsoft Bot SDK 让机器人转发事件

docker - 链接 docker 容器并使用通配符子域

kubernetes -/api/v1 以外的 api 请求返回 403 "Forbidden"

kubernetes - 当副本大于 1 时,一次启动一个 pod

Azure Blob 存储 - 删除文件夹的权限

asp.net-mvc - Azure 上的 MVC4 部署问题