Kubernetes概述
- 官网:https://kubernetes.io
- Github:https://github.com/kubernetes/kubernetes
# 官方概述:
Kubernetes 是一个可移植的、可扩展的开源平台,用于管理容器化的工作负载和服务,可促进声明式配置和自动化。 Kubernetes 拥有一个庞大且快速增长的生态系统。Kubernetes 的服务、支持和工具广泛可用。
Kubernetes核心组件
# 配置存储中心
etcd服务
# 主控(master)节点
be-apiserver服务
提供了集群管理的REST API接口(包括鉴权、数据校验及集群状态变更)
负责其他模块之间的数据交互,承担通信枢纽功能
是资源配额控制大的入口
提供完备的集群安全机制
kube-controller-manager服务
由一系列控制器组成,通过apiserver监控整个集群的状态,并确保集群处于预期的工作状态
Node Controller
Deployment Controller
Service Controller
Volume Controller
Endpoint Controller
Namespace Controller
Job Controller
Resource quta Controller
...
kube-scheduler服务
主要功能是接收调度pod到适合的运算节点上
预算策略(predict)
优选策略(priorities)
#运算(work)节点
kube-kubelet服务
调用对应的容器平台接口达到期望状态(运行什么容器、副本数量、网络以及存储的配置等)
定时汇报当前节点的状态给apiserver,以供调度的时候使用
镜像和容器的清理工作,保证节点上镜像不会占满磁盘空间,退出的容器不会占用太多资源
kube-proxy服务
是K8S再每个节点上运行网络代理,service资源的载体
建立了pod网络和集群网络的关系(clusterIP--->podIP)
常用三种流量调度模式
Userspace
Iptables
Ipvs
负责建立和删除包括更新调度规则、通知apiserver自己的跟新、或者从apiserver哪里获取其他kube-proxy的调度规则变化来更新自己的
# CLI客户端
kubectl
Kubernetes核心附件
# CNI网络插件:flannel/calico
# 服务发现用插件:coredns
# 服务暴露用插件:traefik
# GUI管理插件:Dashboard