> ### `Kubernetes` 特点
* `Kubernetes`能提供一个以“**容器为中心的基础架构**”
* 可移植: 支持公有云,私有云,混合云,多重云(multi-cloud)
* 可扩展: 模块化, 插件化, 可挂载, 可组合
* 自动化: 自动部署,自动重启,自动复制,自动伸缩/扩展
> ### `架构`
![](https://i.loli.net/2019/03/19/5c9098e77c216.png)
* `Kubernetes`核心组件
* **etcd**保存了整个集群的状态;
* **apiserver**提供了资源操作的唯一入口,并提供认证、授权、访问控制、API注册和发现等机制;
* **controller manager**负责维护集群的状态,比如故障检测、自动扩展、滚动更新等;
* **scheduler**负责资源的调度,按照预定的调度策略将Pod调度到相应的机器上;
* **kubelet**负责维护容器的生命周期,同时也负责Volume(CVI)和网络(CNI)的管理;
* **Container runtime**负责镜像管理以及Pod和容器的真正运行(CRI);
* **kube-proxy**负责为**Service**提供**cluster**内部的服务发现和负载均衡;
除了核心组件,还有一些推荐的Add-ons:
* kube-dns负责为整个集群提供DNS服务
* Ingress Controller为服务提供外网入口
* Heapster提供资源监控
* Dashboard提供GUI
* Federation提供跨可用区的集群
* Fluentd-elasticsearch提供集群日志采集、存储与查询
* `Master`节点主要还是负责管理和控制
* `Master`节点包括`API Server`、`Scheduler`、`Controller manager`、`etcd`
* `API Server`是整个系统的对外接口,供客户端和其它组件调用,相当于“营业厅”
* `Scheduler`负责对集群内部的资源进行调度,相当于“调度室”
* `Controller manager`负责管理控制器,相当于“大总管”
* `etcd`,k8s系统的资源(数据)存储的地方,是整个k8s的基石,一个高可用强一致性的服务发现存储仓库,etcd本身非常好的提供了数据的持久化存储和服务发现的支持。
![](https://i.loli.net/2019/03/19/5c9093c4b0ee0.png)
* `Node`节点是工作负载节点
* `Node`节点包括`Docker`、`kubelet`、`kube-proxy`、`Fluentd`、`kube-dns`、`pod`
* `Pod`是`Kubernetes`最基本的操作单元。一个`Pod`代表着集群中运行的一个进程,它内部封装了一个或多个紧密相关的容器。
* `Kubelet`,主要负责监视指派到它所在`Node`上的`Pod`,包括创建、修改、监控、删除等。
* `Kube-proxy`,主要负责为`Pod`对象提供代理。
* `Fluentd`,主要负责日志收集、存储与查询。
![](https://i.loli.net/2019/03/19/5c9094fbe7e9b.png)
> ### 使用
* `Lables`,`Selectors`
* `Volume`
* `Nodes`
* `Pod`
* `Deployment`
* `Service`
* `Ingress`
<br/>
<br/>
***
参考:
[Kubernetes 架构](http://docs.kubernetes.org.cn/251.html)
[我所理解的K8S](https://juejin.im/entry/5ba0ae026fb9a05cfb3da88f)
- asD
- Java
- Java基础
- Java编译器
- 反射
- collection
- IO
- JDK
- HashMap
- ConcurrentHashMap
- LinkedHashMap
- TreeMap
- 阻塞队列
- java语法
- String.format()
- JVM
- JVM内存、对象、类
- JVM GC
- JVM监控
- 多线程
- 基础概念
- volatile
- synchronized
- wait_notify
- join
- lock
- ThreadLocal
- AQS
- 线程池
- Spring
- IOC
- 特性介绍
- getBean()
- creatBean()
- createBeanInstance()
- populateBean()
- AOP
- 基本概念
- Spring处理请求的过程
- 注解
- 微服务
- 服务注册与发现
- etcd
- zk
- 大数据
- Java_spark
- 基础知识
- Thrift
- hdfs
- 计算机网络
- OSI七层模型
- HTTP
- SSL
- 数据库
- Redis
- mysql
- mybatis
- sql
- 容器
- docker
- k8s
- nginx
- tomcat
- 数据结构/算法
- 排序算法
- 快排
- 插入排序
- 归并排序
- 堆排序
- 计算时间复杂度
- leetcode
- LRU缓存
- B/B+ 树
- 跳跃表
- 设计模式
- 单例模式
- 装饰者模式
- 工厂模式
- 运维
- git
- 前端
- thymeleaf
- 其他
- 代码规范
- work_project
- Interview