认识kubernetes
kubernetes含义、起源、归属
含义
起源
● 源自于谷歌Borg ● 使用golang语言开发 ● 简称为k8s
归属
现归属于CNCF
● 云原生(CloudNative)计算基金会
● 是一个开源软件基金会,致力于使云计算普遍性和持续性
● 官方:http://www.cncf.io
kubernetes版本
● 2014年9月第一个正式版本
● 2015年7月1.0版本正式发布
● 现在稳定版本为1.23
● 主要贡献者:Google,Redhat,Microsoft,IBM,Intel
● 代码托管github:https://github.com/kubernetes/
Kubernetes网址
● 官方网址
https://kubernetes.io/
https://kubernetes.io/zh/
中文社区:
kubernetes架构
软件架构说明
● 有中心节点分布式架构
○ hadoop集群
○ ceph集群
● 无中心节点分布式架构
○ glusterFS
● kubernetes是具有中心节点的分布式架构,也就是说有master管理节点
○ Master Node
■ 中心节点
■ manager
■ 简单叫法
● master节点
○ Minion Node
■ 工作节点
■ worker
■ 简单叫点
● node节点
● worker节点
Kubernetes架构图示图
Kubernetes集群节点组件
Master节点组件
master节点是集群管理中心,它的组件可以在集群内任意节点运行,但是为了方便管理所以会在一台主机上运行Master所有组件,并且不在此主机上运行用户容器
Master组件包括:
- kube-apiserver:用于暴露kubernetes API,任何的资源请求/调用操作都是通过kube-apiserver提供的接口进行。
- kube-controller-manager:控制器管理器,用于对控制器进行管理,它们是集群中处理常规任务的后台线程。
- kube-scheduler:监视新创建没有分配到Node的Pod,为Pod选择一个Node运行。
- ETCD是kubernetes提供默认的存储系统,保存所有集群数据。
Node节点组件介绍
node节点用于运行以及维护Pod, 管理volume(CVI)和网络(CNI),维护pod及service等信息
Node组件包括:
- kubelet:负责维护容器的生命周期(创建pod,销毁pod),同时也负责Volume(CVI)和网络(CNI)的管理
- kube-proxy :通过在主机上维护网络规则并执行连接转发来实现service(iptables/ipvs),随时与apiserver通信,把Service或Pod改变提交给apiserver,保存至etcd(可做高可用集群)中,负责service实现,从内部pod至service和从外部node到service访问。
- Container Runtime
- 容器运行时(Container Runtime)
- 负责镜像管理以及Pod和容器的真正运行
- 支持docker/containerd/Rkt/Pouch/Kata等多种运行时
Add-ons介绍
Add-ons(附件)使功能更丰富,没它并不影响实际使用,可以与主体程序很好结合起来使用
- coredns/kube-dns: 负责为整个集群提供DNS服务
- Ingress Controller 为服务提供集群外部访问
- Heapster/Metries-server 提供集群资源监控(监控容器可以使用prometheus)
- Dashboard 提供集群GUI
- Federation 提供跨可用区的集群
- Fluentd-elasticsearch 提供集群日志采集、存储与查询