[k8s系列]:kubernetes·概念入门

文章目录

  • 序言
  • [1 kubernetes概述](#1 kubernetes概述)
    • [1.1 kubernetes解决的问题](#1.1 kubernetes解决的问题)
      • [1.1.1 部署方式的演变](#1.1.1 部署方式的演变)
      • [1.1.2 容器化部署------容器编排问题](#1.1.2 容器化部署——容器编排问题)
    • [1.2 kubernetes组件](#1.2 kubernetes组件)
      • [1.2.1 kubernetes组件调用关系](#1.2.1 kubernetes组件调用关系)
      • [1.2.2 调用逻辑示例](#1.2.2 调用逻辑示例)

序言

序言:本文将从,第一节:kubernetes解决的问题、组件和工作原理;

1 kubernetes概述

kubernetes是谷歌Borg系统的一个开源版本,kubernetes的本质是一组服务器集群,kubernetes可以在每个节点上运行特定程序,实现对节点中容器管理,目的是,实现资源管理自动化,主要提供了如下功能:

  • 自我修复:一旦某一个容器崩溃,能够在1s中左右启动容器。
  • 弹性伸缩:可以根据需要,自动对集群中正在运行容器数量进行调整。
  • 服务发现:服务可通过自动发现的形式找到其所依赖的服务。
  • 负载均衡:若一个服务启动多个容器,能自动实现负载均衡。
  • 版本回退:若发现新发布的程序版本有问题,可立即回退到原来版本。
  • 存储编排:根据容器自身需求自动创建存储卷。

1.1 kubernetes解决的问题

1.1.1 部署方式的演变

传统部署 虚拟化部署 容器化部署
解释 早期,直接将应用程序部署在物理机上 在一台物理机上运行多个虚拟机,每个虚拟机都是一个独立环境 与虚拟化类似,但是共享了操作系统
优点 简单,不需其他技术参与 程序环境不会相互影响,每个虚拟机都是一个环境 保证每个容器拥有自己的文件系统、CPU等。实现基础架构解耦,容器化应用程序可以跨云服务器进行部署
缺点 不能为程序资源使用边界,程序间容易产生影响 增加了操作系统,浪费部分资源 ① 一个容器故障停机,如何让另一个容器启动去替补停机的容器;② 当并发访问变大时,如何横向扩展容器数量

1.1.2 容器化部署------容器编排问题

容器编排问题:针对容器化部署中所遇到的:一个容器故障停机,如何使得另一个容器去启动替补;以及当并发访问变大时,如何横向扩展容器的解决方案,产生了一些容器编排软件

  • Swarm:Docker官方容器编排工具。
  • Mesos:Apache的资源统一管理工具,需要与Marathon结合使用。
  • Kubernetes:Google开源容器编排工具。

1.2 kubernetes组件

1.2.1 kubernetes组件调用关系

组件 功能
master(控制节点) 集群的控制平面,负载集群的决策(管理)
ApiServer 资源操作的唯一入口,接收用户输入命令,提供认证、授权、API注册和发现等机制
Scheduler 负责集群资源调度,按照预定调度策略将pod调度到相应node节点
ControllerManger 负责维护集群状态,诸如程度部署安装、故障检测、自动扩展、滚动更新等
Etcd 负责存储集群中各种资源对象信息
node(工作节点) 集群的数据平面,负责为容器提供运行环境(干活)
Kubelet 负责维护容器生命周期,即通过控制docker,来创建、更新、销毁容器
KubeProxy 负责提供集群内部服务发现和负载均衡
Docker 负责节点上容器各种操作

1.2.2 调用逻辑示例

以部署nginx服务,来说明kubernetes系统各个组件调用关系:

  • ① 首先,当kubernetes环境启动后,master和node都会将自身信息存储到etcd数据库中。
  • ② 当我们发送安装nginx服务请求,首先会被发送到master节点的apiServer组件。
  • ③ apiServer组件会调用schedule组件,来决定应该把这个服务安装到哪个node节点。同时,schedule组件会从etcd中读取各个node节点信息,然后按照算法进行选择,并将结果反馈给apiServer。
  • ④ apiServer调用controller-manager去调度node节点安装nginx服务。
  • ⑤ 的pod(pod相当于一个容器)。
    pod是kubernetes的最小操作单元,容器必须跑在pod中。
相关推荐
升职佳兴14 分钟前
Docker 安装、镜像管理与 Dockerfile 构建实战(openEuler 版)
运维·docker·容器
芥子沫16 分钟前
提示词管理工具推荐prompt-manage,Docker一键部署和使用指南
docker·容器·prompt·提示词
TeamDev20 分钟前
使用 Docker 部署 DotNetBrowser 应用程序
运维·ui·docker·容器·桌面应用·dotnet·dotnetbrowser
ErizJ25 分钟前
面试 | Docker K8S
docker·面试·kubernetes
℘团子এ29 分钟前
什么是Docker
前端·docker·容器
Rsun0455138 分钟前
Docker部署项目
运维·docker·容器
janthinasnail42 分钟前
使用Docker安装OpenClaw
docker·容器·openclaw
小夏卷编程10 小时前
Ubuntu 20.04.4 宝塔 docker showdoc v3.2 更新到v3.7.3
运维·docker·容器
JEECG低代码平台10 小时前
JeecgBoot低代码平台 Docker 部署 OnlyOffice 文档服务完整指南
低代码·docker·容器
生活爱好者!11 小时前
NAS帮我找回童年的快乐!部署 小游戏
运维·服务器·docker·容器·娱乐