一、kubernetes系统基础190622

一、容器编排工具

  • docker编排工具三剑客:docker compose, docker swarm, docker machine
  • IDC的操做系统:mesos
  • 提供容器编排框架:marathon
  • kubernetes

二、DevOps

  • CI:持续集成
  • CD:持续交付,Delivery
  • CD:持续部署,Deployment

三、k8s概述

  • Kubernetes是一个开源的,用于管理云平台中多个主机上的容器化的应用,Kubernetes的目标是让部署容器化的应用简单而且高效(powerful),Kubernetes提供了应用部署,规划,更新,维护的一种机制。

四、k8s特性

  • 自动装箱
  • 自我修复,容器崩溃后直接从新拉起一个
  • 自动实现水平扩展
  • 自动实现服务发现和负载均衡
  • 自动发布和自动回滚
  • 秘钥和配置管理
  • 存储编排
  • 批量处理执行

五、k8s架构

  • master:由一组节点来作管理节点,是整个集群的大脑,一般应该有3个
    • API-Server:来接受请求
    • Scheduler:调度器
    • Controller-Manager:控制器管理器
  • node01...N :由N个节点来作运行docker的节点
    • Kubelet:管理node
    • Docker:容器引擎
    • Kube-proxy:建立/修改/删除service规则

六、Pod豌豆荚

  • k8s中最小单位是pod
  • 在pod中运行容器
  • 在同一pod中的容器共享网络和存储

七、Label标签

  • Label:标记POD对象,是POD的元数据,kv类型
  • Label Selector:标签选择器,挑选指定类的POD

八、Pod的分类

  • 自主式Pod
  • 控制器管理的Pod
    • ReplicationContrller:副本控制器,可实现滚动更新
    • ReplicaSet:副本集控制器
    • Deployment:只能管理无状态的应用,支持2级Pod控制器(HPA),根据业务负载扩展Pod
    • StatefulSet:有状态副本集
    • DaemonSet:守护副本集
    • Job
    • Ctonjob

九、Service对象

  • 提供固定的访问地址,能够实现调度功能
  • 为Pod提供转发
  • 靠标签选择器来选择Pod为本身的后端
  • 是一个iptables或者lvs的一条规则
  • service的名能够被DNS-Pod解析

十、DNS-Pod

  • AddOns:是k8s集群的一个附件
  • 可实现自动添加/删除解析记录

十一、k8s网络

  • 物理机网络:节点网络
  • service网络:集群网络
  • 容器网络:pod网络
  1. 同一个Pod内的容器使用lo网卡通讯
  2. 各Pod之间经过Overlay Network网络(叠加网络)通讯
  3. Pod与Service之间经过iptables规则通讯

十二、etcd

  • 存储全部的集群状态信息
  • 通常有3个节点作冗余
  • 提供resful风格的api
  • 键值存储
  • 内部须要ca,签署证书,以供https通讯

1三、flannel

  • CNI:容器网络接口协议
  • flannel属于CNI插件
  • 管理集群的Pod网络和集群网络的网络配置
  • 使用叠加网络实现
  • 与flannel相同功能的插件还有:
    • calico,支持网络配置和网络策略,使用IPIP隧道实现
    • canel:flannel和calico结合生成的项目
相关文章
相关标签/搜索