关键词:
【中文标题】如何在 Kubernetes 中的容器上指定 cpu 或内存资源【英文标题】:How do you specify cpu or memory resource on container in kurbenetes 【发布时间】:2015-01-15 01:35:35 【问题描述】:pod的定义取自https://github.com/mesosphere/kubernetes-mesos/blob/master/examples/pod-nginx.json
"kind":"Pod",
"apiVersion":"v1beta1",
"id":"nginx-id-01",
"desiredState":
"manifest":
"version":"v1beta1",
"containers":[
"name":"nginx-01",
"image":"dockerfile/nginx",
"ports":[
"containerPort":80,
"hostPort":31000
],
"livenessProbe":
"enabled":true,
"type":"http",
"initialDelaySeconds":30,
"httpGet":
"path":"/index.html",
"port":"8081"
]
,
"labels":
"name":"foo",
"cluster":"gce"
我似乎无法找到如何指定资源。
【问题讨论】:
【参考方案1】:您可以在https://github.com/GoogleCloudPlatform/kubernetes/blob/master/examples/guestbook/frontend-controller.json#L16 上查看指定的 Kubernetes 资源示例
但是,根据https://github.com/GoogleCloudPlatform/kubernetes/issues/168,Kubernetes(因此 Kubernetes-Mesos)并没有真正对这些资源做任何事情
一旦在 Kubernetes 中实现,Kubernetes-Mesos 框架也将支持它:https://github.com/mesosphere/kubernetes-mesos/issues/76
【讨论】:
【参考方案2】:您可以在容器规范中输入内存和 CPU 的值:https://github.com/GoogleCloudPlatform/kubernetes/blob/master/pkg/api/v1beta1/types.go#L257
我们的调度程序还没有对它们做太多事情,但它也不会再完全忽略它们。
【讨论】:
【参考方案3】:官方可以在你的pod中的每个容器定义中添加一个resource字段,可以添加requests和limits:
resources:
requests:
memory: "qMi"
cpu: "pm"
limits:
memory: "yMi"
cpu: "x"
然后将这些值的总和与 pod 中的其他容器相加,以计算每个 pod 的总请求和限制。
请看 https://kubernetes.io/docs/concepts/configuration/manage-compute-resources-container/
【讨论】:
【参考方案4】:您可以在容器规范中的部署文件本身中为任何容器指定 cpu 或资源。
nano task2deploy1.yaml
apiVersion: extensions/v1beta1
kind: Deployment
metadata:
name: task2deploy1
spec:
replicas: 1
template:
metadata:
labels:
app: task2deploy1
spec:
containers:
- name: task2deploy1
image: nginx
ports:
- containerPort: 80
resources:
requests:
memory: "64Mi"
cpu: "250m"
limits:
memory: "128Mi"
cpu: "500m"
这意味着64Mi内存和250m cpu的请求可以发送到名为task2deploy1的容器。
容器虽然有128Mi内存和500m cpu的限制。
kubectl create –f task2deploy1.yaml –namespace=Shifali
在此部署的帮助下创建 Pod 后,Pod 将拥有部署文件中提到的这些资源。
kubectl describe pod task2deploy1-765cfc9b89-xrgsr --namespace=Shifali
Name: task2deploy1-765cfc9b89-xrgsr
Limits:
cpu: 500m
memory: 128Mi
Requests:
cpu: 250m
memory: 64Mi
除此之外,还会显示更多信息,但需要查看的是资源。
【讨论】:
如何使用 kubernetes 将数据从一个容器 cp 到另一个容器
】如何使用kubernetes将数据从一个容器cp到另一个容器【英文标题】:Howtocpdatafromonecontainertoanotherusingkubernetes【发布时间】:2019-11-1314:25:10【问题描述】:假设我们有一个简单的deployment.yml文件:apiVersion:apps/v1kind:Deploymentmetadata:name... 查看详情
如何让容器在 Kubernetes 上运行?
】如何让容器在Kubernetes上运行?【英文标题】:HowcanIkeepacontainerrunningonKubernetes?【发布时间】:2015-10-3010:55:40【问题描述】:我现在正尝试在Kubernetes集群上运行一个带有shell(/bin/bash)的简单容器。我认为有一种方法可以通过使用p... 查看详情
kubernetescpu管理及调度
参考技术A在内存管理篇,我们研究了Kubernetes(K8s)requests和limits的资源含义,以及Docker容器运行时的内存含义。我们在这里将介绍K8中的CPU的含义,以及CPU的requests和limits,并研究如何为Pod设置合理的cpu资源。那么,CPU在kubernetes... 查看详情
Kubernetes:如何从 Docker 容器 A 在 Docker 容器 B 上运行 Bash 命令
】Kubernetes:如何从Docker容器A在Docker容器B上运行Bash命令【英文标题】:Kubernetes:HowtorunaBashcommandonDockercontainerBfromDockercontainerA【发布时间】:2016-11-2622:58:41【问题描述】:我已经基于Docker-Multinode搭建了一个简单的Kubernetes测试环境... 查看详情
为啥 Kubernetes 的容器在 runsc (gVisor) 上作为 Docker 中的运行时运行时会失败?
】为啥Kubernetes的容器在runsc(gVisor)上作为Docker中的运行时运行时会失败?【英文标题】:WhydoKubernetes\'containersfailwhenranonrunsc(gVisor)asaruntimeinDocker?为什么Kubernetes的容器在runsc(gVisor)上作为Docker中的运行时运行时会失败?【发布时间... 查看详情
如何通过 SSH 连接到 Kubernetes 集群中的 docker 容器? [关闭]
】如何通过SSH连接到Kubernetes集群中的docker容器?[关闭]【英文标题】:HowtoSSHtodockercontainerinkubernetescluster?[closed]【发布时间】:2016-11-2322:57:20【问题描述】:我对GoogleCloud平台和Docker还很陌生,我设置了一个节点集群,制作了一... 查看详情
kubernetes中的资源分配和限制策略
参考技术AKubernetes是一个容器集群管理平台,Kubernetes需要统计整体平台的资源使用情况,合理地将资源分配给容器使用,并且要保证容器生命周期内有足够的资源来保证其运行。同时,如果资源发放是独占的,即资源已发放给了... 查看详情
如何在kubernetes上部署安装php+nginx多容器应用(代码片段)
引言Kubernetes是一个开源的容器编排系统。它允许你创建、更新和扩展容器,而无需担心停机。要运行一个PHP应用程序,Nginx充当PHP-FPM的代理。将此设置打包到单个容器中可能是一个繁琐的过程,但Kubernetes将帮助在不... 查看详情
指定 Docker 在 Kubernetes pod 上运行的顺序
】指定Docker在Kubernetespod上运行的顺序【英文标题】:SpecifytheorderDockersrunonKubernetespod【发布时间】:2015-02-2609:56:17【问题描述】:我试图在同一个Kubernetespod上运行两个Docker,并且我希望一个Docker容器始终在另一个之前运行。我记... 查看详情
从 docker 容器到 kubernetes pod 的端口发布如何工作?
】从docker容器到kubernetespod的端口发布如何工作?【英文标题】:Howdoesportpublishingfromadockercontainertoakubernetespodwork?【发布时间】:2020-02-0803:22:34【问题描述】:在学习GetStarted,Part3:DeployingtoKubernetes教程时,我偶然发现了清单文件的... 查看详情
如何在kubernetes上部署php应用程序(代码片段)
引言Kubernetes是一个开源的容器编排系统。它允许你创建、更新和扩展容器,而无需担心停机。要运行一个PHP应用程序,Nginx充当PHP-FPM的代理。将此设置打包到单个容器中可能是一个繁琐的过程,但Kubernetes将帮助在不... 查看详情
您如何干净地列出 kubernetes pod 中的所有容器?
】您如何干净地列出kubernetespod中的所有容器?【英文标题】:Howdoyoucleanlylistallthecontainersinakubernetespod?【发布时间】:2016-02-2816:43:38【问题描述】:我希望在运行测试后收集日志的脚本中列出pod中的所有容器。kubectldescribepods-lk8s-... 查看详情
kubernetes(十一)数据存储(挂载卷管理)
...些情况下是不乐意看到的。为了持久化保存容器的数据,kubernetes引入了Volume的概念。Volume是Pod中能够被多个容器访问的共享目录,它被定义在Pod上,然后被一个Pod里的多个容器挂载到具体的文件目录下,kubernetes通过Volume实现同... 查看详情
在 Prisma docker 容器上添加健康检查路径
...2019-05-0122:07:27【问题描述】:我将Prismadockercontainer托管在Kubernetes集群上,该集群需要运行状况检查路径来确定容器是否处于活动状态。由于我无法控制此容器中的端点,我将如何添加Kubernetes可能命中的健康检查路由?【 查看详情
kubernetes 在容器中获取端点
】kubernetes在容器中获取端点【英文标题】:kubernetesgetendpintinthecontainers【发布时间】:2021-05-1322:38:23【问题描述】:在kubernetesvm上运行,例如:kubectlgetendpoints如何在pod内获得相同的输出,我应该在pod内运行什么?我知道有一个ku... 查看详情
kubernetes平台上更安全的构建容器镜像工具-kaniko
背景在云原生趋势下,用容器的方式来进行软件产品交付越来越普通,对于云原生的DevOps,它的CICD环境完全运行在容器中,镜像的构建也是在容器中完成的。而我们不仅要考虑如何在容器中成功构建镜像,也需要考虑如何以更... 查看详情
Kubernetes pod 中的 Docker 容器无法通信
】Kubernetespod中的Docker容器无法通信【英文标题】:DockerContainersinKubernetespodnotcommunicating【发布时间】:2018-10-1717:35:24【问题描述】:我有2个docker容器,一个正在运行烧瓶服务器,另一个正在运行Angular应用程序。当我在本地系统... 查看详情
pod详解
什么是pod?官方说明:Pod是Kubernetes应用程序的最基本执行单元—是你创建或部署Kubernetes对象模型中的最小和最简单的单元。Pod表示在集群上运行的进程。Pod封装了应用程序的容器(或者在某些情况下是多个容器)、存储资源... 查看详情