Skip to content

K8s介绍与概述

概述

Kubernetes 是一个轻便的和可扩展的开源平台,用于管理容器化应用和服务。通过 Kubernetes 能够进行应用的自动化部署和扩缩容。在Kubernetes中,会将组成应用的容器组合成一个逻辑单元以更易管理和发现。Kubernetes积累了作为Google生产环境运行 工作负载15年的经验,并吸收了来自于社区的最佳想法和实践。

  1. 容器化集群管理系统
  2. 使用k8s进行容器化应用部署
  3. 使用k8s利于应用扩展
  4. k8s目标实施让容器化应用更加简洁和高效

k8s功能

自动装箱

基于容器对应用运行环境的资源配置要求自动部署应用容器

自我修复(自愈能力)

当容器失败时,会对容器进行重启

当所有部署的Ndoe节点有问题时,会对容器进行重新部署和重新调度

当容器未通过监控检查时,会关闭此容器直到容器正常运行时,才会对外提供服务

水平扩展

通过简单的命令、用户UI界面或基于CPU等资源使用情况,对应容器进行规模扩大或者规模裁剪

服务发现

用户不需使用额外的服务发现机制,就能够基于Kubernetes自身能力实现服务发现和负载均衡

滚动更新

可以根据应用的变化,对应用容器运行的应用,进行一次性或批量式更新

版本回退

可以根据应用部署情况,对应用容器运行的应用,进行历史版本即时回退

秘钥和配置管理

在不需要重新构建镜像的情况下,可以部署和更新密钥和应用配置,类似热部署。

存储编排

自动实现存储系统挂载及应用,特别对有状态应用实现数据持久化非常重要存储系统可以来自于本地目录、网络存储(NFS、Gluster、Ceph 等)、公共云存储

批处理

提供一次性任务,定时任务,满足批量数据处理和分析的场景

k8s的集群架构组件

Master(主控节点、集群控制节点)和 Node(工作节点)

image-20251031111558897

Master组件

API server

集群统一入口,以restful方式,交给etcd存储

scheduler

进行节点调度,选择node节点应用部署

controller-manager

处理集群中常规的后台任务,一个资源对应一个控制器

etcd

存储系统,保存集群相关的数据

Node组件

kubelet

master派到node节点的代表,管理本机容器

kube-proxy

提供网络代理,负载均衡等操作

k8s核心概念

Pod

最小部署单元

一组容器的集合

共享网络

生命周期是短暂的

Controller

确保预期的pod副本数量

无状态应用部署

有状态应用部署

确保所有的node运行同一个pod

一次性任务和定时任务

Service

定义一组Pod的访问规则、,为功能相同、标签(Label)一致的 Pod 集群,制定一套统一、稳定的访问标准。

Released under the MIT License.