【导读】目前Kubernetes官方以及开源社区都提供了非常多的优秀部署工具,大大简化了Kubernetes的部署难度。本文不限于掌握如何选择合适的工具部署一套高可用的Kubernetes平台,而是在部署实践中学习Kubernetes,对Kubernetes有个初步的宏观认识,了解Kubernetes的组件以及架构、高可用方案设计的原理,为后续集群的管理、运维以及问题诊断打下基。
1 Kubernetes简介
Kubernetes是Google开源的分布式容器集群管理平台,支持跨多主机编排容器化应用,同时为容器化的应用提供快速的部署运行、灵活的资源调度、自动服务发现和动态伸缩等一系列完整功能。
1.1 Kubernetes组件
其中Kubernetes组件架构如图:
Master组件
Master节点运行Kubernetes控制平面服务,主要包括组件如下:
-
etcd是Kubernetes最重要的存储系统,Kubernetes几乎所有的元数据都存储在etcd中,因此etcd的高可用对Kubernetes的集群整体高可用至关重要。
-
api-server: 提供开放的API接口,用户的所有请求以及组件之间交互均需要通过api-server服务,并提供认证、授权、访问控制、API 注册和发现等机制。
-
kube-scheduler: Kubernetes集群的pod调度器,