这就需要我们修改系统的内核参数了。好在Kubernetes允许我们运行一个特权容器,该容器可以修改仅适用于特定运行Pod的内核参数。 以下是我们用来修改/proc/sys/net/core/somaxconn参数的示例。
initContainers: - name: sysctl image: alpine:3.10 securityContext: privileged: true command: ['sh', '-c', "echo 511 > /proc/sys/net/core/somaxconn"] 总结尽管Kubernetes提供了一种开箱即用的解决方案,但是也需要你采取一些关键的步骤来确保程序的稳定运行。在程序上线前,务必进行多次测试,观察关键指标,并实时进行调整。
在我们将服务部署到Kubernetes集群前,我们可以问自己几个问题:
我们的程序需要多少资源,例如内存,CPU等?
服务的平均流量是多少,高峰流量是多少?
我们希望服务多长时间进行扩张,需要多长时间新的Pod可以接受流量?
我们的Pod是正常的停止了吗?怎么做不影响线上服务?
怎么保证我们的服务出问题不会影响其他服务,不会造成大规模的服务宕机?
我们的权限是否过大?安全吗?
终于写完了,呜呜呜~真滴好难呀~