易于混淆的两个技术:Kerberos与Kubernetes辨析
作者:chszs,未经博主允许不得转载。经许可的转载需注明作者和博客主页:http://blog.csdn.net/chszs
Kerberos介绍
Kerberos是一个网络授权验证协议,源于麻省理工学院,其第一个公开发行版为Kerberos V4。在得到广泛使用后,继续发布了Kerberos V5版,随后Kerberos V5成为IETF的标准。Kerberos的设计目标是通过使用密钥加密技术,为客户端/服务器架构的应用提供一个强授权验证机制。要注意一点,Kerberos协议仅用于验证用户的身份,它本身不提供授权访问。也即,Kerberos的票据仅仅用来证明这个用户就是他自己声称的那个用户。在用户身份得以确认后,本地的安全权限将决定给予访问权限或者拒绝访问。
Kerberos V5协议规定了以下机制:
- 验证用户身份
- 安全的打包用户名和用户的身份信任凭证到票据
- 安全的传输用户信任凭证
Kubernetes介绍
Kubernetes是基于 Google 自身多年使用 Linux 容器的经验创建出来的,所以可以说它是 Google自身多年操作经验的一个复制,只是 google 把这些操作经验应用到了 Docker 上。 使用Kubernetes 来管理容器在多个方面都将带来很大的好处,而其中最重要的就是 Google 把他们多年使用容器的经验带入了这个工具。如果你是从 Docker1.0 (或者更早之前的版本)开始使用Kubernetes,你会发现使用 Kubernetes 来管理 Docker 容器是非常愉悦的体验。Kubernetes 解决了许多 Docker 自身的问题。通过 Kubernetes,你可以在容器中使用实际的物理存储单元,从而我们可以很方便的把容器移动到其他机器上,而不丢失任何数据; Kubernetes 使用 flannel 来创建容器之间的网络;Kubernetes 集成了 load balancer;Kubernetes 使用 etcd 来实现服务发现,诸如此类的东西还有很多。但是使用 Kubernetes 是要付出一定的代价爱的,比如,Kubernetes 使用了一个完全不同于 Docker 的 CLI (Command Line Interface),不同的 API 以及不同的 YAML 配置定义。换句话说,如果你使用Kubernetes,那么你将完全不能使用 Docker 自带的CLI,也不能使用 Docker Compose 来定义(创建)容器。使用 Kubernetes,你必须为 Kubernetes 重新创建所有和Docker 容器管理相关的东西,因此我们可以认为 Kubernetes 并不是为了 Docker创建的(从一定意义上说是正确的)。Kubernetes 提升了 Docker 容器集群的管理层次,但同时它的学习曲线也是非常陡峭的。
Kubernetes 是Google开源的容器集群管理系统,基于Docker构建一个容器的调度服务,提供资源调度、均衡容灾、服务注册、动态扩缩容等功能套件。
Kubernetes的特征如下:
- Lean:轻量级、简单、易访问
- Portable:支持公有云、私有云、混合云等
- Extensible:模块化、可插拔、可钩挂(Hookable)、可组合
- Self-healing(自我修复):自动安置、自动重启、自动复制
Kubernetes的关键概念:
Cluster
集群是一组物理机或虚拟机,用于让Kubernetes运行应用程序的。
Node
节点是一个物理机或虚拟机,上面运行着Kubernetes,它上面的Pod可以被调度。
Pod
在Kubernetes系统中,调度的最小颗粒不是单纯的容器,而是抽象成一个Pod,Pod是一个可以被创建、销毁、调度、管理的最小的部署单元。比如一个或一组共享卷的容器。
Replication Controllers
复制控制器用于管理Pod的生命周期。它可以确保给定数量的Pod在给定的时间范围运行,且可以创建或杀死Pod。
Services
服务为一组Pod提供了单一的、稳定的名字和地址,是负载均衡器的基础。
Labels
标签用于组织和选择对象组,通过键值对的方式。