kubernetes(1): kubernetes简介和组件

kubernetes(1):kubernetes简介和组件

http://k8s.unixhot.com/kubernetes/kubernetes-introduce.html

https://kubernetes.io/zh/docs/concepts/overview/what-is-kubernetes/

https://jimmysong.io/kubernetes-handbook/concepts/

https://github.com/opsnull/follow-me-install-kubernetes-cluster

1 Kubernetes简介:

Kubernetes 源于希腊语,意为 “舵手” 或 “飞行员”,是用于自动部署,扩展和管理容器化应用程序的开源系统,由于K和S之间有8个字母,被简称为K8S。Kubernetes 构建在 Google 15 年生产环境经验基础之上,可以将Kubernetes看作为Google内部的容器管理平台Brog的开源版本,当然他们之间是有一些差异的。

Kubernetes 是一个跨主机集群的 开源的容器调度平台,它可以自动化应用容器的部署、扩展和操作 , 提供以容器为中心的基础架构。

使用 Kubernetes, 您可以快速高效地响应客户需求:

  • 快速、可预测地部署您的应用程序
  • 拥有即时扩展应用程序的能力
  • 不影响现有业务的情况下,无缝地发布新功能
  • 优化硬件资源,降低成本

目标是构建一个软件和工具的生态系统,以减轻您在公共云或私有云运行应用程序的负担。

 

Kubernetes 具有如下特点:

  • 便携性: 无论公有云、私有云、混合云还是多云架构都全面支持
  • : 它是模块化、可插拔、可挂载、可组合的,支持各种形式的扩展
  • 自修复: 它可以自保持应用状态、可自重启、自复制、自缩放的,通过声明式语法提供了强大的自修复能力

2 Kubernetes系统架构-组建

Kubernetes被设计为Master和Node两个角色,这类似于OpenStack的架构理念,Master为控制节点,Node为计算节点或者叫工作节点,在Master节点上有一个API Server服务,对外提供标准的RestAPI,这也是Kubernetes集群的入口,意外着只要和集群进行交互必须连接到API Server上。

 

 

 

2.1  Master节点组件

Kubernetes Master节点主要有4个组件,API Server、Scheduler、Controller、etcd。如下图所示

 

 

  • API Server:提供Kubernetes API接口,主要处理 Rest操作以及更新Etcd中的对象。是所有资源增删改查的唯一入口。
  • Scheduler:绑定Pod到Node上,主要做资源调度。
  • Controller Manager:所有其他群集级别的功能,目前由控制器Manager执行。资源对象的自动化控制中心,Kubernetes集群有很多控制器。
  • Etcd:所有持久化的状态信息存储在Etcd中,这个是Kubernetes集群的数据库

 

2.2  Node节点组件

Node节点是Kubernetes集群的工作节点,在Node节点上主要运行了Docker、Kubelet、kube-proxy三个服务(Fluentd请先忽略),如下图所示:

 

  • Docker Engine:负责节点的容器的管理工作,最终创建出来的是一个Docker容器。
  • Kubelet:安装在Node上的代理服务,用来管理Pods以及容器、镜像、Volume等,实现对集群对节点的管理。
  • Kube-proxy:安装在Node上的网络代理服务,提供网络代理以及负载均衡,实现与Service通讯。

 

2.3  其他组件

除了核心组件,还有一些推荐的Add-ons

  • · kube-dns负责为整个集群提供DNS服务
  • · Ingress Controller为服务提供外网入口
  • · Heapster提供资源监控
  • · Dashboard提供GUI
  • · Federation提供跨可用区的集群
  • · Fluentd-elasticsearch提供集群日志采集、存储不查询
posted on 2019-08-21 16:28  光阴8023  阅读(411)  评论(0编辑  收藏  举报