kubernetes介绍
[*] 容器编排工具
Docker 编排三剑客
docker compose单机编排工具
docker swarm
docker machine
ASF:mesos
marathon
kubernetes
DevOps,MicroServices,Blockchain
DevOps:应用模式开发,一种趋势
CI:持续集成
CD:持续交付,Delivery
CD:持续部署,Deployment
应用程序架构
单体 --> 分层架构 --> 微服务
[*] Kubernetes介绍
简介
Kubernetes(舵手,常简称为K8s)是用于自动部署、扩展和管理容器化(containerized)应用程序的开源系统。Google设计并捐赠给Cloud Native Computing Foundation(今属Linux基金会)来使用的。它旨在提供“跨主机集群的自动部署、扩展以及运行应用程序容器的平台”。它支持一系列容器工具, 包括Docker等。CNCF于2017年宣布首批Kubernetes认证服务提供商(KCSPs),包含IBM、华为、MIRANTIS、inwinSTACK迎栈科技等服务商。
代码托管在GitHub之上:https://github.com/kubernetes
版本:2015.71.0版 ---> 20181.1版本
特性
自动装箱,自我修复,水平扩展,服务发现和负载均衡,自动发布和回滚,密钥和配置管理,存储编排,批处理
官方站点
https://kubernetes.io/cn/
https://www.kubernetes.org.cn/meetup 中文社区
集群
没有中心节点集群;
有中心节点集群;
K8S架构:master/nodes(worker)
组件
Master组件
kube-API Server:接收请求,解析请求,处理请求
三类节点组成:各节点间使用https进行通信
Master
Etcd
Node
kube-Scheduler:调度器,调度容器创建请求;观测每个node之上CPU和存储资源,并根据用户请求创建容器的最低需求把用户请求调度到相应node之上;两级调度方式:先做预选,后做优选
kube-Controller Manager:控制器管理器,来监测控制器是否健康;控制器:在本地loop进行持续性探测容器是否健康;
Master的数据存储:etcd
最少有三个节点:节点与节点间通过https通信
监听端口:
集群内部通信:点对点证书,https
向客户端提供服务
Node组件
kubelet:集群代理,与master通信,接收master调度来的各种任务来执行;启动Pod,管理Pod
docker:容器引擎,来运行Pod中容器
kube-proxy:随时与API Server进行通信,管理Service
核心术语
Pod:容器的外壳,Pod是k8s系统之上最小调度逻辑单元;Pod内部能放一个或多个容器,Pod类似于虚拟机;同一个Pod内的各容器共享存储卷;一般一个Pod内只放一个容器,如果放多个容器,则有一个容器为主容器,其他容器为边车容器;有生命周期的对象
Pod分类
自主式Pod,自我进行管理
控制器管理的Pod
Pod常见控制器
ReplicationController副本控制器,滚动更新,回滚操作
ReplicaSet副本级管制器
Deployment管理无状态应用,支持二级控制器:HPA
StatefulSet
DaemonSet
Job
Cronjob
Label:标签;key=value
Selector 标签选择器:根据标签来过滤符合条件的资源对象的机制
AddOns:附加组件(附件)
DNS
监控
Service
名称空间
网络模型
节点网络
集群网络(Service network)
Pod网络
三类通信模型
同一Pod内的多个容器间通信:lo
各Pod之间的通信:Overlay Network,叠加网络
Pod与Service之间的通信
k8s通过CNI插件体系来接入外部的网络服务解决方案,以附件的方式托管在集群之上
CNI:Container Network Interface 容器网络接口
flannel:网络配置
calico:网络配置,网络策略
canel:网络配置+网络策略
...
页:
[1]