文章目录
前言
1.Kubernetes是什么?
Kubernetes是Goole大规模集群管理系统-Borg的一个开源版本,它基于容器技术来实现资源管理的自动化,以及跨多个数据中心的资源利用率最大化。
Kubernetes是一个用于自动部署、扩展和管理容器化应用的开源平台,它让大规模容器化应用的部署、管理和运维变得高效且可自动化。
官网: kubernetes官网
2.为什么会出现Kubernetes?
随着微服务架构的流行,容器技术因其轻量、可移植和自包含的特性而被广泛采用,极大地加速了软件开发和部署的流程。然而,当企业需要大规模部署和管理成百上千个容器时,手动操作不仅效率低下,而且极其复杂,难以保证服务的高可用性、负载均衡、自动化伸缩等需求。于是急需一种容器编排管理技术,解决大规模容器集群管理中的复杂性和挑战。
这时kubernetes出现了,kubernetes它将组成应用程序的容器组合成逻辑单元,以便于管理和服务发现。
通过使用Kubernetes,企业可以更专注于业务逻辑和服务本身,而将底层基础设施的复杂管理任务交给Kubernetes处理,从而大大提高了开发和运维的效率,降低了成本,加速了产品迭代速度。这也是为什么Kubernetes迅速成为云原生时代容器编排和管理的事实标准。
3.Kubernetes系统架构介绍
参考链接:kubernetes架构
不同节点类型
Master(控制/管理/主节点)核心职责:负责集群的管理和控制,包括资源调度、配置更新、维护集群状态等。
Node(计算/工作节点)核心职责:运行容器化应用实例(Pods)。
管理方式
图形化管理
Kubernetes Dashboard:Web UI界面,提供了可视化的集群管理方式,便于用户直观地查看集群状态、管理应用等。
命令行管理
kubectl:Kubernetes的命令行工具,用于与API Server交互,执行部署、扩缩容、查看状态等操作。
4.不同节点上的组件介绍
Master组件介绍
1.API Server:这是集群的API服务器,提供RESTful接口作为所有其他组件与集群交互的唯一入口。它负责处理集群中的资源对象的增删改查操作,并提供Watch接口来监听这些变化。
2.Scheduler:调度器组件,它负责根据Pod的需求和资源限制选择合适的节点运行Pod。这一过程涉及到资源的分配和优化,以确保集群资源得到有效利用。
3.Controller Manager:控制器管理器,运行在主节点上,负责管理和控制集群中的各种控制器,如部署控制器、服务控制器等。它确保这些控制器按照预期运行,并响应集群事件。
4.etcd:一个轻量级的分布式键值存储系统,用于持久化存储集群状态信息,如Pod、Service等资源的状态。etcd支持高可用配置,可以在多个Master节点上部署以提高系统的可靠性。
Node节点组件
1.Kubelet:监听API Server的指令,管理Pods和容器的生命周期。
2.Kube-Proxy:实现服务发现和负载均衡,为Service对象提供网络访问的抽象层。
3.Pod:Kubernetes中的最小部署单元,可以包含一个或多个紧密相关的容器,共享存储和网络命名空间。
4.Container Runtime:容器执行环境,负责创建和运行容器。
Kubernetes扩展组件介绍
在Kubernetes(K8s)的核心组件之外,还有许多额外的组件和工具,它们能够增强Kubernetes的功能,提升运维效率,简化应用管理流程。以下是一些常用的额外组件推荐:
Core-dns:为整个集群提供DNS服务。
Ingress Controller:为service提供外网访问入口。
Heapster: 提供集群资源监控 。
Flannel:为kubernetes提供方便的网络规划服务。
这里就不展开列举了,需要用到时候可以上网查找。