Travis Asked: 2018-11-28 08:54:22 +0800 CST2018-11-28 08:54:22 +0800 CST 2018-11-28 08:54:22 +0800 CST microk8s适合生产环境,还是只适合开发? 772 microk8s似乎是在 Ubuntu 上安装 Kubernetes 的一种简单方法。有几个地方将它称为 minikube 的替代品,它不是针对生产环境的,而这篇文章似乎表明它主要针对开发环境。但是,我看不出它不适合生产环境的原因。 我有两台 Ubuntu 服务器,想在每台服务器上安装 Kubernetes,同时维护也在这些服务器上运行的遗留应用程序。我想知道 microk8s 是否适合这种情况。 microk8s适合生产环境,还是只适合开发? ubuntu 5 个回答 Voted Best Answer luishdez 2020-01-10T10:59:39+08:002020-01-10T10:59:39+08:00 只是更新到 2020 - 这是来自规范: 什么是 MicroK8s? MicroK8s 是一个功能强大、轻量级、可靠的生产就绪型 Kubernetes 发行版。它是一个企业级 Kubernetes发行版,具有较小的磁盘和内存占用,同时提供开箱即用的生产级附加组件,例如 Istio、Knative、Grafana、Cilium 等。无论您是运行生产环境还是有兴趣探索 K8s,MicroK8s 都能满足您的需求。 所以我认为这很清楚。 https://ubuntu.com/blog/introduction-to-microk8s-part-1-2 Carmine Rimi 2019-07-12T09:14:42+08:002019-07-12T09:14:42+08:00 (完全披露,我是 MicroK8s 的创造者 Canonical 的产品经理) MicroK8s 可用于生产。当然,生产要求各不相同,所以真正的答案是“视情况而定”。 如果您有 MicroK8s 的生产用例,但发现它缺少必须具备的功能,请告诉我们。您可以通过在 github 项目中提交问题来做到这一点 - https://github.com/ubuntu/microk8s。 Travis 2018-12-15T08:20:15+08:002018-12-15T08:20:15+08:00 正如评论中提到的,我最终遇到了几个他们说 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 很快提供了一种最简单的方法,可以在 30 秒内在笔记本电脑或虚拟机上启动并运行完全符合要求的本地 Kubernetes,以进行测试和软件开发。” Madalin 2021-02-19T01:09:04+08:002021-02-19T01:09:04+08:00 MicroK8s是经过认证的Kubernetes发行版,银级,可以在Cloud Native Computing Foundation的完整列表中找到:https ://www.cncf.io/certification/software-conformance/ 我会考虑任何经过认证的 Kubernetes 发行版都可以生产,但这完全取决于您将如何使用它。 roguesecurity 2021-09-21T04:58:00+08:002021-09-21T04:58:00+08:00 任何生产级软件都应该是“默认安全的”。 在生产就绪的 Kubernetes 解决方案(例如 kubeadm)的情况下,挂载到 pod 的默认服务帐户没有任何权限。 但根据microk8s 文档 默认情况下,所有经过身份验证的请求都被授权,因为 api-server 使用 --authorization-mode=AlwaysAllow 运行。 这意味着,默认情况下没有授权。这将允许任何服务帐户(包括默认帐户)调用 kube-apiserver 并执行特权操作(例如,在 kube-system 命名空间中创建和读取机密)。由于没有 RBAC,因此默认服务帐户将对集群具有集群管理员权限。这对于开发环境来说很好,但在生产环境中可能非常危险。 假设在 pod 中运行的应用程序容易受到远程代码执行等问题的影响。有可能从 pod 中突围并危及整个集群。 RBAC 可以使用microk8s enable rbac. 缺少此类设置可能会导致集群配置错误和一些问题。因此建议使用生产就绪的 Kubernetes 发行版(或一般任何软件)。
只是更新到 2020 - 这是来自规范:
什么是 MicroK8s? MicroK8s 是一个功能强大、轻量级、可靠的生产就绪型 Kubernetes 发行版。它是一个企业级 Kubernetes发行版,具有较小的磁盘和内存占用,同时提供开箱即用的生产级附加组件,例如 Istio、Knative、Grafana、Cilium 等。无论您是运行生产环境还是有兴趣探索 K8s,MicroK8s 都能满足您的需求。
所以我认为这很清楚。
https://ubuntu.com/blog/introduction-to-microk8s-part-1-2
(完全披露,我是 MicroK8s 的创造者 Canonical 的产品经理)
MicroK8s 可用于生产。当然,生产要求各不相同,所以真正的答案是“视情况而定”。
如果您有 MicroK8s 的生产用例,但发现它缺少必须具备的功能,请告诉我们。您可以通过在 github 项目中提交问题来做到这一点 - https://github.com/ubuntu/microk8s。
正如评论中提到的,我最终遇到了几个他们说 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 很快提供了一种最简单的方法,可以在 30 秒内在笔记本电脑或虚拟机上启动并运行完全符合要求的本地 Kubernetes,以进行测试和软件开发。”
MicroK8s是经过认证的Kubernetes发行版,银级,可以在Cloud Native Computing Foundation的完整列表中找到:https ://www.cncf.io/certification/software-conformance/
我会考虑任何经过认证的 Kubernetes 发行版都可以生产,但这完全取决于您将如何使用它。
任何生产级软件都应该是“默认安全的”。
在生产就绪的 Kubernetes 解决方案(例如 kubeadm)的情况下,挂载到 pod 的默认服务帐户没有任何权限。
但根据microk8s 文档
这意味着,默认情况下没有授权。这将允许任何服务帐户(包括默认帐户)调用 kube-apiserver 并执行特权操作(例如,在 kube-system 命名空间中创建和读取机密)。由于没有 RBAC,因此默认服务帐户将对集群具有集群管理员权限。这对于开发环境来说很好,但在生产环境中可能非常危险。
假设在 pod 中运行的应用程序容易受到远程代码执行等问题的影响。有可能从 pod 中突围并危及整个集群。
RBAC 可以使用
microk8s enable rbac
.缺少此类设置可能会导致集群配置错误和一些问题。因此建议使用生产就绪的 Kubernetes 发行版(或一般任何软件)。