新的一年仍是要学习一些新技术的,先从k8s开始吧。 做为一个想成为“微服务技术专家”,除了上层类spring cloud的解决方案,服务治理方案以外,k8s做为底层基础设施,所承担的自动扩缩容,devops等功能也是微服务架构中很重要的一环。前端
k8s做为容器化操做系统,包括了部署,调度,节点集群间扩展。docker做为k8s底层的调度组件。主要具有:node
k8s的集群,通常以一组物理节点或虚拟机节点组成,在节点上部署k8s,架构图以下: spring
经过上图能够观察到一些名词:docker
Pod安装在节点上,包含一组容器和卷,同一个Pod里面的容器共享网络命名空间,可使用localhost进行通讯。pod是随时建立销毁的。api
Label是一个键值对,能够用来标记pod,service或者replication controller能够经过selectors选择带有指定label的pod。网络
经过RC能够确保任什么时候间都存在指定数量的pod副本。好比建立3个副本,k8s会监控他们,随时确保永远有3个副本在运行。架构
建立RC时,须要指定两个东西:负载均衡
多个Pod副本能够经过Service作负载均衡。微服务
因为Pod的IP是短暂的,因此引入了Service,Service是个逻辑概念,Service经过selector筛选label和Pod进行绑定。学习
在Service对pod进行绑定时会作如下事情:
Node叫作节点,通常是物理机或者虚拟机,是k8s的工做节点,node上有k8s相关的关键组件:
Master是集群的主节点,拥有K8s api server,能够对外提供rest交互,master节点能够用来建立和复制pod的RC。