一. Kubernetes(K8S)简介
Kubernetes (K8S) 是一个为 容器化应用 提供 集群部署 和 管理 的开源工具,和docker swarm类似,由 Google 开发.Kubernetes 这个名字源于希腊语,意为 “ 舵手 ” 或 “ 飞行员 ” , k8s 这个缩写是因为 k 和 s 之间有八个字符的关系, Google 在 2014 年开源了 Kubernetes 项目主要特性:
- 高可用,不宕机,自动灾难恢复
- 灰度更新,不影响业务正常运转
- 一键回滚到历史版本
- 方便的伸缩扩展(应用伸缩,机器加减)、提供负载均衡
- 有一个完善的生态
1.不同的应用部署方案
(1).传统部署方式
应用直接在物理机上部署,机器资源分配不好控制,出现 Bug 时,可能机器的大部分资源被 某个应用占用,导致其他应用无法正常运行, 无法做到应用隔离
(2).虚拟机部署
在单个物理机上运行多个虚拟机,每个虚拟机都是完整独立的系统, 性能损耗大
(3).容器部署
所有容器 共享主机的系统 ,轻量级的虚拟机, 性能损耗小 , 资源隔离 , CPU和内存可按需分配
2.什么时候需要Kubernetes
- 当应用只是跑在一台机器,直接一个docker + docker-compose就够了,方便轻松
- 当应用需要跑在3,4台机器上,依旧可以使用每台机器单独配置运行环境 + 负载均衡器
- 当应用需要跑在10,20 台机器上,可以使用Docker+Swarm部署
- 当应用访问数不断增加,机器逐渐增加到几十台、上百台、上千台时,每次加机器、软件更新、版本回滚,都会变得非常麻烦,这个时候就可以使用K8s
Kubernetes可以提供 集中式管理集群 的方法, 加机器、版本升级、版本回滚 ,那都是一个命令就搞定的事, 不停机的灰度更新 ,确保 高可用、高性能、高扩展国内很多云厂商对K8s 都有很好的支持,当应用并发量比较大的时候可以动态创建 k8s节点()服务器), 当应用并发量高峰过去以后又可以 动态的减少K8s节点( 服务器)
3.Kubernetes集群架构
和docker swarm 相似,由主节点Master和工作节点Worker组成
master
主节点,控制平台, 不需要很高性能 , 不跑任务 ,通常一个就行了,也可以开多个主节点来提高集群可用度
worker
工作节点 ,可以是 虚拟机 或 物理计算机 , 任务都在这里跑 ,机器性能需要好点,通常都有很多个,可以 不断加机器扩大集群
二.安装Kubernetes集群
1.安装方式介绍
(1).直接使用云平台安装Kubernetes
实际上云平台就是一个云服务器(就是一个集群),只不过在上面已经搭建好了 Kubernetes,