我已经创build了一个部署,其中可以包含2到25个容器之间的任何地方,这些容器都在一个更大的单个逻辑工作单元上工作。 容器将会使用700MB-4GB的内存,我最初的方法是请求1G,限制4G。 在最坏的情况下(4GB的数量超过700MB),即使在其他地方有3%或400%的空闲资源可用时,也会使节点停机 (或者不会开始)。 看着一个或两个容器缓慢地爬上RAM和OOM的节点下来,而不是调度器采取容器closures和重新部署似乎是一个稳定的相当明显的关注。 通过几年的git辩论,文档和代码本身。 目前还不清楚在抽象的抽象层次上,调度程序甚至在启动时传播容器,或者如果有任何积极的步骤K8S一旦部署工作困扰。 如果一个ReplicaSet(我相信这是新的,改进的ReplicationController)只会重新生成容器,直到杀死主机,你必须创build硬盘最坏情况下的请求给每个pod。 对于我们作为部署运行的大部分工作,这会导致50%以上的内存浪费,以防万一 。 是不是在过度configuration的资源中存在一个我们正在试图解决的问题? 多年来,我使用了相当多的调度程序/资源pipe理器,并且不记得一个工作步骤 – 容器 – 无论类比如何都将被允许妥协主机本身,而不是被强制迁移或者直接标记没有资格进行排程 尽pipe文档告诫了这个想法,但是裸露的pod或者pid:1副本集似乎是保持工作分布的唯一方法(假设容器检查点和自杀经常足以使整个资源图片被重新考虑)。 我还应该提到,这是托pipe的Google容器引擎(v1.2.2),看起来像几页的标志可以启动K8S,不清楚这是一个固有的问题, 用户错误或只是如何configurationGCE K8S。 我真的希望在这一个用户错误。
我正在尝试更新我的部署的image 。 为此,我执行kubectl edit deployment web并更改spec.template.spec.containers.image属性: gcr.io/my-project-id-1234/app:v1 至: gcr.io/my-project-id-1234/app:v2 从日志中,我知道部署更新很好。 我遇到的问题是TLS入口; 这里是我的configuration: apiVersion: extensions/v1beta1 kind: Ingress metadata: name: tls-ingress spec: tls: – secretName: tls-secrets backend: serviceName: web servicePort: 80 这里是更新之前kubectl describe ing web的结果: $ kubectl describe ing Name: tls-ingress Namespace: default Address: 105.78.154.212 Default backend: web:80 (10.0.2.3:8000) TLS: tls-secrets terminates Rules: Host Path Backends —- […]
我通过遵循heapster-influxDB指南部署了influxdb和grafana的heapster 。 当访问Grafana实例时,我看不到图中的任何数据(Grafana服务暴露在NodePort外部)。 heapster和influxdb日志中没有错误,如下所示。 这里可能是什么问题? 真的很欣赏一个积极的反馈。 $ kubectl version Server Version: version.Info{Major:"1", Minor:"1", GitVersion:"v1.1.3", GitCommit:"6a81b50c7e97bbe0ade075de55ab4fa34f049dc2", GitTreeState:"clean"} 格拉法纳仪表板 Grafana数据源设置 heapster日志 I0510 10:33:12.556974 1 heapster.go:60] /heapster –source=kubernetes:https://kubernetes.default –sink=influxdb:http://monitoring-influxdb:8086 I0510 10:33:12.557111 1 heapster.go:61] Heapster version 1.1.0-beta1 I0510 10:33:12.557394 1 configs.go:60] Using Kubernetes client with master "https://kubernetes.default" and version "v1" I0510 10:33:12.557414 1 configs.go:61] Using kubelet port 10255 I0510 […]
我正在定义我的第一个Kubernetes部署,并希望定义一个容器,在两点上装载持久性存储,如下所示(在Deployment.yaml中的spec.template.spec.containers.- ): volumeMounts: – name: volume1 mountPath: /var/log/app – name: volume2 mountPath: /var/lib/app 我从Kubernetes的MEAN栈示例中了解到,我应该能够创build两个相应的GCE磁盘,如下所示: gcloud compute disks create –size 10GB volume1 gcloud compute disks create –size 10GB volume2 我目前考虑两个磁盘,而不是一个,因为我需要安装在两个不同的path。 Kubernetes服务可以在不同的path上装载单个卷/磁盘的不同“部分”(可能是分区)吗? v1.VolumeMount的规范表明,这在服务规范的层面上可能是不可能的,因为它只支持字段name , readOnly和mountPath 。 这些答案表明它可能在EXT4分区的级别上,但是这要求卷是只读的。 即使在只读的情况下(这不符合我的要求),我将如何去创build分区的GCE磁盘? (从StackOverflow迁移)
来自fedora网站的最新fedora-atomic 24映像包含docker 1.10.3和kubernetes 1.2.0。 我试图find一种方法来创build最新的docker(1.12.1)和kubernetes(1.3.5)的primefaces图像。 据我所知,我可以在https://copr.fedorainfracloud.org/coprs/创build软件包仓库,并在创build镜像时使用它。 但是我无法从这里find的源码包中build立docker 1.12: https : //kojipkgs.fedoraproject.org/packages/docker/ 另外,我无法使用正式的docker安装指南中的软件包仓库,因为其中的软件包叫做docker-engine ,我将无法安装rpm-ostree软件包,因为它将docker作为依赖项。 用最新的docker和kubernetes构buildfedora-atomic image的最简单方法是什么?
截至2016年8月28日,我使用Stackdriver监控MongoDB 3.2的问题。 在/var/log/syslog没有提到mongo ,但是如果我在.conf文件中发生configuration错误,它会报错,所以我知道它正在正确加载文件… 所以没有错误,但没有提及mongo在/var/log/syslog和https://app.google.stackdriver.com/services/mongodb声称我没有安装代理。 gke-fatih-standard-fb894cbb-d7ue:/opt/stackdriver/collectd/etc$ sudo service stackdriver-agent restart [….] Restarting Stackdriver metrics collection agent: stackdriver-agentoption = Interval; value = 60.000000; Created new plugin context. option = Interval; value = 60.000000; Created new plugin context. option = PIDFile; value = /var/run/stackdriver-agent.pid; option = Interval; value = 60.000000; Created new plugin context. . ok $ […]
http://kubernetes.io/docs/user-guide/petset/中的 “Alpha限制” Kubernetes的托pipe产品很可能会被禁用。 Google云端平台(GCP)是否在托pipe版本的Kubernetes中支持宠物套装?
我一直在考虑在Google Compute Engine上使用Kubernetes。 我有configuration需要部署到他们的豆荚。 目前,我正在使用持久性磁盘来执行此操作。 但是,由于永久性磁盘不能多于一次挂载,因此如果使用多于一个的pod,则不能用于部署configuration。 做这个的最好方式是什么? ConfigMaps将无法正常工作,因为我需要将目录结构部署为configuration。 我能看到的唯一解决scheme是每次需要更改我的configuration时重build我的docker容器。 这真的是最好的方法吗?
我们正在评估GKE,我正在考虑推荐的划分集群的策略。 我们有约20个网站供不同的客户在生产中使用。 每个项目是否应该有自己独立的集群? 一个刺激和一个舞台? 我们是否应该有两个巨大的集群,一个用于所有项目,一个用于舞台? 想想拥有一个拥有所有产品的巨型集群是很好的,这样他们都可以最有效地共享资源,但同样,这意味着一个集群的问题会立刻把所有人都赶下台。 我真的不知道这是多么普遍。 可能是一个侧面的问题,但是当我们升级我们的集群时,我们正在试验(有2个节点)运行的网站经历了4分钟的停机时间。 如果没有太多的节点,GKE用户界面确实会说可能会遇到停机时间,但是它没有指定多less – 我想这应该成为如何划分集群的考虑因素。 谢谢你的帮助。
我有一个GKE集群,为了简单起见,只运行Prometheus,监视每个成员节点。 最近我最近把API服务器升级到了1.6(引入了RBAC),并没有问题。 然后我添加了一个新的节点,运行版本1.6 kubelet。 普罗米修斯无法访问这个新节点的指标API。 所以,我添加了一个ClusterRole , ClusterRoleBinding和一个ServiceAccount到我的命名空间,并configuration了部署使用新的ServiceAccount。 然后,我删除了一个好的措施: apiVersion: v1 kind: ServiceAccount metadata: name: prometheus — apiVersion: rbac.authorization.k8s.io/v1beta1 kind: ClusterRole metadata: name: prometheus rules: – apiGroups: [""] resources: – nodes – services – endpoints – pods verbs: ["get", "list", "watch"] – apiGroups: [""] resources: – configmaps verbs: ["get"] – nonResourceURLs: ["/metrics"] verbs: ["get"] — […]