8. k8s背景介绍
B站视屏地址: k8s从0到1入门_哔哩哔哩 (゜-゜)つロ 干杯~-bilibili
介绍
Kubernetes是一个可以移植、可扩展的开源平台,使用 声明式的配置 并依据配置信息自动地执行容器化应用程序的管理。在所有的容器编排工具中(类似的还有 docker swarm / mesos等),Kubernetes的生态系统更大、增长更快,有更多的支持、服务和工具可供用户选择。
什么是容器化?
虚拟化技术定义: 通过虚拟化技术将一台计算机虚拟为多台逻辑计算机
在一台计算机上同时运行多个逻辑计算机,每个逻辑计算机可运行不同的操作系统,并且应用程序都可以在相互独立的空间内运行而互不影响,从而显著提高计算机的工作效率。
分类
- 硬件级虚拟化(虚拟机)
- 定义: 运行在硬件之上的虚拟化技术
- 目的: 模拟一个完整的操作系统
- 常见管理软件: virtualbox,VMware
- 操作系统级虚拟化(容器化)
- 定义: 运行在操作系统之上的虚拟化技术
- 目的: 模拟运行在操作系统之上的多个不同的进程,并将其封装在一个密闭的容器中
- 常见管理软件: docker,rktlet,containerd,cri-o
为什么使用容器?
- 传统的应用部署方式定义:通过插件或者脚本来安装应用
- 缺点
- 不利于应用的升级和更新/回滚操作
- 可以使用虚拟机, 但是虚拟机太重或者说是麻烦,移植性差
- 缺点
- 容器的优势
- 快速创建/部署应用
- 持续开发/集成和部署
- 开发和运行隔离
- 开发/测试/生产 环境的一致性
- 跨平台:操作系统的平台无关性
- 资源隔离
- 资源利用
常见的容器技术
- docker
- rktlet
- cri-o
- containerd
使用容器产生的问题?(为什么会诞生k8s?)
google 发行的k8s
前提: 当大规模使用容器技术时, 产生的问题
实践产生的问题
- 跨主机的容器之间的通信问题-flannel网络插件
- 服务发现问题
- 容器监控问题-etcd组件
- 容器镜像版本和更新问题-安全性,容器化的流程
这就是容器编排带来的问题
容器编排工具 k8s
容器编排工具 解决容器编排带来的问题
常见的容器编排工具:
- k8s
- docker swarm
- mesos
k8s的作用:
- 快速部署应用
- 快速水平扩容
- 不停机滚动更新
- 节省硬件资源
- 自动扩缩容
- 应用健康监测
- 服务发现与负载均衡
- 秘钥管理
- 存储挂载
关于理解k8s的注意点:
- 不限制应用程序的类型
可以部署任何语言的应用服务,比如Java,node,php,go - 不部署源码、不编译或构建应用程序 maven,Jenkins
- 运行的是容器
- 容器已经经过编译打包构建等流程
- 不提供应用程序级别的服务,包括:中间件(例如,消息总线)、数据处理框架(例如,Spark)、数据库(例如,mysql)、缓存(例如,Redis),或者分布式存储(例如,Ceph)。此类组件可以在 Kubernetes 上运行,或者可以被运行在 Kubernetes 上的应用程序访问
- 不限定日志、监控、报警的解决方案
联系我: suveng@163.com qq: 1344115844
网友评论