首页 > 解决方案 > 收到 http 请求时如何在 Kubernetes 集群中执行 docker 镜像

问题描述

我有一些 docker 映像,当我收到 http 请求时,我想在 Kubernetes 集群中运行它们。

我怎么能那样做?例如,我需要创建一个烧瓶应用程序来监听请求,然后在收到请求时执行 bash 命令以从注册表部署和运行这些图像?

或者还有另一种简单的方法来实现这一点?

标签: dockerkubernetesapprequests

解决方案


如果您有一个烧瓶应用程序,您可以使用 Kubernetes python api创建 Kubernetes pod 或作业。他们有一个基于存在的 yaml 文件在此处创建部署的示例,但您也可以在代码中定义 yaml 或使用他们的 api 规范。他们的部署示例如下,但同样您可能希望使用 Pod 或作业。

from os import path
import yaml
from kubernetes import client, config

def main():
    # Configs can be set in Configuration class directly or using helper
    # utility. If no argument provided, the config will be loaded from
    # default location.
    config.load_kube_config()

    with open(path.join(path.dirname(__file__), "nginx-deployment.yaml")) as f:
        dep = yaml.safe_load(f)
        k8s_apps_v1 = client.AppsV1Api()
        resp = k8s_apps_v1.create_namespaced_deployment(
            body=dep, namespace="default")
        print("Deployment created. status='%s'" % resp.metadata.name)


if __name__ == '__main__':
    main()

推荐阅读