Qouson's blog Qouson's blog
首页
  • Java 基础

    • 基础
    • String
  • Java 中级

    • 网络编程
  • Java 高级

    • JVM
    • 多线程
  • Spring
  • SpringMVC
  • SpringBoot
  • MySQL
  • Redis
  • MQ
  • ZooKeeper
  • git
  • linux
  • 设计模式
  • 数据结构与算法
  • 计算机基础
  • Java相关框架
  • 分布式
  • DDD领域驱动设计
  • 系统设计
  • 杂乱无章
Java知识图谱
  • 分类
  • 标签
  • 归档
GitHub (opens new window)

qouson

Java界的小学生
首页
  • Java 基础

    • 基础
    • String
  • Java 中级

    • 网络编程
  • Java 高级

    • JVM
    • 多线程
  • Spring
  • SpringMVC
  • SpringBoot
  • MySQL
  • Redis
  • MQ
  • ZooKeeper
  • git
  • linux
  • 设计模式
  • 数据结构与算法
  • 计算机基础
  • Java相关框架
  • 分布式
  • DDD领域驱动设计
  • 系统设计
  • 杂乱无章
Java知识图谱
  • 分类
  • 标签
  • 归档
GitHub (opens new window)
  • git

  • linux

  • 设计模式

  • 数据结构与算法

  • 计算机基础

  • Java相关框架

  • 分布式

  • DDD领域驱动设计

  • 系统设计

  • DevOps

    • kubenetes
      • 1.什么是Kubenetes
      • 2.核心概念
        • Node
        • Pod
        • Deploymnet
        • Service
        • Service和Deployment区别与联系
      • 3.Kubenetes组件
      • 控制平面组件
      • 节点组件
  • python

  • 杂乱无章

  • 更多
  • DevOps
qouson
2024-06-19
目录

kubenetes

# Kubenetes(k8s)

# 1.什么是Kubenetes

Kubenetes是Google开源的容器集群管理系统,主要负责容器编排。它支持自动化部署,大规模可伸缩,应用容器化管理。在生产环境部署一个应用程序时,通常要部署该应用的多个实例以便应用请求负载均衡。在Kubenetes中,这些实例被抽象为容器。每个容器里面运行一个应用实例。然后通过内置的负载均衡策略,实现对这已组应用的管理,发现,访问,而这些细节不需要运维人员去进行复杂的手工配置和处理。

# 2.核心概念

# Node

Node是Kubenetes集群中的工作节点,可以是物理机也可以是虚拟机。 用于托管正在运营的应用,可以虚拟机或物理机,它是在集群中充当工作机器的角色,每个Node都有Kubelet,它管理Node而且是Node与Master通信的代理,Node还具有用于处理容器操作的工具,例如Docker或rkt。

Master是Kubenetes集群的调度器,它负责管理整个集群。 协调集群中所有活动,例如调用应用,维护应用的所需状态,应用扩容以及推出新的更新。

# Pod

Pod相当于逻辑主机的概念,负责托管应用实例。包括一个或多个应用程序容器,以及这些容器的一些共享资源(共享存储,网络,运行信息等。)

Pod是Kubenetes的最小工作单元,每个Pod包含一个或多个容器。 Pod中的容器共享网络和存储,它们之间可以通过localhost进行通信。 Pod中的容器可以共享资源,例如CPU和内存。 Pod中的容器可以共享存储,例如Docker卷。 Pod中的容器可以协调和同步,例如Docker容器的生命周期。

# Deploymnet

负责创建和更新应用程序的实例。创建Deployment后,Kubenetes Master将应用程序实例调度到集群的各个节点上。如果托管实例的节点关闭或被删除,Deployment控制器会将该实例替换为集群中例已个节点上的实例,这提供了一种自我修复机制来解决机器故障维护问题。

本身之上是Pod控制器,配置一组Pod,k8s不会直接控制Pod,而是操作Deployment

# Service

Service是一个抽象层,它定义了一组Pod逻辑集合,并为这些Pod支持外部流量暴露,负载均衡和服务发现。

尽管每个Pod都有一个唯一的IP地址,但是如果没有Service,这些IP不会暴露在集群外部。Service允许你的应用接收流量。Service也可以用在ServiceSpec标记为type的方式暴露,type类型如下:

  • ClusterIP(默认):在集群的内部IP上公开Service,这种类型使得Service只能从集群访问
  • NodePort:使用NAT在集群中每个选定的Node的相同端口上公开Service。使用:从集群外部访问Service。是ClusterIP的超集。
  • LoadBalancer:在当前云中创建一个外部负载均衡器(如果支持的话),并为Service分配一个固定的外部IP。是NodePort的超集。
  • ExternelName:通过返回带有名称的CNAME记录,使用任意名称(由spec中的externalName指定)公开Service。不使用代理。

# Service和Deployment区别与联系

参考 https://blog.csdn.net/HiWangWenBing/article/details/122798876

# 3.Kubenetes组件

# 控制平面组件

  • 1.API server
    • 资源操作的唯一入口,接收用户输入的命令,提供认证,授权,API注册和发现机制
  • 2.Etcd
    • 负责存储集群中各种资源对象的信息
  • 3.Scheduler
    • 负责集群资源调度,按照预定的调度策略将Pod调度到相应的Node节点上
  • 4.Controller manager
    • 负责维护集群的状态,比如程序部署安排,故障检测,自动扩展,滚动更新(部署和维护)

# 节点组件

  • 1.kubelet
    • 负责维护容器的生命周期,即通过控制docker,来创建更新,销毁容器
  • 2.kube-proxy
    • 负责提供集群内部服务发现和负载均衡
  • 3.Docker(Container runtime)
    • 负责节点上容器的各种操作
编辑 (opens new window)
上次更新: 2024/11/05, 15:11:10
分销系统
python

← 分销系统 python→

最近更新
01
杂乱无章
12-25
02
基础-大彬
11-14
03
集合-大彬
11-14
更多文章>
Theme by Vdoing | Copyright © 2023-2025 qouson
  • 跟随系统
  • 浅色模式
  • 深色模式
  • 阅读模式