- 第一章 Kubernetes 概念和特性
- 一、什么是kubernetes?
- 二、Kubernetes 的特性
- 1、自动部署和回滚
- 2、自我修复
- 3、水平扩展
- 4、服务发现和负载均衡
- 5、秘钥和配置管理
- 6、存储编排
- 7、批处理执行
- 三、Kubernetes 组件介绍
- 1、Master 节点组件
- 2、Work 节点组件介绍
- 3、其他组件介绍
- 总结
一、什么是kubernetes?
Kubernetes 又称为 K8S,首字母为 K,尾字母为 S,中间由八个字母组成,所以简称为 K8S。Kubernetes 是一个可移植的,可扩展的开源平台,是一个针对容器应用进行自动部署、弹性伸缩和管理的开源系统。生产环境中主要用于容器编排。K8S 的目标就是让部署容器化应用更加简洁高效。
二、Kubernetes 的特性 1、自动部署和回滚使用 K8S 已部署容器的所需状态,可以将实际状态更改为期望状态。自动化创建部署新容器,删除现有容器并将资源用于新容器。
2、自我修复支持容器故障后自动重启、节点故障后重新调度容器,以及其他可用节点、健康状态检查失败后关闭容器并重新创建等自我修复功能。
3、水平扩展支持通过简单的命令或 UI 手动水平扩展,或者基于 CPU 等资源负载率的自动水平扩展机制。
4、服务发现和负载均衡K8S 通过附件组件之一的kubeDNS(或CoreDNS)为系统内置了服务发现功能,它会为每个service 配置DNS名称,并允许集群中的客户端直接使用此名称发出访问请求,而service会根据iptables或ipvs内建立负载均衡机制。
5、秘钥和配置管理支持存储和管理敏感信息,如用户名、密码、秘钥、令牌等。K8S 专门提供了 Secret对象为其解耦。 K8S 的 configMap 实现了参数配置和 docker 镜像的解耦,修改配置时无需重新 build 镜像,这为应用开发部署带来了很大的灵活性。6、存储编排
K8S 支持 pod 对象按需自动挂载不同类型的文件存储系统。包括节点本身的存储系统,云存储(AWS)、网络存储系统(NFS,Glusterfs)。
7、批处理执行除了服务型应用,K8S 还支持批处理作业及(CI)持续集成
三、Kubernetes 组件介绍 1、Master 节点组件集群控制节点,负责整个集群的管理和控制
1. API Server
提供接口,资源增删改查入口。并提供认证、授权、访问控制、API注册和发现等机制。
2. Controller Manager
所有资源对象的自动化控制中心;负责维护集群的状态,比如故障检测、自动扩展、滚动更新等。这些控制器包括。
3. Etcd
是兼具一致性和高可用性的键值对数据库,用作 K8S 所有集群数据的后台数据库。
4. Scheduler
负责资源调度,按照预定的调度策略将Pod调度到相应的机器上。
2、Work 节点组件介绍1. kubelet
一个集群中每个节点运行的代理,以守护进程的方式运行,它保证容器都运行在pod上。 Pod容器创建、启停、集群管理等任务;同时也负责Volume(CVI)和网络(CNI)的管理。
2. kube-proxy
实现 service 的通信与负载均衡组件。
3. Container Runtime
容器运行环境,默认是 docker 引擎,负责本机容器的创建和管理工作
3、其他组件介绍- kube-dns:负责为整个集群提供 DNS 服务
- Ingress Controller:为服务提供外网入口
- Heapster/metrics-server:提供资源监控
- Dashboard:提供 GUI
- Federation:提供跨可用区的集群
- Fluentd-elasticsearch:提供集群日志采集、存储与查询
本文章主要简单介绍 K8S 的特性以及 K8S 中比较重要的组件,为后期更好的上手使用 K8S 打基础。



