1.1kubernetes简介

    参考博客:https://www.kubernetes.org.cn/k8s

  1、kubernetes介绍

      1. Kubernetes是容器集群管理系统,是一个开源的平台

      2. 可以实现容器集群的自动化部署、自动扩缩容、维护等功能。

      3. 目标是促进完善组件和工具的生态系统,以减轻应用程序在公有云或私有云中运行的负担。

      作用:

        1)快速部署应用
        2)快速扩展应用
        3)无缝对接新的应用功能
        4)节省资源,优化硬件资源的使用

      举例:

        1)Kubernetes一个核心的特点就是能够自主的管理容器来保证云平台中的容器按照用户的期望状态运行着
        2)比如用户想让apache一直运行,用户不需要关心怎么去做,Kubernetes会自动去监控,然后去重启,新建,总之,让apache一直提供服务

  2、kubernetes作用

    1)自我修复

        1. 在节点故障时重新启动失败的容器,替换和重新部署,保证预期我们设置的副本的数量;

        2. 杀死健康检测失败的容器,并且在没有准备好之前是不会处理客户端请求的(不对外提供服务),保证线上服务不中断

    2)弹性伸缩(比如618活动,保证我们服务的快速缩容和扩容)

        1. 使用命令、UI或者基于CPU使用情况自动快速扩容和缩容应用的程序实例(容器的副本数)

        2. 保证应用业务高峰并发时的高可用性;

        3. 在业务低峰时期回收资源,以减小成本运行服务

    3)自动部署和回滚

        1. k8s 采用滚动更新的策略更新应用,一次更新一个Pod,而不是同时删除所有的pod

        2. 如果更新过程中出现问题,将回滚更改,确保升级不影响业务

    4)服务发现和负载均衡

        1. k8s为多个容器提供一个统一访问入口(内部IP地址和一个DNS名称),并且负载均衡关联的所有容器,使得用户无需考虑容器IP的问题

    5)机密数据(密码,证书)和配置管理

        1. k8s提供存储能力(可以把密码加密放在容器存储中)

        2. 管理机密数据和应用程序的配置,而不需要把敏感的数据暴露在镜像里,提高敏感数据的安全性

        3. 并且可以把一些常用的配置存储在k8s中,方便应用程序的使用

    6)存储编排

        1. 挂载外部的存储系统,无论是来自本地存储,公有云,还是网络存储(NFS《GlustFS,Ceph)

        2. 都作为集群资源的一部分使用,极大的提高存储使用灵活性

    7)批处理

        1. 提供一次性任务,定时任务,满足批量数据处理和分析的场景

  3、核心组件:Pod

      1. 在Kubenetes中,所有的容器均在Pod中运行,一个Pod可以承载一个或者多个相关的容器

      2. 同一个Pod中的容器会部署在同一个物理机器上并且能够共享资源

      3. 一个Pod也可以包含0个或者多个磁盘卷组(volumes),这些卷组将会以目录的形式提供给一个容器,或者被所有Pod中的容器共享

      4. 对于用户创建的每个Pod,系统会自动选择那个健康并且有足够容量的机器,然后创建类似容器的容器

      5. 当容器创建失败的时候,容器会被node agent自动的重启,这个node agent叫kubelet

1.2 Kubernetes 集群架构与组件

    官网地址:https://www.kubernetes.org.cn/kubernetes设计架构

    参考博客:https://www.cnblogs.com/Su-per-man/p/11101823.html

  1、Kubernetes中master核心组件

    1)etcd

        1. 是Kubernetes的存储状态的数据库(所有master的持续状态都存在etcd的一个实例中);

        2. 它是一个集群分布式数据库,它可以提供分布式数据的一致性。

    2)apiserver

        1. Kubernetes的核心组件是API Server,它是Kubernetes系统和Etcd直接对话的唯一组件

        2. 提供了资源操作的唯一入口,并提供认证、授权、访问控制、API注册和发现等机制;

    3)controller manager

        1. controller manager 是通过API Server 进行协调的组件,绑定到单独的服务器Master上;

        2. 负责维护集群的状态,比如故障检测、自动扩展、滚动更新等

    4)scheduler

        1. scheduler是通过API Server 进行协调的组件,绑定到单独的服务器Master上;

        2. scheduler负责资源的调度,按照预定的调度策略将Pod调度到相应的机器上

  2、Kubernetes中Node核心组件

    1)kubelet(Node Agent)

        1. kubelet负责管理pods和它们上面的容器,images镜像、volumes、etc。

        2. Agent负责监视绑定到其节点的一组Pod,并确保这些Pod正常运行,并且能实时返回这些Pod的运行状态。

    2)Container runtime

        1. Container runtime负责镜像管理以及Pod和容器的真正运行(CRI);

    3)kube-proxy

        1. kube-proxy网络代理和负载均衡,负责为Service提供cluster内部的服务发现和负载均衡;

kube-dns负责为整个集群提供DNS服务
Ingress Controller为服务提供外网入口
Heapster提供资源监控
Dashboard提供GUI
Federation提供跨可用区的集群
Fluentd-elasticsearch提供集群日志采集、存储与查询
其他组件

相关文章:

  • 2022-02-10
  • 2021-11-17
  • 2021-08-12
  • 2021-12-02
  • 2022-01-06
  • 2022-12-23
  • 2022-12-23
  • 2021-11-27
猜你喜欢
  • 2021-10-02
  • 2021-04-26
  • 2022-01-16
  • 2021-06-08
相关资源
相似解决方案