1、容器编排工具
- docker编排工具三剑客:docker compose, docker swarm, docker machine
- IDC的操作系统:mesos
- 提供容器编排框架:marathon
- kubernetes
2、DevOps
- CI:持续集成
- CD:持续交付,Delivery
- CD:持续部署,Deployment
3、k8s概述
- Kubernetes是一个开源的,用于管理云平台中多个主机上的容器化的应用,Kubernetes的目标是让部署容器化的应用简单并且高效(powerful),Kubernetes提供了应用部署,规划,更新,维护的一种机制。
4、k8s特性
- 自动装箱
- 自我修复,容器崩溃后直接重新拉起一个
- 自动实现水平扩展
- 自动实现服务发现和负载均衡
- 自动发布和自动回滚
- 秘钥和配置管理
- 存储编排
- 批量处理执行
5、k8s架构
- master:由一组节点来做管理节点,是整个集群的大脑,通常应该有3个
- API-Server:来接受请求
- Scheduler:调度器
- Controller-Manager:控制器管理器
- node01...N :由N个节点来做运行docker的节点
- Kubelet:管理node
- Docker:容器引擎
- Kube-proxy:创建/修改/删除service规则
6、Pod豌豆荚
- k8s中最小单位是pod
- 在pod中运行容器
- 在同一pod中的容器共享网络和存储
7、Label标签
- Label:标记POD对象,是POD的元数据,kv类型
- Label Selector:标签选择器,挑选指定类的POD
8、Pod的分类
- 自主式Pod
- 控制器管理的Pod
- ReplicationContrller:副本控制器,可实现滚动更新
- ReplicaSet:副本集控制器
- Deployment:只能管理无状态的应用,支持2级Pod控制器(HPA),根据业务负载扩展Pod
- StatefulSet:有状态副本集
- DaemonSet:守护副本集
- Job
- Ctonjob
9、Service对象
- 提供固定的访问地址,可以实现调度功能
- 为Pod提供转发
- 靠标签选择器来选择Pod为自己的后端
- 是一个iptables或者lvs的一条规则
- service的名可以被DNS-Pod解析
10、DNS-Pod
- AddOns:是k8s集群的一个附件
- 可实现自动添加/删除解析记录
11、k8s网络
- 物理机网络:节点网络
- service网络:集群网络
- 容器网络:pod网络
- 同一个Pod内的容器使用lo网卡通信
- 各Pod之间通过Overlay Network网络(叠加网络)通信
- Pod与Service之间通过iptables规则通信
12、etcd
- 存储所有的集群状态信息
- 一般有3个节点做冗余
- 提供resful风格的api
- 键值存储
- 内部需要ca,签署证书,以供https通信
13、flannel
- CNI:容器网络接口协议
- flannel属于CNI插件
- 管理集群的Pod网络和集群网络的网络配置
- 使用叠加网络实现
- 与flannel相同功能的插件还有:
- calico,支持网络配置和网络策略,使用IPIP隧道实现
- canel:flannel和calico结合生成的项目
posted @
2019-06-23 12:40
生生不息.连绵不绝
阅读(
311)
评论()
编辑
收藏
举报