创建ingress的时候添加annotation:
1 2 3 |
metadata: annotations: nginx.ingress.kubernetes.io/proxy-body-size: 10240m |
创建ingress的时候添加annotation:
1 2 3 |
metadata: annotations: nginx.ingress.kubernetes.io/proxy-body-size: 10240m |
这Nginx套Nginx套Nginx的架构总是让人难过的。有的时候你需要绕过Rancher开的Nginx,自己开一个,那么就需要让Rancher的Nginx不再监听主机的80/443端口。
集群YAML里:
1 2 3 4 5 |
ingress: extra_args: http-port: "8080" https-port: "5443" provider: "nginx" |
如果要彻底禁用则可以:
1 2 |
ingress: provider: "none" |
我一直把Rancher当Docker控制面板用,每个cluster都是单节点,启动一个算一个。最近就遇到这么个问题,一个node硬盘不足,触发了kubelet的eviction策略,于是kubelet干掉了两个container,又重启了两个——在唯一那个node上。如此循环往复了一刻钟,我就收获了几十个failed的container。
解决这个问题的方法很简单,用YAML方式编辑Rancher Cluster的设置,把kubelet的eviction策略设成空即可。
1 2 3 4 5 6 |
services: kubelet: extra_args: eviction-hard: "" eviction-soft: "" eviction-minimum-reclaim: "" |
然后测试一下:
1 |
fallocate -l 37580963840 test.35g |
应该就不会触发DiskPressure了。
说来这个eviction的设计也是很扯淡,它竟然是kubelet在本地计算的,不考虑整个cluster的情况。那我花那么多内存跑个etcd意义何在呢?