microk8s 适合生产环境吗,还是只适合开发?

microk8s 适合生产环境吗,还是只适合开发?

microk8s似乎是在 Ubuntu 上安装 Kubernetes 的一种简单方法。有好几个地方都将其称为 minikube 的替代品,但 minikube 并不针对生产环境,这个帖子似乎表明它主要针对开发环境。但是,我看不出它不适合生产环境的原因。

我有两台 Ubuntu 服务器,想在每台服务器上安装 Kubernetes,同时保留在这些服务器上运行的旧版应用程序。我想知道 microk8s 是否是这种场景的好选择。

microk8s 适合生产环境吗,还是只适合开发?

答案1

只需更新至 2020 年 - 这是来自规范的:

什么是 MicroK8s? MicroK8s 是一款功能强大、轻量、可靠的生产就绪的 Kubernetes 发行版。它是一个企业级 Kubernetes发行版占用的磁盘和内存空间很小,同时提供开箱即用的生产级附加组件,例如 Istio、Knative、Grafana、Cilium 等。无论您是在运行生产环境还是对探索 K8s 感兴趣,MicroK8s 都能满足您的需求。

所以我认为这很清楚。

https://ubuntu.com/blog/introduction-to-microk8s-part-1-2

答案2

(坦白说,我是 Canonical 的产品经理,该公司是 MicroK8s 的创建者)

MicroK8s 可用于生产。当然,生产要求各不相同,因此真正的答案是“视情况而定”。

如果您有 MicroK8s 的生产用例,但发现它缺少必备功能,请告诉我们。您可以通过在 github 项目中提交问题来做到这一点 -https://github.com/ubuntu/microk8s

答案3

任何生产级软件都应该“默认安全“。

对于生产就绪的 Kubernetes 解决方案(例如 kubeadm),安装到 pod 的默认服务帐户没有任何权限。

但根据microk8s 文档

默认情况下,所有经过身份验证的请求都会得到授权,因为 api-server 以 --authorization-mode=AlwaysAllow 运行。

这意味着默认情况下没有授权。这将允许任何服务帐户(包括默认帐户)调用 kube-apiserver 并执行特权操作(例如,在 kube-system 命名空间中创建和读取机密)。由于没有 RBAC,默认服务帐户将拥有集群管理员权限。这对于开发环境来说没问题,但在生产环境中可能非常危险。

假设在 pod 内运行的应用程序容易受到远程代码执行等问题的攻击。它有可能从 pod 中逃脱并危害整个集群。

可以使用 启用 RBAC microk8s enable rbac

缺少此类设置可能会导致集群配置错误并引发一系列问题。因此,建议使用可用于生产的 Kubernetes 发行版(或一般任何软件)。

答案4

正如评论中提到的,我最终遇到了几个地方,他们说 microk8s 仅用于开发:

https://kubernetes.io/docs/setup/pick-right-solution/- “microk8s 在本地机器上提供最新 Kubernetes 版本的单一命令安装,以供开发和测试。”

https://blog.ubuntu.com/2018/08/13/deploying-kubernetes-on-public-clouds-is-hard-or-is-it- “如果您开发的软件旨在在 Kubernetes 上运行,microk8s snap 提供了最简单的方法,可以在 30 秒内在笔记本电脑或虚拟机上启动并运行完全符合要求的本地 Kubernetes,以用于测试和软件开发目的。”

相关内容