civilvar 发表于 2018-9-15 11:20:58

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]
查看完整版本: kubernetes介绍