use*_*511 7 python uwsgi kubernetes google-kubernetes-engine
我们有一个Python uWSGI REST API服务器,可以处理大量的调用.当api通过外部资源调用峰值时,队列立即被填充,因为默认情况下uWSGI队列大小设置为100.经过一番挖掘后,我们发现这是根据服务器的net.core.somaxconn设置.在Kubernetes的情况下,因为节点的设置.
我们发现此文档使用sysctl来更改net.core.somaxconn.https://kubernetes.io/docs/concepts/cluster-administration/sysctl-cluster/ 但是这不适用于GKE,因为它需要docker 1.12或更新版本.
我们也发现了这个片段,但这看起来真的很糟糕. https://github.com/kubernetes/contrib/blob/master/ingress/controllers/nginx/examples/sysctl/change-proc-values-rc.yaml DaemonSet不是更好而不是伴侣容器吗?
将net.core.somaxconn设置为高于节点池的所有节点上的默认值的最佳做法是什么?
一个好的方法是使用具有特权的守护进程集,因为它会在所有现有节点和新节点上运行。只需使用提供的启动容器,例如:
https://github.com/kubernetes/contrib/blob/master/startup-script/startup-script.yml
对于你的情况:
apiVersion: extensions/v1beta1
kind: DaemonSet
metadata:
name: startup
spec:
updateStrategy:
type: RollingUpdate
template:
spec:
hostPID: true
containers:
- name: system-tweak
image: gcr.io/google-containers/startup-script:v1
imagePullPolicy: Always
securityContext:
privileged: true
env:
- name: STARTUP_SCRIPT
value: |
#! /bin/bash
echo 32768 > /proc/sys/net/core/somaxconn
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
575 次 |
最近记录: |