【Docker进阶】容器与容器编排k8s

目录


1. 容器编排工具

  • 常见编排工具
    ==docker官方==
        docker machine    //docker官方提出的, 用于各平台上快速创建具有docker服务的虚拟机的技术
        docker-compose    //单机编排工具
        docker-swarm      //多主机 多容器 部署, 不是很成熟;
    ==Apache Mesos
        开源, 分布式资源管理框架;
    ==Google Kubernetes==
    
    

1.1. 概述

  • 容器本身没有价值,有价值的是“容器编排”;

2. k8s


2.1. 概述

  1. 用途:

    1. 动态对应用进行扩容;
    2. 仅仅使用需要的资源(模块化), 达到硬件优化的目的;
    3. 无缝发布应用, 包括自动发布, 自动重启, 自动复制…
  2. 优势:

    1. Go开发, 轻量级, 消耗资源少;
    2. 开源;
    3. 弹性伸缩, 负载均衡;

参考:

  1. K8S介绍

2.2. 组件

  • 组成:
    1. Master: 集群的管理节点, 1个或是1组, 3个足够;
    2. node: 提供计算资源的节点, 即运行容器的节点, 可以扩展;
    

2.2.1. Master

  1. 基本构成:
    APISERVER 所有服务访问统一入口, API Server 对外暴露了 k8s API,提供 HTTP REST 服务。
    提供了认证、授权、访问控制、API 注册和发现等机制
    
    Controller Manager 维持副本期望数目,Controller 负责维护集群的状态,比如故障检测、自动扩展、滚动更新等
    
    Scheduler 负责接收任务,选择合适的节点进行分配任务,Scheduler 负责资源的调度,
        按照预定的调度策略将 Pod 调度到相应的机器上
    
    Etcd 分布式键值对数据库,存储K8S集群所有重要数据(持久化),是一个高可用的键值对存储系统,被用作 k8s 的后端存储,
        所有集群配置数据都存储在里面,用于服务发现和集群管理,可以说是存了整个集群的状态
    

2.2.2. node

  1. 组件构成
    1.主要组件:
    Pod: 在 k8s 里面最小的部署单元不是容器而是 Pod,所以将dockfile 需要「转化」成 Pod 对象,
        再交由 k8s 创建
    Kubelet: 直接跟容器引擎交互实现容器的生命周期管理,它和 Master 节点协作,
        实现 Pod 的创建、启动、监控、重启、销毁等集群管理工作
    
    Kube-Proxy:负责写入规则至Iptables, IPVS(IP Virtual Server) 实现服务映射访问的,
        维护主机上的网络规则并执行连接转发,实现服务的负载均衡和反向代理
    
    Docker。负责用于运行容器 (或者说 Pod)
    
    fluentd。fluentd 是一个守护进程,它有助于提供集群层面日志 集群层面的日志
    
    2.其他组件:
    CoreDNS:可以为集群中的SVC创建一个域名P的对应关系解析
    Dashboard:给K8S提供一个B/S结构的访问体系
    
    Ingress Controller: 官方只能实现四层代理,Ingress可以实现七层代理
    
    Federation: 提供一个可以跨集群中心多K8S统一管理功能
    
    Prometheus:提供一个K8S集群的监控能力
    
    ELK: 提供K8S集群日志统一分析介入平台
    

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值