k8s笔记
------------恢复内容开始------------
主要作用:部署管理集群
传统部署缺点:无法做资源隔离
虚拟化部署:优点:资源隔离,缺点:虚拟机本身的系统占用硬件资源,造成浪费
容器时代:服务器上安装docker环境,我们的应用都是以容器的形式跑在docker上的,我们的应用可以打包成镜像,镜像可以生成容器,容器可以做到资源隔离,而且本身占用少量的系统资源
官方swarm来编排服务器:缺点是比较粗糙
服务发现和负载均衡:不仅限于java应用,是更广泛级别的
存储编排:存储的位置更加灵活,随意挂载,也可以采用集群模式
调度:找到最合适的地方部署服务
自动恢复:结点不响应,再另外一个结点重新部署
水平伸缩:发现比较忙的服务,例如cpu即将耗尽的结点,然后部署多个
k8s采用的是主从方式部署的:
master组件:调度node来部署服务
node组件:具有docker环境,用来真正运行服务的
主从方式的架构:
如果不指定镜像仓库,默认的就是dockerhup
apiServer用来接受外部命令
etcd用来存主结点的数据,是一个键值数据库
scheduler用来调度,例如收到部署redis的命令,命令会先存在etcd里,scheduler从etcd中获取命令后会选择一台合适的进行部署
controller:有很多种,每一种有不同的功能,例如结点控制器在结点出现问题时会进行响应
node结点:
kuberlet:是整个node结点的代理,保证多个容器运行在pod中构成一个功能,一个pod中可以有多个容器,也可以有一个容器,负责维护容器的生命周期,同时负责文件挂载csi和网络管理cni
docker:容器运行时环境
kube-proxy:发现和负载均衡pod
fluentd:负责整个结点的日志收集
pod组织container,service组织pod,我们访问service,service通过负载均衡选择一个pod
label标签:用来做筛选
namespace用来做逻辑隔离
具体流程:
nat网卡用于访问外网
host-only用于虚拟机与主机之间互相访问
------------恢复内容结束------------