【K8S】为什么需要Kubernetes?


文章目录

  • [1 什么是Kubernetes?](#1 什么是Kubernetes?)
  • [2 三种常见的应用部署方式](#2 三种常见的应用部署方式)
    • [2.1 传统部署](#2.1 传统部署)
    • [2.2 虚拟化部署](#2.2 虚拟化部署)
    • [2.3 容器化部署](#2.3 容器化部署)
  • [3 Kubernetes的特点](#3 Kubernetes的特点)
  • 写在最后

1 什么是Kubernetes?

Kubernetes是 一个开源的,用于管理云平台中多个主机上的容器化应用 ,Kubernetes提供了应用部署,规划,更新,维护的一种机制,其目标是为了让部署容器化的应用简单、高效~

那么,为啥需要Kubernetes呢?这还需要从应用的部署方式说起~


2 三种常见的应用部署方式

2.1 传统部署

传统部署方式指将应用程序直接安装在物理服务器上,部署过程相对简单,直接将应用程序文件放置在服务器上并运行即可。但这个过程每一步都依赖于人工,并且难以精确地为应用程序定义资源使用边界,资源分配不够灵活,即多个运行在服务器的服务都共用一套资源,一方面存在类似并发的问题,另一方面,用户访问依赖网络带宽,存在服务资源抢占和分配不均的问题。

2.2 虚拟化部署

虚拟化部署是在物理机上运行多个虚拟机(VM),每个虚拟机都模拟一个完整的计算环境,包括操作系统、应用程序和存储资源。一定程度上解决了应用程序资源边界问题,提供了更好的资源隔离和灵活性,但管理多个虚拟机也增加了复杂性和成本。要知道创建和销毁一个虚拟机,开销还是比较大滴~

那么有没有一种轻量化的解决方案呢?------ 容器化部署

2.3 容器化部署

容器部署是一种轻量级的虚拟化技术,旨在将应用程序及其依赖项打包在一个可移植的容器中,可以在任何支持容器运行的平台上运行。容器化部署具有以下优点:

  • 快速部署:极大地缩短应用程序的部署时间,实现快速迭代和更新。
  • 环境一致性:容器提供了标准化的运行环境,保证了应用程序在不同环境中的一致性和可靠性。
  • 资源隔离: 虽然容器共享宿主机的操作系统内核,但通过容器技术实现了进程级别的隔离,保证了应用程序的安全性和稳定性。
  • 可扩展性:容器化部署可以方便地实现应用程序的横向扩展,通过增加容器实例来应对高并发访问。

3 Kubernetes的特点

通过以上内容,我们了解到容器化部署的好处,那这和为啥需要Kubernetes有啥关系呢?答案很简单,好用!!!

Kubernetes作为容器管理平台,有以下好处:

  1. 自我修复: 如果Pod崩溃或被删除,K8s将自动重启该Pod并从相同的镜像获取新的容器。如果一个Node节点失效,K8s将重新调度该Node上的Pod到其他可用的Node节点上。并且,K8s能够自动修复一些基础组件的问题,如Kubelet无法提供正确的容器网络配置等。
  2. 弹性伸缩: K8s根据应用负载的变化自动调整应用的资源分配,保证应用的稳定性和高可用性(比如,通过增加或减少Pod的副本数量)。
  3. 自动部署与回滚: K8s支持自动化部署,通过声明式配置(如YAML文件)来定义应用的期望状态,K8s将自动将实际状态调整到期望状态。当部署出现问题时,K8s支持将应用回滚到之前的稳定版本。
  4. 服务发现与负载均衡: K8s通过Service资源为Pod提供固定的访问入口(IP和端口),并通过DNS或环境变量等方式实现服务发现。K8s内置的kube-proxy组件能够实现简单的负载均衡,将访问Service的流量分发到后端的Pod上。
  5. 机密和配置管理: K8s提供了丰富的配置管理机制,如Secrets和ConfigMaps的更新、滚动更新等,以确保应用的安全性和可配置性。其中,Secrets用于存储敏感数据,如API密钥、密码等,以Base64编码存储在K8s中。ConfigMaps用于存储非敏感的配置数据,如应用配置、环境变量等。
  6. 存储编排: K8s支持多种类型的存储卷,包括临时卷、本地卷和网络卷等,用于为Pod提供持久化存储。
  7. 批处理: K8s提供了Job和CronJob资源来支持批处理任务。Job用于执行一次性任务,而CronJob则用于按照预定时间执行周期性任务。

写在最后

本文已被专栏 Kubernetes 收录,欢迎 点击订阅专栏

 以上便是本文的全部内容啦!创作不易,如果你有任何问题,欢迎私信,感谢您的支持!

相关推荐
kylin-运维3 小时前
k8s可视化看板嵌入AI助手(悬浮对话球)
人工智能·容器·kubernetes·aicoding
会飞的土拨鼠呀3 小时前
Docker 容器维护手册
docker·容器·eureka
hhb_6183 小时前
云原生AI工作流分布式调度实战
人工智能·云原生
慕伏白3 小时前
【慕伏白】Docker 常用指令
docker·容器·eureka
阿里云云原生3 小时前
明文不扩散,日志仍可用:阿里云可观测敏感数据保护方案
云原生
java_logo4 小时前
Docker 部署 Trilium Notes 完整教程:自建大型知识库
docker·容器·trilium·trilium note·trilium部署·docker部署trilium·trilium部署文档
梦想的颜色4 小时前
【Docker 原理】Docker 数据持久化完全指南:三种挂载原理、数据卷实操、数据库落地实战
docker·云原生·数据持久化·volume·数据卷·容器挂载
石小千5 小时前
修改Docker Engine 存储路径
运维·docker·容器
@insist1236 小时前
系统规划与管理师-云原生系统建设规划与实践案例
云原生·软考·系统规划与管理师·软件水平考试·系统规划与管理工程师
腾讯数据架构师7 小时前
CubeStudio 平台简介:国产化云原生一站式开源人工智能平台(MLOps / 大模型全链路)
人工智能·云原生·开源·mlops·国产·maas·机器学习平台