• 容器编排工具

    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.7  1.0版 ---> 2018  1.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:网络配置+网络策略

                ...