Kubernetes开篇

一、引言

往常我们在部署应用到服务器时,有这样三种方式

  • 直接部署到服务器
  • 利用虚拟机将服务器的硬件资源虚拟化成无数个虚拟机,将应用部署在虚拟机上,进行隔离
  • 利用容器化技术,例如docker,将应用部署到容器中,利用容器实现轻量级的隔离

当直接部署到服务器时,如果一个应用出现了故障,例如内存泄漏,则可能导致部署在上面的所有应用全部宕机。使用虚拟机部署可以实现应用隔离但是虚拟机比较重占用资源很大,更好的方式是使用容器化技术

但是,容器化技术也会带来一些问题,例如部署的容器很多,管理和监控以及故障修复都很不便,因此需要一个针对大规模容器的编排系统,而Kubernetes就是一个实现容器编排的工具。

二、Kubernetes概述

Kubernetes,简称K8s,是一个可移植、可扩展的开源平台,用于管理容器化的工作负载和服务,方便进行声明式配置和自动化。K8s拥有一个庞大且快速增长的生态系统,其服务、支持和工具的使用范围广泛。K8s具有以下功能:

  • 服务发现和负载均衡

    K8s可以使用DNS名称或自己的IP地址来暴露容器。 如果进入容器的流量很大, K8s可以负载均衡并分配网络流量,从而使部署稳定。

  • 存储编排

    K8s允许你自动挂载你选择的存储系统,例如本地存储、公共云提供商等。

  • 自动部署和回滚

    你可以使用K8s描述已部署容器的所需状态,它可以以受控的速率将实际状态更改为期望状态。例如,你可以自动化K8s来为你的部署创建新容器,删除现有容器并将它们的所有资源用于新容器。

  • 自动完成装箱计算

    你为K8s提供许多节点组成的集群,在这个集群上运行容器化的任务。你告诉K8s每个容器需要多少CPU和内存(RAM)。K8s可以将这些容器按实际情况调度到你的节点上,以最佳方式利用你的资源。

  • 自我修复

    K8s将重新启动失败的容器、替换容器、杀死不响应用户定义的运行状况检查的容器,并且在准备好服务之前不将其通告给客户端。

  • 密钥与配置管理

    K8s允许你存储和管理敏感信息,例如密码、OAuth令牌和SSH密钥。你可以在不重建容器镜像的情况下部署和更新密钥和应用程序配置,也无需在堆栈配置中暴露密钥。

  • 批处理执行

    除了服务外,K8s还可以管理你的批处理和CI(持续集成)工作负载,如有需要,可以替换失败的容器。

  • 水平扩缩

    使用简单的命令、用户界面或根据CPU使用率自动对你的应用进行扩缩。

  • IPv4/IPv6 双栈

    为Pod(容器组)和Service(服务)分配IPv4和IPv6地址。

  • 为可扩展性设计

    在不改变上游源代码的情况下为你的K8s集群添加功能。

三、Kubernetes架构和组件

K8s采用集群方式部署,集群中有master和worker两个不同的角色,

Kubernetes Cluster = N Master Node + N Worker Node:N主节点+N工作节点; N>=1

四、Kubernetes的基本使用

序号 文章名 概述
1 使用虚拟机安装一个K8s集群 安装K8s集群,并部署网络插件calico

"如果文章对您有帮助,可以请作者喝杯咖啡吗?"

微信二维码

微信支付

支付宝二维码

支付宝


Kubernetes开篇
https://blog.liuzijian.com/post/890BGEG45PLC67.html
作者
Liu Zijian
发布于
2024年9月28日
许可协议