标签: google-kubernetes-engine

如何在Kubernetes中为容器设置ulimit?

如何在Kubernetes中为容器设置ulimit?(特别是ulimit -u)

kubernetes google-kubernetes-engine

12
推荐指数
2
解决办法
1万
查看次数

监控和警告pod状态或使用Google Container Engine(GKE)和Stackdriver重新启动

有没有办法监控pod状态并使用Stackdriver重新启动在GKE集群中运行的pod的数量?

虽然我可以看到Stackdriver中所有pod的CPU,内存和磁盘使用情况指标,但似乎没有办法获得有关由于崩溃而重新启动副本集中的pod或pod的崩溃的指标.

我正在使用Kubernetes副本集来管理pod,因此它们会在重新生成时重新生成并在崩溃时使用新名称创建.据我所知,Stackdriver中的指标由pod-name(在pod的生命周期中是唯一的)显示,这听起来并不合理.

警告pod故障听起来像是一件很自然的事情,听起来很难相信目前还不支持.我从Stackdriver for Google Container Engine获得的监控和警报功能似乎相当无用,因为它们都绑定到了生命周期非常短的pod.

因此,如果这不起作用,那么有关于如何监控持续崩溃的pod的已知变通方法或最佳实践吗?

monitoring kubernetes google-kubernetes-engine stackdriver google-cloud-stackdriver

12
推荐指数
3
解决办法
3412
查看次数

允许对非root用户访问PersistentVolumeClaim

在kubernetes中,我可以使用PersistentVolumeClaim创建一些存储空间,稍后我可以将其存储在某个容器中.

但是,如果容器中的用户不是root用户,则该用户将无法访问该目录,因为它由root拥有.

访问此类卷的正确方法是什么?(在创建和安装该卷时,我没有找到任何用户/权限选项.)

permissions kubernetes google-kubernetes-engine

12
推荐指数
1
解决办法
3393
查看次数

将Kubernetes与Apache Airflow集成

我们正在构建工作流程调度应用 我们发现Airflow是工作流管理器和Kubernetes的一个很好的选择,是集群管理器的好选择.因此,流量将是,

  1. 我们将向Airflow提交工作流程DAG.
  2. Airflow应通过指定docker image将给定DAG的任务提交给Kubernetes.
  3. Kubernetes应该通过在群集的可用EC2工作节点上运行docker容器来执行任务.

在搜索时,我们发现,Airflow有操作员可以与ECS,Mesos集成,但不适用于Kubernetes.但是,我们在Airflow wiki上发现了对Kubernetes Operator的请求,但没有对它进行任何进一步的更新.

那么,简单的问题是,如何将Airflow与Kubernetes整合?

kubernetes google-kubernetes-engine airflow airflow-scheduler

12
推荐指数
1
解决办法
5452
查看次数

群集自动缩放器不降尺寸

我在google kubernetes引擎(GKE)中设置了一个区域群集.节点组是每个区域中的单个vm(总共3个).我有一个部署,最少由HPA控制3个副本.所述节点组被配置为自动缩放(簇自动缩放又名CA).问题场景:

更新部署映像.Kubernetes自动创建新的pod,CA确定需要新节点.我现在有了4.当所有新的pod已经启动时,旧的pod会被删除,这意味着我拥有与前一分钟完全相同的CPU请求.但是在10分钟后最大缩小时间我还有4个节点.

现在,CPU对节点的请求是:

CPU Requests  CPU Limits  Memory Requests  Memory Limits
  ------------  ----------  ---------------  -------------
  358m (38%)    138m (14%)  516896Ki (19%)   609056Ki (22%)
--
  CPU Requests  CPU Limits  Memory Requests  Memory Limits
  ------------  ----------  ---------------  -------------
  800m (85%)    0 (0%)      200Mi (7%)       300Mi (11%)
--
  CPU Requests  CPU Limits  Memory Requests  Memory Limits
  ------------  ----------  ---------------  -------------
  510m (54%)    100m (10%)  410Mi (15%)      770Mi (29%)
--
  CPU …
Run Code Online (Sandbox Code Playgroud)

google-cloud-platform kubernetes google-kubernetes-engine

12
推荐指数
1
解决办法
2197
查看次数

什么是"提供的手表的资源版本太旧"来自事件导出器容器的警告?

我们在事件导出器容器的GCP kubernetes集群事件日志中收到了很多警告.

event-exporter  Jun 4, 2018, 10:45:15 AM    W0604 14:45:15.416504 1 reflector.go:323] github.com/GoogleCloudPlatform/k8s-stackdriver/event-exporter/watchers/watcher.go:55: watch of *v1.Event ended with: The resourceVersion for the provided watch is too old.
event-exporter  Jun 4, 2018, 10:37:04 AM    W0604 14:37:04.331239 1 reflector.go:323] github.com/GoogleCloudPlatform/k8s-stackdriver/event-exporter/watchers/watcher.go:55: watch of *v1.Event ended with: The resourceVersion for the provided watch is too old.
event-exporter  Jun 4, 2018, 10:28:37 AM    W0604 14:28:37.249901 1 reflector.go:323] github.com/GoogleCloudPlatform/k8s-stackdriver/event-exporter/watchers/watcher.go:55: watch of *v1.Event ended with: The resourceVersion for the provided watch is too old.
event-exporter  Jun 4, …
Run Code Online (Sandbox Code Playgroud)

kubernetes google-kubernetes-engine

