01Kubernetes简介

59 阅读4分钟

Kubernetes简介

Kubernetes介绍

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

Kubernetes一个核心的特点就是能够自主的管理容器来保证云平台中的容器按照用户的期望状态运行着,管理员可以加载一个微型服务,让规划器来找到合适的位置,同时,Kubernetes也系统提升工具以及人性化方面,让用户能够方便的部署自己的应用。

Kubernetes主要能帮助我们完成:

  • 服务发现和负载均衡

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

  • 存储编排

    Kubernetes 允许你自动挂载你选择的存储系统,比如本地存储,类似Docker的数据卷。

  • 自动部署和回滚

    你可以使用 Kubernetes 描述已部署容器的所需状态,它可以以受控的速率将实际状态更改为期望状态。Kubernetes 会自动帮你根据情况部署创建新容器,并删除现有容器给新容器提供资源。

  • 自动完成装箱计算

    Kubernetes 允许你设置每个容器的资源,比如CPU和内存。

  • 自我修复

    Kubernetes 重新启动失败的容器、替换容器、杀死不响应用户定义的容器,并运行状况检查的容器。

  • 秘钥与配置管理

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

为什么要使用Kubernetes:

  • 故障迁移:当某一个节点关机或挂掉,该节点上的服务会自动转移到另一个节点上,这个过程所有服务不中断。这是docker或普通云主机不能做到的
  • 资源调度:当node节点上的CPU、内存不够用的时候,可以扩充node节点,新建的pod就会被kube-schedule调度到新扩充的node节点上
  • 资源隔离:创建开发、生产、测试三个命名空间,不同环境被命名空间隔离,资源互不干扰
  • 因为采用容器化技术,进程之间互不影响
  • 安全:不同的角色具有不同的权限,查看pod、删除pod等操作;RBAC认证增加了k8s的安全,快速精准地部署应用程序

Kubernetes的优势:

  • 可移动:公有云、私有云、混合云、物理机
  • 可扩展:模块化、插件化、可挂载、可组合
  • 自修复:自动部署、自动重启、自动复制、自动伸缩
  • 负载均衡

k8s可以更快的更新版本,打包应用,更新的时候可以做到不中断服务,服务器故障不用停机,从开发环境到测试环境再到生产环境的迁移及其方便,一个配置文件搞定,一次生成image到处运行

Kubernetes架构

Kubernetes 搭建需要至少两个节点,一个Master负责管理,一个Slave(Worker)搭建在工作服务器上负责分配

image.png

从图中可以看到各个组件的基本功能:

  • API Server:作为K8s通讯的核心组件,K8s内部交互以及接收发送指令的组件。
  • controller-manager:作为K8s的核心组件,主要做资源调度,根据集群情况分配资源
  • etcd:一个key-value的数据库,存储存储集群的状态信息
  • scheduler:负责调度每个工作节点
  • cloud-controller-manager:负责调度其他云服务产品
  • kubelet:管理Pods上面的容器
  • kube-proxy:负责处理其他Slave或客户端的请求
  • Pod:可以理解为就是运行的容器

注意下面所有的演示,都是基于k8s1.26.9集群,容器为containerd,一主两从,三个节点分别是:192.168.91.220,192.168.91.221,192.168.91.222