实例,搭建一个flask web应用
dockfile
几个概念
CI 持续集成
CD 持续交付 Delivery
CD 持续部署 Deployment
kubernetes架构
master-node模式,
master上还有三个守护进程,分别是 api-server , control manager, schduler ,
node,kubelet,docker引擎
Pod, Label,Label Select 最小运行单位,是对docker的一层抽象化,一个pod里可以运行多个docker。
特征
自动装箱,自我修复,水平扩展,服务发现和负载均衡,自动发布和回滚,秘钥和配置管理(把配置文件放到一个容器上,其他容器是现在这个容器上读取到配置文件再启动服务),存储编排,批量处理执行
通过restful api 来对对象进行操作, kubectl --> restful调用,yaml配置文件
命令式和声明式:
Kubectl run nginx ///命令
Kubectl create/delete +yaml
Kubectl apply + yaml
基石 --资源对象
所有的资源实体都可以表示为资源对象,
资源对象通过yaml描述
通过api或者kubectl来管理对象
一旦创建对象,kubenetes系统将持续工作以确保对象存在
对象模型
yaml文件
api信息
查看命令解释
使用yaml文件创建应用
Pod
流程
- 用户通过 kubectl 进行操作,如部署新的应用
- api server请求,并将其存储到Etcd
- watcher 和controlers监测到资源状态的变化,并进行操作
- replicaSet watcher/controller 监测到新的app,创建新的pod达到期望的实例个数
- Scheduler 将新的pod分配到Kubelet
- kubelet 监测到 pods 并通过容器运行时部署他们
- kubeproxy 管理pod网络,包括服务发现,负载均衡
命令行