首页 > 系统相关 >部署Kubernetes(k8s)时,为什么要关闭swap、selinux、firewalld

部署Kubernetes(k8s)时,为什么要关闭swap、selinux、firewalld

时间:2022-12-20 16:45:24浏览次数:46  
标签:计算 Kubernetes OOM selinux 程序 firewalld 集群 swap 作业

作者:知乎用户
链接:https://www.zhihu.com/question/374752553/answer/2665255695
来源:知乎
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。

防火墙和selinux基本上都是自找麻烦的事情,不关不是不能用,但是你得加钱招会搞的运维来处理问题。

至于swap,在计算集群(请注意计算集群这四个字的含义,这种集群主要运行一些生存周期短暂的计算应用,申请大量内存-动用大量CPU-完成计算-输出结果-退出,而不是运行诸如mysql之类的服务型程序)中,我们通常希望OOM的时候直接杀掉进程,向运维或者作业提交者报错提示,并且执行故障转移,把进程在其他节点上重启起来。而不是用swap续命,导致节点hang住,集群性能大幅下降,并且运维还得不到报错提示。更可怕的是有一些集群的swap位于机械硬盘阵列上,大量动用swap基本可以等同于死机,你甚至连root都登录不上,不用提杀掉问题进程了。往往结局就是硬重启。

节点hang住是非常恶劣的情况,往往发现问题的时候,已经造成了大量损失。而程序出错可以自动重试,重试还OOM说明出现了预料之外的情况(比如程序bug或是预料之外的输入、输入文件大小远超预期等问题),这种时候就应该放弃这个作业等待人员处理,而不是不停地尝试着执行它们,从而导致后面的其他作业全部完蛋。

所以计算集群通常都是关闭swap的,除非你十分明确swap可以给你的应用带来收益。

计算集群和诸如执行mysql的集群有一个根本不同就是计算集群不在意单个进程、单个作业的失败(由于面向的用户很宽泛,这些作业所执行的程序很可能未经严格的测试,它们客观上出问题的几率远高于mysql等成熟的程序),但是绝对不接受hang住引起整个集群无法处理任何作业,这是非常严重的事故。

关闭swap的含义其实就是OOM了就赶紧滚蛋,让正常的程序进来继续执行,OOM的程序让用户去处理。

标签:计算,Kubernetes,OOM,selinux,程序,firewalld,集群,swap,作业
From: https://www.cnblogs.com/shuai666/p/16994554.html

相关文章

  • Kubernetes监控手册-01体系概述
    Kubernetes监控体系驳杂,涉及到的内容非常多,总是感觉摸不到头绪,网上虽然有很多资料,都略显凌乱,没有一个体系化的讲解,今天开始,我们准备撰写一系列文章,把Kubernetes监控说透......
  • Kubernetes监控手册06-监控APIServer
    写在前面如果是用的公有云托管的Kubernetes集群,控制面的组件都交由云厂商托管的,那作为客户的我们就省事了,基本不用操心APIServer的运维。个人也推荐使用云厂商这个服务,......
  • Kubernetes(k8s) kubectl cluster-info常用命令
    kubectl在$HOME/.kube目录中查找一个名为config的配置文件。可以通过设置KUBECONFIG环境变量或设置--kubeconfig参数来指定其它kubeconfig文件。本文主要介绍K......
  • SELinux初探
    SELinux初探自己总结出来的SELinux部分,仅供参考。SELinux是一个内核模块。SELinux的运行模式主体:SELinux主要管理的就是进程,你可以将【主体】跟进程划上等号。目标:主......
  • Kubernetes(k8s) kubectl certificate常用命令
    kubectl在$HOME/.kube目录中查找一个名为config的配置文件。可以通过设置KUBECONFIG环境变量或设置--kubeconfig参数来指定其它kubeconfig文件。本文主要介绍K......
  • Kubernetes分布式架构分析
     一个Kubernetes平台可以管理几百台容器主机,以及运行在这些主机上的容器应用。如果容器主机采用裸金属服务器,则一台容器主机上运行的容器应用可以超过200个。也就是说,一......
  • Kubernetes 集群搭建
    环境和版本CentOS:7.6kubelet:1.20.5kubeadm:1.20.5kubectl:1.20.5master节点:腾讯云服务器为2C2G,公网IP:xxx.xxx.xx.xxxnode1节点:华为云(不建议)服务器为2核4GB,公......
  • kubernetes 1.21 版本升级
    1.规划升级前:组件名称位置版本kube-apiserver/usr/bin/kube-apiserverv1.21.13etcd、etcdctl/usr/bin/etcd、/usr/bin/etcdctl3.5.4kube-controll......
  • Kubernetes(k8s) kubectl rollout status常用命令
    kubectl在$HOME/.kube目录中查找一个名为config的配置文件。可以通过设置KUBECONFIG环境变量或设置--kubeconfig参数来指定其它kubeconfig文件。本文主要介绍K......
  • Centos 7.9 基于二进制文件部署kubernetes v1.25.5集群
    简述Kubernetes(简称为:k8s)是Google在2014年6月开源的一个容器集群管理系统,使用Go语言开发,用于管理云平台中多个主机上的容器化的应用,Kubernetes的目标是让部署容器化的应用......