我可以在Openshift主节点或Infra节点上运行用户Pod吗

问题描述

openshift的新手,所以如果我们可以在主节点或基础节点上运行用户Pod,我会感到有些困惑。我们有2个工作程序节点以及1个主节点和基础节点,每个节点构成4个节点。更改的原因是在所有4个节点之间而不是2个计算节点之间共享负载

通过阅读一些文档,似乎可以为一个节点分配2个角色,但是是否存在安全风险或不是最佳实践?

在openshift版本v3.11.0 + d699176-406上运行

解决方法

如果我们可以在主节点或基础节点上运行用户pod

是的,您绝对可以,最简单的方法是在安装时进行配置,例如,请参考https://docs.openshift.com/container-platform/3.11/install/example_inventories.html#multi-masters-using-native-ha-ai

是否存在安全风险或不是最佳实践

运行单个主节点或单个基础节点已经对集群的高可用性构成了风险。如果master发生故障-您的群集基本上是无头的,如果infra节点发生故障-您将丢失内部注册表和路由器-从而失去对图像流的外部访问或创建新图像的能力。这也适用于主机OS升级,有一天您将不得不重新启动主节点和基础节点,在修补期间确保停机时间可以吗?如果更新期间出现问题怎么办?

关于在主节点和基础节点上运行用户工作负荷-如果您未运行特权SCC(可以允许运行特权Pod或在系统上使用任何uid等)-假设没有已知的信息,则可以避免容器泄漏您正在使用的容器引擎中的错误。但是,您应密切注意资源消耗,并避免在没有CPU和内存限制的情况下运行任何工作负载,因为主节点过载可能会导致群集降级。您还应该监视磁盘使用情况,因为运行用户Pod会导致将更多图像加载到docker存储中。

所以基本上可以归结为:

这两个角色最好有多个主节点(最好是3个)和几个基础节点,而不是单个故障点。具有单独的主节点和工作节点当然比将它们托管在一起更好,但是即使仔细观察资源的使用情况,即使具有用户工作负载的多主设置也应更具弹性。