K8S简介
所属分类 k8s
浏览量 909
K8S介绍
容器与容器编排
常见的编排工具
K8S 介绍
k8s能做什么
k8s 优势
K8S架构
网络结构
Master 节点
组件介绍
Node节点
组件介绍
⼀个容器,就是⼀个进程
容器镜像就是这个系统⾥的安装包
编排
多个容器组成一个集群
常见的编排工具
docker 官方编排工具
docker-machine docker官方
docker-compose 单机编排工具
docker-swarm 解决多主机多个容器调度部署
Apache Mesos
开源的分布式资源管理框架,分布式系统的内核,底层使用marathon编排框架
Google Kubernetes
开源的自动化容器操作平台,操作包括部署,调度和节点集群间扩展等
目前最流行的容器编排工具
Kubernetes k8s
容器本身没有价值,有价值的是“容器编排”
k8s能做什么
可以动态的对应用进行扩容
可以仅仅使用需要的资源(模块化),达到优化硬件的目的
可以无缝的发布应用,包括自动发布,自动重启,自动复制....
k8s 优势
Go语言开发
轻量级-消耗资源小
开源
弹性伸缩
负载均衡
Kubernetes 是一个集群,整合多台计算机的计算能力
K8S 集群中主机分为两种角色
Master 集群的管理节点,有一个或者一组节点,一般 3 个足够
node 提供计算资源的节点,就是运行容器的节点,可以扩展
客户端创建启动容器的请求交给 Master ,Master 上有一个调度器它能分析各 nodes 节点上的资源状态,
找一个最适合运行用户容器的节点,并在这个节点上使用 Docker 启动这个容器,
node 节点的 Docker 在启动容器时候会首先检查本地有没有镜像,如果没有就从仓库中 pull 然后运行。
Master 节点
APISERVER 所有服务访问统一入口, API Server 对外暴露了 k8s API,提供 HTTP REST 服务。
提供了认证、授权、访问控制、API 注册和发现等机制
Controller Manager 维持副本期望数目,Controller 负责维护集群的状态,比如故障检测、自动扩展、滚动更新等
Scheduler
负责接收任务,选择合适的节点进行分配任务,
Scheduler 负责资源的调度,按照预定的调度策略将 Pod 调度到相应的机器上
Etcd
分布式键值对数据库,存储K8S集群所有重要数据(持久化),是一个高可用的键值对存储系统,被用作 k8s 的后端存储,
所有集群配置数据都存储在里面,用于服务发现和集群管理,可以说是存了整个集群的状态
Node节点
Pod
在 k8s 里面最小的部署单元不是容器而是 Pod,所以将dockfile 需要「转化」成 Pod 对象,再交由 k8s 创建
Kubelet
直接跟容器引擎交互实现容器的生命周期管理,它和 Master 节点协作,实现 Pod 的创建、启动、监控、重启、销毁等集群管理工作
Kube-Proxy
负责写入规则至Iptables, IPVS(IP Virtual Server) 实现服务映射访问的,
维护主机上的网络规则并执行连接转发,实现服务的负载均衡和反向代理
Docker
负责用于运行容器 (或者说 Pod)
fluentd
fluentd 是一个守护进程,它有助于提供集群层面日志 集群层面的日志
其他组件:
CoreDNS
Dashboard
给K8S提供一个B/S结构的访问体系
Ingress Controller
官方只能实现四层代理,Ingress可以实现七层代理
Federation
提供一个可以跨集群中心多K8S统一管理功能
Prometheus
提供监控能力
ELK
提供K8S集群日志统一分析平台
上一篇
下一篇
shiro实例
职场修炼心法
Java 位运算实例
十六条实用的人生经验
dubbo 分布式追踪 traceId 传递要点
dubbo之RpcContext