K8S功能详解


Kubernetes(K8S)是云技术最核心,也是构建云云原生的基石,下面我们细说一下Kubernetes(K8S)。

K8S

K8S全称是"Kubernetes",是一个容器编排平台,用于自动化应用程序的部署、扩展和管理,由谷歌(Google)开发。

K8S主要解决以下4点问题:
在这里插入图片描述
1.容器编排:Kubernetes(K8S)的核心功能之一,容器编排可以自动管理、协调容器化应用程序的部署、扩展和运行。
2.弹性收缩:根据应用程序的需求和负载,Kubernetes可以自动调整运行容器的数量,实现弹性伸缩。
3.自我修复:当容器或节点故障时,Kubernetes可以自动重启、替换这些组件,确保应用程序的高可用性。
4.资源管理:Kubernetes能够有效管理、分配和计算资源(比如:CPU、内存等)从而提高资源利用率。

K8S架构

Kubernetes采用主从(Master-Node)架构,主要由2大组件组成:Master节点和工作节点(Node)。

如下图所示:
在这里插入图片描述

第一大组件:是Master组件(大脑)。

Master类似集群的"大脑",负责管理整个集群的状态和协调所有的工作负载。
主要会涉及到,包括:API服务器、控制器管理器、调度器…等组件。

1.API Server

API Server:是Kubernetes控制平面的前端,处理所有API请求。
K8S所有的控制请求,都通过API Server处理和转发。

API Server主要解决:

  • 处理集群中所有的REST操作请求(例如:创建、更新、删除…等)
  • 提供集群状态和资源的查询接口;
  • 进行请求认证和授权。

2.Kube-Controller-manager

负责运行控制器进程,这些控制器,包括:节点控制器、复制控制器、端点控制器…等,确保集群状态与期望状态一致。

如下图所示:有多个控制器:
在这里插入图片描述
负责维护集群的状态,例如:确保指定数量的Pod在工作,处理节点故障以及进行滚动、更新…等。

3.Kube-Sechduler

负责将新创建的Pod分配到合适的Node上运行。
以及,监控未绑定到节点的Pod,并根据预定义的策略和约束,将其分配到合适的节点上。
总之,调度决策的核心,是找到满足Pod资源需求和其他约束条件的最优节点。

第二大组件:子节点(Node)

Kubernetes工作节点(Node)通过:Kubelet、Kube-proxy和容器运行时等组件,提供了强大的容器运行环境。

1、Kubelet

Kubelet是每个节点上的主要代理进程,负责:管理该节点上的Pod和容器。
Kubelet是节点上所有容器操作的核心,直接与容器运行时交互。

2、Kube-proxy

Kube-proxy是Kubernetes网络代理,负责:维护网络规则以便Pod间通信。
通过iptables管理节点上的网络规则,处理服务的负载均衡和网络转发。

3、容器运行时(Container Runtime)

容器运行时是负责:拉取镜像并在节点上运行容器的软件,比如:

  • Docker
  • containerd

主要管理容器的生命周期,比如:创建、启动、停止和删除容器。

Kubernetes(K8S)应用

Kubernetes在各类应用场景中发挥着重要作用,比如:
1、微服务架构:通过将应用程序拆分为多个小型、独立的服务,K8S可以结合Istio来解决微服务架构;
2、应用的容器化:将应用容器化后部署在K8S上,可以提升应用的可扩展性和管理效率;
3、持续集成和持续部署(CI/CD):结合 CI/CD 工具,K8S可以实现自动化的应用构建、测试和部署等流程;
4、混合云和多云部署:Kubernetes提供了跨不同云提供商的一致性,使得混合云和多云环境的管理更加方便;

总之,K8S是一个强大、灵活且可扩展的容器编排平台,能够满足各种规模的应用部署和管理需求。

相关推荐

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-06-13 20:06:01       94 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-06-13 20:06:01       100 阅读
  3. 在Django里面运行非项目文件

    2024-06-13 20:06:01       82 阅读
  4. Python语言-面向对象

    2024-06-13 20:06:01       91 阅读

热门阅读

  1. 在 Spring Boot 中实现文件上传功能

    2024-06-13 20:06:01       35 阅读
  2. TCP和UDP区别

    2024-06-13 20:06:01       29 阅读
  3. Android中蓝牙设备的状态值管理

    2024-06-13 20:06:01       26 阅读
  4. CSPM-3考试成绩已出!内附查询流程

    2024-06-13 20:06:01       33 阅读
  5. 缺陷 & 规避

    2024-06-13 20:06:01       31 阅读
  6. C++中变量的使用细节和命名方案

    2024-06-13 20:06:01       31 阅读
  7. MYSQL(事务)

    2024-06-13 20:06:01       23 阅读
  8. 国产数据库助力数字中国建设高质量发展

    2024-06-13 20:06:01       31 阅读