k8s集群搭建指南

一、简介

Ansible

Docker

  Docker compose,docker swarm,docker machine

  Mesos,marathon

  Kubernetes(占据80%的市场)

DevOps:

  Devops,MicroServices,Blockchain

    CI:持续集成

    CD:持续交付,Delivery

    CD:持续部署,Deployment

      Plan-设计-开发-构建-测试(自动实现这一系列流程叫持续集成)

        -运维(获取打包好的包叫持续交付)

        - 持续部署

K8s(剁手,飞行员):

Borg

  https://github.com/kubernetes

 

  自动装箱(自动完成部署)

  自我修复

  水平扩展

  服务发现和负载均衡

  自动发布和回滚

  秘钥和配置管理集中化(配置中心)

  存储编排

  批量处理执行

集群:

  许多台主机当成一台主机来使用

  有中心节点架构的模型

  Master/nodes

  Master(高可用,3)

    组件叫API Server

    调度器(scheduler):负责观测node的节点资源使用情况(预选,优选)

    控制器管理器(controller manager)---主备

 

  Nodes(worker):运行容器的节点

    Client->master-node

    Kubelet:集群代理(启动并管理pod)

    容器引擎:docker

 

  Pod:k8s最小的调度的逻辑单元

    容器的外壳,pod内运行容器,共享natutsipc

    共享存储卷

    一般来说一个pod内只放一个容器

    在一个资源池内进行统一管理(dockfile中打标签来进行区分)

     

    Label Selector:标签选择器

    Label: K=v

 

Master/node

  Pod分类:

    自主式pod

    控制器管理的pod

      replicationController:副本控制器

        管理pod状态

        滚动更新

      replicaSet

      Deployment(管理无状态的pod)

      statefuSet(有状态的)

      DaemonSet

      Job,cronjob

 

  HPA(HorizonTalPodAutoscaler):自动控制器,根据负载需求调整pod个数

    Pod生命周期需要用到服务发现机制

      Service管理pod(调度),根据label标签来关联pod对象

      Client - >service -> pod*N

      DNSservice进行解析

    AddOns:附件(附加组件)

 

  客户端和pod之间的桥梁:service(固定不变)

    Label(标签):固定不变,连接service-----名称解析(DNS)

NMT

  Nginx对外:

  Tomcat

  M:db

   

 

  LBaas

 

 

  K8s网络(三个网段的网络)

    Pod网络

    Service(集群)网络(虚拟网络只存在与iptablesipvs之中)

    节点网络

  Overlay Network,叠加网络

    同一个pod内的多个容器间:lo

    各个pod之间的通信(snat-dnat,两级pod转换),通过主机访问pod

    Podservice之间的通信(宿主机规则)

 

  Kube-proxy:

    对service进行管理

  共享存储

    Etcd

 

 

  CNI:容器网络接口(网络解决方案)

    Flannel:网络配置(叠加网络)

    Calico:支持网络配置和网络策略(三层隧道网络)

    Canel(Flannel+Calico):

架构图:

     

     

      

 

posted @ 2019-03-19 17:55  李永三  阅读(1915)  评论(1编辑  收藏  举报