Kubernetes
Kubernetes
1 介绍说明
1.1 发展历程
1、MESOS 是PACHE 下开原分布式资源管理框架 ,在 2019-5 最大使用者Twitter 全部转向为 Kubernetes
2、Docker Swarm 是开原分布式资源管理框架 ,在2019-07 阿里云宣布 Docker Swarm 集群框架从阿里云选择框架中剔除
3、 Kubernetes 由Google开发,Golang具有10年容器化基础框架
1.2 K8s概念/术语
1、Cluster 集群 K8s可利用的主机、存储和网络资源的集合。
2、Node 节点 单台主机,可以是物理的或虚拟的计算机。结点分为主结点(master)和工作结点(worker)。
3、Pod K8s中的工作单元,K8s是以Pod而非容器为单位排程的。Pod可以理解为Docker单机环境,每个Pod中包含一至多个容器,总是被启动在一个结点;一个Pod的容器在K8s集群中有相同的地址和端口范围,即容器暴露于K8s集群的端口号不可重复。
1.2 k8s特点
- 轻量级:消耗资源小
- 开源
- 弹性伸缩:可动态添加删除节点
- 负载均衡:IPVS
1.3 borg架构
1.4 k8s架构
K8s集群由 主结点和 工作结点两类结点构成。其中主结点上运行着K8s Control Plane,控制并管理着整个K8s系统;工作结点上运行用户实际部署到K8s应用
1.5 组件说明
1.5.1 主要组件说明
APISERVER:所有服务访问统一入口
CrontrollerManager:维持副本期望数目(高可用集群副本数据最好是 >= 3 奇数个)
Scheduler::负责接受任务,选择合适的节点进行分配任务
ETCD:键值对数据库 , 储存K8S集群所有重要信息(持久化的数据)
Kubelet:直接跟容器引擎交互实现容器的生命周期管理
Kube-proxy:负责写入规则至 IPTABLES、IPVS 实现服务映射访问的
1.5.2 ETCD
官方将它定义成一个可信赖的分布式键值存储服务,它能够为整个分布式集群存储一些关键数据,协助分布式集群正常运转
架构图
推荐使用
1.5.3 其他插件说明
COREDNS:可以为集群中的SVC创建一个域名IP的对应关系解析
DASHBOARD:给 K8S 集群提供一个 B/S 结构访问体系
INGRESS CONTROLLER:官方只能实现四层代理,INGRESS CONTROLLER可以实现七层代理
FEDERATION:提供一个可以跨集群中心多K8S统一管理功能
PROMETHEUS:提供K8S集群的监控能力
ELK:提供 K8S 集群日志统一分析介入平台