- iOS/Objective-C 元类和类别
- objective-c - -1001 错误,当 NSURLSession 通过 httpproxy 和/etc/hosts
- java - 使用网络类获取 url 地址
- ios - 推送通知中不播放声音
就我的理解而言,Kubernetes 引擎旨在部署可以负载平衡的应用程序,例如,拥有一个对字符串进行 unhash 的应用程序。如果 pod-a 处于高负载,它将被卸载到 pod-b。如果我在这里错了,请纠正我,因为如果这是错误的,我接下来的问题就没有意义了。
探索了几个小时后,我似乎无法弄清楚如何将 C++ 应用程序部署到 Kubernetes 集群。我该怎么做?
我尝试过的:
我尝试按照指南进行操作: Interactive Tutorial - Deploying an App ,但是,我无法理解如何将我的 C++ 应用程序作为可以部署的镜像。
什么是 C++ 应用程序:
目前它代理 TCP 流量到另一个由客户的主机名指定的主机。它几乎是一个反向代理,但是,这不是一个 HTTP 应用程序。
最佳答案
Kubernetes 是正确的选择吗?
-
Kubernetes is really useful负载平衡工作负载,在出现故障时提供高可用性以加快测试过程,并通过不同的策略在生产推出期间提高安全性,并通过隔离提高安全性。
但是,并非所有类型的工作负载都能利用 Kubernetes 引入的所有功能。
但如果您需要将它部署在不同的云提供商上,并且它应该每天只运行几个小时,那么也许它也可以利用这些功能。 如果您愿意添加一个层,请确保您需要它引入的功能,否则它只是一种开销。
请注意,Kubernetes 无法单独拆分您的工作负载。因此,我不知道您所说的“如果 pod-a 处于高负载状态,它将被卸载到 pod-b”是什么意思,可能是的,但您必须指示它这样做所以。
Kubernetes 负责运行您的 POD,确保已安排在有足够内存和 CPU 可用的节点上 according to your specification , 你可以设置 autoscaling procedures以及支持高工作负载期间或scale even the cluster本身。您的应用程序应该以支持分而治之模式的方式创建,否则您可能会有三个节点,一个 pod 在一个节点上运行,两个空闲和一个您本可以避免的开销。
当然,您可以利用 Kubernetes,在其上运行您的应用程序非常简单,但您可能需要修改架构中的某些内容才能充分利用这些功能。
在 Kubernetes 中部署应用程序的过程非常标准。在本地开发它,创建一个包含您需要的所有库和组件的 Docker 镜像,在本地测试它,将它推送到注册表,然后在 Kubernetes 中创建部署。
假设您在本地文件夹中拥有运行应用程序和可执行文件所需的所有资源。创建 Docker 文件。
Example , 修改以实现您的应用程序,我已将其作为示例报告以显示语法:
# Download base image, Ubuntu 16.04 (Xenial Xerus)
FROM ubuntu:16.04
# Update software repository
RUN apt-get update
# Install nginx, php-fpm and supervisord from the Ubuntu repository
RUN apt-get install -y nginx php7.0-fpm supervisor
# Define the environment variable
ENV nginx_vhost /etc/nginx/sites-available/default
[...]
# Enable php-fpm on the nginx virtualhost configuration
COPY default ${nginx_vhost}
[...]
RUN chown -R www-data:www-data /var/www/html
# Volume configuration
VOLUME ["/etc/nginx/sites-enabled", "/etc/nginx/certs", "/etc/nginx/conf.d", "/var/log/nginx", "/var/www/html"]
# Configure services and port
COPY start.sh /start.sh
CMD ["./start.sh"]
EXPOSE 80 443
构建它运行:
export PROJECT_ID="$(gcloud config get-value project -q)"
docker build -t gcr.io/${PROJECT_ID}/hello-app:v1 .
gcloud docker -- push gcr.io/${PROJECT_ID}/hello-app:v1
kubectl run hello --image=gcr.io/${PROJECT_ID}/hello-app:v1 --port [port number if needed]
关于c++ - 将 C++ 应用程序部署到 Google Cloud Platform Kubernetes 引擎,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49351299/
我创建了一个训练作业,我从大查询中获取数据、执行训练和部署模型。我想在这两种情况下自动开始训练: 向数据集添加了 1000 多个新行 有时间表(例如,每周一次) 我检查了 GCP Cloud Sche
我遇到以下警告: WARNING: You do not appear to have access to project [$PROJECT] or it does not exist. 在本地运行
我正在使用 Google Cloud Platform,我必须使用 java 非 Web 应用程序访问云功能,就像我尝试使用 Google Cloud Storage JSON API 从 Googl
我的问题是第三方开发人员如何通过我的身份平台登录用户?我查看了文档,但一无所获。 本质上,我想将 Identity Platform 用作 OIDC 提供者,但我不知道这是否受支持。 最佳答案 Clo
在我去这里的过去 12 个小时左右: https://console.developers.google.com/apis/credentials?project=MYPROJECTNAME 我只是得
我正在尝试创建一个 python 脚本来在 linux 机器上自动安装和配置某些程序。 我的想法是使用平台和多处理库来询问系统信息(platform.system、platform.linux_dis
我正在尝试创建没有控制台网页的 Google Cloud Platform 项目,因为我考虑创建多个项目。 因为我查了gcloud,目前只支持project describe和list。 https:
我正在使用 Google Cloud Scheduler 调用外部应用程序。 Google Cloud Scheduler 使用 OIDC 身份验证并使用服务帐户。我只能从 Google 服务帐户 U
如何在我的 Google Cloud Platform 帐户上启用 Google Authenticator 双重身份验证?我在 Web 界面中上下查看了“IAM 和管理员”,但没有看到在帐户上启用
我们在 Google Cloud 上设置了一个虚拟机,并希望能够自动或计划打开和关闭它。 我们内部有自动脚本,之后可以完成工作,到目前为止,我在 google 的文献中读到的更多与这些实例有关,但我找
我试图删除一个 GCP 项目,但不断弹出以下错误。 Lien origin You cannot delete this project because it is linked with a Dia
我从 Google Domains 购买了一个域,称为 example.com。 我已订阅 G Suite 基本版并创建了一个 admin@example.com 帐户以在 GCP 上使用,而不是我的
我构建了一个包含许多并行进程的 AI Platform 流水线。每个流程都会在 AI Platform 上启动一个训练作业,如下所示: gcloud ai-platform jobs submit t
我们正在验证函数输入时方法参数不为空,但这不适用于 Platform::String (或 Platform.String ,C# 或 C++ 之间没有区别),因为它们用空实例重载空字符串的语义。 考
这个问题比我想来这里的问题要简单一些,但我一直在努力寻找答案,但我绝对不能—— 谷歌云平台 HTTP 函数是否支持路由参数,如此处? http://expressjs.com/en/guide/rou
我正在使用 Kubernetes,我正在尝试创建一个 ingress resource .我使用以下方法创建它: $ kubectl create -f my-ingress.yaml 我等了一会儿,
我是 Google Cloud 的新手,所以我希望得到一些有关“组织”的指导。 我可以将项目从一个“组织”转移到另一个“组织”吗?我正在我的个人 GSuite 组织下启动一些项目,但我必须将它们转移到
在 GET 操作中,我想从返回的集合中排除具有等于“true”的“存档”字段的实体。 我希望这是我的端点(如/users 或/companies)的默认设置,并且我想避免手动添加 URL 过滤器,如
实例模板对于创建托管实例组至关重要。事实上,托管实例组对于在 GCP 中创建自动扩缩组至关重要。 这个问题是另一个问题 question's answer 的一部分,这是关于构建一个自动缩放和负载平衡
我正在将 GCP 用于多个相同的项目。对于每个新项目我都需要一个1 个 GPU 的配额(Tesla K80)。为了申请增加我的GPU配额,我打开console并导航至“IAM 和管理”>“配额”。我在
我是一名优秀的程序员,十分优秀!