kubernetesday01

kubernetes集群组件和架构

一、相关组件

1、控制面板组件(Master)–主节点
  • kube-api-server
    • 基于REST风格开放的k8s接口服务
  • kube-controller-manager
    • 控制器管理器,管理各个类型的控制器和k8s内部
  • cloud-controller-manager
    • 云控制管理器,第三方云平台提供的支持k8s的API接口的管理器
  • kube-scheduler
    • 调度器,负责把Pod基于一定算法,调用到合适的节点
  • etcd
    • 支持k8s高可用的持久化存储的分布式数据库
2、节点组件(Node)–副节点
  • kubelet
    • 负责Pod的生命周期、存储、网络等管理
  • kube-proxy
    • 负责网络代理、负载均衡(4层负载)、Service服务等等
  • Pod
    • 内部运行容器,一个Pod可运行多个容器(至少一个)
  • container-runtime
    • 容器运行环境:docker(较流行)、containerd、CRI-O
3、附加组件(可选)
  • kube-dns
    • 管理域名
  • Ingress Controller
  • Prometheus
    • 监控
  • Dashboard
  • Federation

二、分层架构

1、生态系统

2、接口层

3、管理层

4、应用层

5、核心层

三、客户端

客户端操作方法:

  • kubectl(命令行工具)【CTL】
  • Dashboard(官方自带或第三方的可视化界面)【UL】–user interface

客户端通过调用API接口访问主节点,主节点的kube-api-server再进行操作,对接不同API接口到副节点的Pod进行容器操作


核心概念和专业术语

一、服务的状态

  • 无状态应用
    • 不会对本地环境产生环境依赖,不会将数据存储到本地,eg:Nginx、Apache
  • 有状态应用
    • 会对本地环境产生环境依赖,如将数据存储到本地磁盘,eg:Redis、MySQL

二、资源和对象

资源类似Java的类,对象就是基于这个类创建的对象

资源的部分分类:
  • 元数据型

    • Horizontal Poad Autoscaler(HPA)
      • 弹性收缩和扩容
    • PodTemplate
      • 包含Pod定义,控制器用来创建Pod的模板
    • LmitRange
      • 对资源请求进行配置限制
  • 集群级

    • NameSpace(命名空间)
    • Node(节点)
      • 本质不是由k8s创造,而是由k8s创建管理其中的资源
    • ClusterRole
      • 类似角色身份
    • ClusterRoleBinding
      • 将角色(Role 或 ClusterRole)与用户、组或服务账户绑定到集群
  • 命名空间级(包含于集群内部)【重点】

    • 工作负载型—Pod(k8s中最小的可部署单元,每个Pod都有一个pause容器来共享资源)

      • 副本(replica),基于同一个 PodTemplate 创建的多个 Pod
        实现高可用性、负载均衡、弹性伸缩
      • 控制器(controller),是 Kubernetes 中用于管理 Pod 副本的机制。它负责确保 Pod 的副本数量符合预期,并且在 Pod 发生故障时自动重启或重新创建 Pod。

      ①适用无状态服务Deployment(首选):用于管理无状态应用的 Pod 副本。它可以确保指定数量的 Pod 副本始终运行,并支持滚动更新、暂停恢复、平滑宽容缩容。

      ②使用有状态服务StatefulSet:用于管理有状态应用的 Pod 副本。它为每个 Pod 提供稳定的网络身份和持久化存储。
      可对有状态服务器的DNS进行管理,实现稳定的网络标志 Headless Service
      还可以对数据进行管理,实现持久化存储,避免数据丢失 VolumeClaim Template
      同时实现有序的恢复删除,伸缩扩容

      ③守护进程DaemonSet:确保在集群中的每个节点上运行一个 Pod 副本,通常用于运行集群级别的服务,如日志收集器或监控代理。
      如kube-proxy、Prometheus等

      ④任务Job:用于运行一次性任务,例如批量处理任务或数据迁移任务。它会创建一个或多个 Pod 来完成任务,并在任务完成后Pod自动清理。

      ⑤定时任务CronJob:用于运行定时任务,例如每天或每周运行一次的任务。

    • 服务发现

      • Service

        实现集群内部网络的调用,主控东西流量(横向流量),如对同一个集群中的节点进行互相访问

      • Ingress

        将集群内部服务暴露到外部网络,主控南北流量(纵向流量),如外部用户要访问内部节点

  • 存储

    • Volume

      类似docker中的数据卷,用来持久化数据

    • CSI

      可看作是一个对volume插件的一个标准化的接口,通过CSI,Kubernetes可以与各种存储系统(如本地存储、网络存储等)进行交互,为容器化应用提供持久化存储

  • 特殊类型配置

    • ConfigMap

      是一种存储配置数据的API对象,用于存储非敏感信息(如配置文件、环境变量等)。

    • Secret

      是用于存储敏感信息(如密码、OAuth令牌、SSH密钥等)的API对象。它与ConfigMap类似,但提供了额外的安全性,例如数据加密存储。

    • DownwardAPI

      是一种将Pod和容器的元数据(如名称、IP地址、资源限制等)注入到容器中的机制,可以让我们的容器获得Pod和容器的信息,可以通过环境变量或数据卷挂载进行暴露

  • 其他

    • Role
    • RoleBinding

      将角色(Role 或 ClusterRole)与用户、组或服务账户绑定到命名空间

三、对象规约和状态

1、规约(Spec)
  • 可理解为期望状态,当创建k8s对象时,必须规定你期望的对象的状态
2、状态(Status)
  • 可理解为正常状态,
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值