一个计算机技术爱好者与学习者

0%

Kubernetes 多租户面临的挑战

使用 Kubernetes 的过程中,企业和个人用户在资源共享和安全性方面均面临着诸多挑战。首当其冲的就是企业环境中多租户形态该如何定义,租户的安全边界该如何划分。

多租户是一种常见的软件架构,简单概括就是在多用户环境下实现资源共享,并保证各用户间数据的隔离性。

多租户要解决两大问题:逻辑层面的资源隔离;物理资源的隔离。

逻辑层面的资源隔离主要包括 API 的访问控制,针对用户的权限控制。Kubernetes 中的 RBAC 和命名空间 (namespace) 提供了基本的逻辑隔离能力,但在大部分企业环境中并不适用。企业中的租户往往需要跨多个命名空间甚至是多个集群进行资源管理。除此之外,针对用户的行为审计、租户隔离的日志、事件查询也是不可或缺的能力。

物理资源的隔离主要包括节点、网络的隔离,当然也包括容器运行时安全。您可以通过 NetworkPolicy 对网络进行划分,通过 PodSecurityPolicy 限制容器的行为,Kata Containers 也提供了更安全的容器运行时。

为了解决上述问题,KubeSphere 提供了基于 Kubernetes 的多租户管理方案。

参考文档:

阅读全文 »

KubeSphere简介

KubeSphere 愿景是打造一个以 Kubernetes 为内核的云原生分布式操作系统,它的架构可以非常方便地使第三方应用与云原生生态组件进行即插即用(plug-and-play)的集成,支持云原生应用在多云与多集群的统一分发和运维管理。

简单来说,KubeSphere(下文简称ks)就是一个容器管理平台,可以图形化管理多个K8S集群。

相关链接:

阅读全文 »

需求描述

docker的默认工作目录是/var/lib/docker,会存放镜像文件、容器日志和写入到容器临时目录的文件等,默认挂载在系统盘。

kubelet的默认工作目录是/var/lib/kubelet,会存放volume文件(包括emptyDir volume)、plugin文件等,也是默认挂载在系统盘。

使用kubeadm安装的etcd,默认数据目录是/var/lib/etcd,也是默认挂载在系统盘。

而系统盘一般都不会太大,因此最好把docker工作目录、kubelet工作目录和etcd数据目录更改到数据盘。

阅读全文 »

需求描述

一些情况下,我们需要先把某个master节点从k8s集群中摘除掉,进行某些操作之后再加入到集群。
或者,我们需要先把某个master节点从k8s集群中摘除掉,然后把这个节点加入到另外一个k8s集群。

本文中,我们就来研究一下从k8s集群中摘除一个master节点再重新加入集群的方法。(worker节点太简单,不再单独讨论)

阅读全文 »

需求描述

使用kubeadm安装的etcd,默认数据目录是/var/lib/etcd,默认挂载在系统盘。

而系统盘一般都不会太大,因此最好把etcd的数据目录更改到数据盘。

本文中,我们会把etcd的数据目录从/var/lib/etcd改到/data/etcd,其中/data目录挂载了数据盘。

阅读全文 »