【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 收录,欢迎 点击订阅专栏

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

相关推荐
ghostwritten36 分钟前
Docker Registry Clean
运维·docker·容器
宋冠巡1 小时前
Windows安装Docker(Docker Desktop)
windows·docker·容器
小马爱打代码2 小时前
Kubernetes 中部署 Ceph,构建高可用分布式存储服务
分布式·ceph·kubernetes
阿噜噜小栈3 小时前
最新国内可用的Docker镜像加速器地址收集
运维·笔记·docker·容器
云上艺旅3 小时前
K8S学习之基础六十八:Rancher创建deployments资源
学习·云原生·容器·kubernetes·rancher
rider1893 小时前
【4】搭建k8s集群系列(二进制部署)之安装master节点服务(kube-apiserver)
云原生·容器·kubernetes
海鸥815 小时前
podman和与docker的比较 及podman使用
docker·容器·podman
GreenMountainEcho10 小时前
Kubernetes 入门篇之 Node 安装与部署
云原生·容器·kubernetes
zyk_52012 小时前
Docker desktop如何汉化
运维·docker·容器
韭菜盖饭12 小时前
解决Docker端口映射后外网无法访问的问题
运维·docker·容器