WHCSRL 技术网

Kubernetes 概念和特性

第一章 Kubernetes 概念和特性


一、什么是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 镜像,这为应用开发部署带来了很大的灵活性。
  • 1
  • 2

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)的管理。
  • 1
  • 2

2. kube-proxy

实现 service 的通信与负载均衡组件。

3. Container Runtime

容器运行环境,默认是 docker 引擎,负责本机容器的创建和管理工作

3、其他组件介绍

  1. kube-dns:负责为整个集群提供 DNS 服务
  2. Ingress Controller:为服务提供外网入口
  3. Heapster/metrics-server:提供资源监控
  4. Dashboard:提供 GUI
  5. Federation:提供跨可用区的集群
  6. Fluentd-elasticsearch:提供集群日志采集、存储与查询

总结

本文章主要简单介绍 K8S 的特性以及 K8S 中比较重要的组件,为后期更好的上手使用 K8S 打基础。

推荐阅读