12
推荐指数
1
解决办法
1113
查看次数

为公共 GKE 集群设置 Cloud NAT

我想使用Cloud NAT设置 NAT 网关,以便公共 GKE 集群中的 VM/Pod 使用静态 IP 地址。

我面临的问题是 NAT 网关似乎只在 VM 没有其他选项时才使用,即:

仅当流量没有其他匹配的路由或路径时,GCP 才会使用 Cloud NAT 转发流量。

但在公共 GKE 集群的情况下,VM 具有临时外部 IP,因此它们不使用网关。

根据文档:

如果在 VM 的接口上配置外部 IP [...] NAT 将不会对此类数据包执行。但是,分配给接口的别名 IP 范围仍然可以使用 NAT,因为它们无法使用外部 IP 访问 Internet。

通过此配置,您可以通过 SSH 直接连接到 GKE 虚拟机,同时让 GKE pod/容器使用 Cloud NAT 访问互联网。

这就是我想要的,但我看不到这里究竟要设置什么。

这意味着什么alias IP ranges assigned to the interface can still use NAT以及如何设置?

nat google-cloud-platform google-kubernetes-engine

12
推荐指数
3
解决办法
3325
查看次数

当 CPU 使用率受策略限制时,kubernetes pod 使用多少个内核?

Kubernetes 允许限制 pod 资源的使用。

requests:
  cpu: 100m
  memory: 128Mi
limits:
  cpu: 200m   # which is 20% of 1 core
  memory: 256Mi
Run Code Online (Sandbox Code Playgroud)

比方说,我kubernetes节点有2个核心。我在此节点上以 CPU 限制运行此 pod:200m。在这种情况下,我的 pod 会使用它的底层节点的1Core 的 200m还是2Core 的 100m+100m

我的gunicorn 工人的编号公式或 nginx 工人的编号等需要此计算。在 gunicorn 文档中它说

通常我们建议 (2 x $num_cores) + 1 作为开始的工作人员数量。

那么我应该使用 5 个工人吗?(我的节点有 2 个内核)。或者这甚至无关紧要,因为我的 pod 只分配了 200m cpu,我应该考虑我的 pod 有 1 个核心?

TLDR:当 Pod 的 CPU 使用率受 Kubernetes 限制时,Pod 使用多少个内核?如果我top在 pod 内运行,我会看到 2 个可用内核。但我不确定我的应用程序是使用这个 2 核的 …

gunicorn kubernetes google-kubernetes-engine

12
推荐指数
1
解决办法
4956
查看次数

使用 Helm 管理多个环境的最佳实践

我不清楚管理具有多个环境的应用程序的最佳实践是什么,共享模板文件但每个环境具有不同的变量。例如,我们部署了一个开发、登台和生产环境。他们使用相同的 helm 模板,但我对每个环境都有不同的变量。

当前文件结构:

helm/
  ??? templates/
  ?   ??? _helpers.tpl
  ?   ??? deploy.yaml
  ?   ??? ingress.yaml
  ?   ??? service.yaml
  ?   ??? managed-certs.yaml
  ?   ??? NOTES.txt
  ??? Chart.yaml
  ??? values-production.yaml
  ??? values-staging.yaml
  ??? values-develop.yaml

Run Code Online (Sandbox Code Playgroud)

现在每个环境都有两个不同的值文件,我将以下内容传递给 helm helm install . --values=values-production.yaml

但是,我们无法正确管理上述版本控制。

我找不到任何关于管理应用程序多个环境的最佳实践的可靠文档。我遇到了helmfile这似乎解决了这个问题,但他们的文档不清楚。管理 kubernetes 的生态系统令人困惑,任何帮助表示赞赏。

google-kubernetes-engine kubernetes-helm helmfile

12
推荐指数
1
解决办法
7816
查看次数

stackdriver-metadata-agent-cluster-level 得到 OOMKilled

我将 GKE 集群从 1.13 更新到 1.15.9-gke.12。在此过程中,我从传统日志记录切换到 Stackdriver Kubernetes Engine Monitoring。现在我stackdriver-metadata-agent-cluster-level遇到了pod 不断重启的问题,因为它获取OOMKilled.

不过内存好像还好。 在此处输入图片说明

日志看起来也很好(与新创建的集群的日志相同):

I0305 08:32:33.436613       1 log_spam.go:42] Command line arguments:
I0305 08:32:33.436726       1 log_spam.go:44]  argv[0]: '/k8s_metadata'
I0305 08:32:33.436753       1 log_spam.go:44]  argv[1]: '-logtostderr'
I0305 08:32:33.436779       1 log_spam.go:44]  argv[2]: '-v=1'
I0305 08:32:33.436818       1 log_spam.go:46] Process id 1
I0305 08:32:33.436859       1 log_spam.go:50] Current working directory /
I0305 08:32:33.436901       1 log_spam.go:52] Built on Jun 27 20:15:21 (1561666521)
 at gcm-agent-dev-releaser@ikle14.prod.google.com:/google/src/files/255462966/depot/branches/gcm_k8s_metadata_release_branch/255450506.1/OVERLAY_READONLY/google3
 as //cloud/monitoring/agents/k8s_metadata:k8s_metadata
 with gc go1.12.5 for linux/amd64
 from changelist 255462966 with …
Run Code Online (Sandbox Code Playgroud)

logging kubernetes google-kubernetes-engine stackdriver

12
推荐指数
1
解决办法
4672
查看次数