读书摘要系列之《读书摘要系列之《kubernetes权威指南权威指南·第四版》第一章:第四版》第一章:
kubernetes入门入门
《《kubernetes权威指南权威指南·第四版》第一章:第四版》第一章:kubernetes入门入门
k8s底层除了用docker,也可以用rocker,rocker是coreOS推出的竞争性产品
service和pod之间的关系通过Lable来绑定
pod最底层有pause容器(pod的根容器),用来pod内部docker之间的网络通信和数据共享(业务容器共享pause的网络栈和
Volume挂载卷);sidecar容器可以先于正常业务启动
所有的资源对象都可以通过kubectl(API编程)实现增删查改到etcd中进行持久化存储
API版本:extensions/v1beta1,apps/v1beta1(我们现在用的这个,其实已经被淘汰了),apps/v1beta2,1.9版本之后用
app/v1
yaml文件中,annotations这个可以新增多条属性,等属性稳定之后会过渡成正式属性
有一种静态的pod,仅运行在node上,不在etcd库中
滚动升级:逐渐升级service的每一个pod
pod(Deployment)其实有回滚以及暂停的功能(暂停之后可以恢复)
以前以为pod的管理对象只有Deployment,但实际上有RC、Deployment、ReplicaSet、DaemonSet、StatefulSet、Job等,
用于不同的应用场景
有状态服务:StateSet(headlessService,pod没有clusterIP。如果解析headlessService的DNS域名,返回的事Service对应
的pod的endPoint列表)
服务的每一个pod都有稳定唯一的网络标识
pod副本的启动顺序是一定的
采用稳定的持久卷,删除pod不会删除服务数据
每一个stateset服务都需要声明其属于哪一个headless service
node节点内部的智能软件负载均衡器由kube-proxy完成,将service的请求转发到pod实例中,在内部实现服务的负载均衡与
会话保持机制。
正常pod的endpoint地址会随着pod的销毁和重建而发生改变。
一个服务可以有多个端口,一个端口提供业务服务,另外一个端口提供管理服务。
k8s服务发现机制
早期:采用linux变量,每个pod容器启动是,自动注入环境变量:固定的命名规范找到ip和port
现在:dns发现机制,借助于kube-dns
k8s内有三种ip
node ip:集群物理节点的ip地址
pod ip:每个pod的ip地址,通过docker engine根据docker0网桥的ip地址段进行分配的。集群内部通过pod之间通过这个虚拟
二层网络。真实TCP/IP流量从物理网卡流出
cluster ip:k8s自行管理和分配IP地址;无法被ping通,因为没有对应的实体网络对象
node port:在集群的每一个node上都为需要外部访问的service,开启对应的tcp监听端口
node间的负载均衡
公有云支持,私有云的还在被开发:service的type从nodeport改成loadbalance 19. job的概念
批处理任务:可以并行(或者串行)启动多个计算进程去处理一批工作项;通过job定义并启动一个批处理任务。
原理:控制一组pod副本,pod运行结束job也就结束了。1.5版本之后有cronjob,解决批处理任务需要定时反复执行的问题;
job支持多实例并行运行
Volume的概念(扩展出ConfigMap,容器配置文件集中化定义与管理)
volumn是pod中能够被多个容器访问的共享目录。volumn和pod的生命周期相关,和docker的生命周期不相关【pod中的根容
器】
使用方法:pod上声明一个volumn,然后在容器里引用该volume并挂载到容器的某个目录上
几种类型
评论0