Kubernetes,又称为 k8s(首字母为 k、首字母与尾字母之间有 8 个字符、尾字母为 s,所以简称 k8s)或者简称为 “kube” ,是一种可自动实施 Linux 容器操作的开源平台。它可以帮助用户省去应用容器化过程的许多手动部署和扩展操作。也就是说,您可以将运行 Linux 容器的多组主机聚集在一起,由 Kubernetes 帮助您轻松高效地管理这些集群。

kubernetes的特点
轻量级:消耗资源小,只有几十兆b
开源
弹性伸缩
负载均衡:IPVS

Borg 是Kubernetes 的前身,多年来开发Borg 的经验教训成了影响Kubernetes 中许多技术的主要因素。

kubernetes的基本概念和术语 kubernetes的特点包括_分布式集群


k8s架构

kubernetes的基本概念和术语 kubernetes的特点包括_分布式集群_02


etcd的官方将它定位成一个可信赖的分布式键值存储服务,它能够为整个分布式集群存储一些关键数据,协助分布式集群正常运转。k8s集群使用Etcd V3,V2版已在k8s v1.11中弃用

V3版是将数据存储在数据库中(持久化)

V2版是将数据存储在内存

kubernetes的基本概念和术语 kubernetes的特点包括_分布式集群_03

ETCD内部结构

kubernetes的基本概念和术语 kubernetes的特点包括_持久化_04


服务分类

有状态服务:DBMS

无状态服务:LVS APACHE

高可用集群副本数据最好是 >= 3 奇数个

插件说明

APISERVER:所有服务访问统一入口

CrontrollerManager:维持副本期望数目

Scheduler::负责介绍任务,选择合适的节点进行分配任务

ETCD:键值对数据库 储存K8S集群所有重要信息(持久化)

Kubelet:直接跟容器引擎交互实现容器的生命周期管理

Kube-proxy:负责写入规则至 IPTABLES、IPVS 实现服务映射访问的

COREDNS:可以为集群中的SVC创建一个域名IP的对应关系解析

DASHBOARD:给 K8S 集群提供一个 B/S 结构访问体系

INGRESS CONTROLLER:官方只能实现四层代理,INGRESS 可以实现七层代理

FEDERATION:提供一个可以跨集群中心多K8S统一管理功能

PROMETHEUS:提供K8S集群的监控能力

ELK:提供 K8S 集群日志统一分析介入平台