当前位置: 首页 > news >正文

k8s相关技术栈

文章目录

    • 一、k8s技术栈
      • 核心组件
      • 常见工具和服务
      • 生态系统
    • 二、k8s服务组件
      • 控制平面组件
      • 节点组件
      • 附加组件和服务
    • 三、k8s 常见资源
      • 核心资源
      • 扩展资源
    • 四、系列文档
    • 其他参考

一、k8s技术栈

Kubernetes(常被简称为 K8s,其中 “K” 代表 “Kubernetes” 的首字母,“8” 代表两者之间的八个字母,“s” 代表 “system” 或 “services”)是一个开源的容器编排平台,用于自动化应用部署、扩展和管理。Kubernetes 技术栈包括了以下几个主要组件和技术:

核心组件

  1. API Server - 提供了集群内部的 RESTful API 接口,是集群控制面的核心网络服务。
  2. Controller Manager - 负责运行控制器,这些控制器处理各种控制循环工作,例如复制控制器来保持期望状态。
  3. Scheduler - 负责监视新创建的未调度的 Pod,并选择一个节点来运行它们。
  4. etcd - 存储集群所有数据的键值存储系统。
  5. Kubelet - 在每个节点上运行的一个代理,负责使 Pod 和容器在其主机上运行。
  6. Kube-proxy - 维护节点上的网络规则,实现 Kubernetes 服务(Service)概念。
  7. Container Runtime Interface (CRI) - 允许 Kubernetes 与容器运行时交互(如 Docker, containerd, CRI-O 等)。

常见工具和服务

  • Helm - 一个用于 Kubernetes 的包管理器,它帮助定义、安装和升级复杂的应用程序。
  • kubectl - Kubernetes 命令行工具,用来运行命令与集群进行交互。
  • Docker - 最常用的容器运行时之一,用于构建、打包和运行容器。
  • Prometheus & Grafana - 用于监控和可视化 Kubernetes 集群性能的工具。
  • Fluentd/Fluent Bit - 日志收集工具,通常用于 Kubernetes 日志聚合。
  • Istio - 服务网格平台,提供了一种透明的方式来连接、保护、控制和观察服务。
  • Kubernetes Dashboard - Kubernetes 的 Web UI,为集群提供了基本的管理和故障排除功能。
  • Kubernetes Ingress Controller - 实现负载均衡,暴露服务到外部流量。
  • Kubernetes Service Mesh - 如 Istio 或 Linkerd,用于管理服务间通信。

生态系统

Kubernetes 拥有一个庞大的生态系统,其中包括了大量的插件、附加组件和服务,用于支持不同的工作负载和需求,比如存储、网络、安全等。

了解 Kubernetes 的技术栈对于有效地部署和管理容器化应用程序至关重要。随着 Kubernetes 社区的不断增长和发展,新的工具和技术也在不断涌现,以增强其功能和易用性。

二、k8s服务组件

Kubernetes(K8s)服务组件可以分为两大类:控制平面组件和节点组件。控制平面组件负责管理整个集群的状态,而节点组件则负责管理节点上的容器。下面详细列出了这两类组件以及一些常见的附加组件和服务。

控制平面组件

  1. API Server

    • 提供了集群的主要网络入口点。
    • 所有对象的存储状态都通过此服务器访问。
    • 实现了 Kubernetes 的 REST API。
  2. Controller Manager

    • 包含一组控制循环,每个循环负责同步一个特定方面的集群状态。
    • 控制器的例子包括副本控制器、部署控制器、命名空间控制器等。
  3. Scheduler

    • 观察所有未分配给节点的新创建的 Pod。
    • 选择合适的节点来运行 Pod。
    • 如果没有合适的节点,则不会调度 Pod。
  4. etcd

    • 分布式键值存储,用于存储所有集群数据。
  5. Cloud Controller Manager

    • 对于云托管的集群,它负责与云提供商的交互。
    • 管理诸如节点实例、负载均衡器等资源。

节点组件

  1. Kubelet

    • 每个节点上的代理,负责执行 Pod 和容器。
    • 与 API 服务器通信,获取分配给该节点的 Pod。
    • 监控 Pod 的状态,并向 API 服务器报告。
  2. Kube-proxy

    • 维护节点的网络规则。
    • 使得 Pod 可以在集群内部通信,并且可以通过外部 IP 地址和端口访问。
  3. Container Runtime

    • 负责拉取和运行容器。
    • 常见的容器运行时有 Docker、containerd 和 CRI-O。

附加组件和服务

除了核心组件之外,还有许多附加组件和服务,它们不是 Kubernetes 的一部分,但通常与 Kubernetes 一起使用来增强其功能或简化某些操作。以下是一些常见的附加组件和服务:

  1. Ingress Controllers

    • 实现外部访问集群内服务的规则。
    • 通常与负载均衡器和反向代理一起使用。
    • 示例包括 Nginx Ingress Controller、Traefik 等。
  2. Service Mesh

    • 如 Istio、Linkerd 或 Consul Connect。
    • 提供服务间通信的安全性和可观察性。
  3. Monitoring and Logging

    • 监控工具如 Prometheus 和 Grafana。
    • 日志收集工具如 Fluentd 或 Fluent Bit。
  4. CI/CD Tools

    • 如 Jenkins、GitLab CI/CD、Spinnaker 等,用于持续集成和持续交付。
  5. Package Management

    • Helm 是 Kubernetes 上的应用程序包管理器。
  6. Storage Orchestration

    • 如 Rook,用于管理存储基础设施。
  7. Network Policies and Security

    • Calico、Antrea 等用于网络策略实施。
    • 网络隔离和安全工具,如 kube-router。

这些组件共同构成了 Kubernetes 的强大生态系统,允许用户以更高效、安全的方式部署、管理和扩展应用程序。

三、k8s 常见资源

在 Kubernetes 中,资源(Resources)是指可以被创建、更新、删除或查询的对象。这些资源由 Kubernetes API 定义,并通过 kubectl 命令行工具或其他客户端库进行交互。以下是 Kubernetes 中一些最常见的资源类型及其用途:

核心资源

  1. Pods

    • 最小的可部署单元。
    • 包含一个或多个容器,共享存储和网络资源。
    • 通常由更高级别的抽象来管理,如 Deployment 或 StatefulSet。
  2. Services

    • 定义逻辑上的“服务”,可以将流量路由到一组 Pods。
    • 提供服务发现机制和负载均衡功能。
    • 可以定义不同类型的 Services,如 ClusterIP、NodePort、LoadBalancer 等。
  3. ReplicaSets

    • 确保任何时刻都有指定数量的 Pod 副本正在运行。
    • 通常不直接使用,而是通过 Deployment 来间接管理。
  4. Deployments

    • 提供声明式的更新机制,用于创建和管理 ReplicaSets。
    • 用于自动滚动更新和回滚应用程序。
  5. StatefulSets

    • 为有状态应用程序提供管理,确保每个 Pod 有一个持久的身份和持久存储。
    • 支持有序部署和优雅地缩放。
  6. DaemonSets

    • 确保所有(或某些)节点上运行一个 Pod 的副本。
    • 通常用于运行集群范围的服务,如日志聚合或监控代理。
  7. Jobs

    • 运行批处理任务,直到成功完成指定的工作量。
    • 可以跟踪任务是否成功完成。
  8. CronJobs

    • 创建基于时间的任务,类似于 Unix cron。
    • 用于定期执行 Jobs。
  9. ConfigMaps

    • 用于存储非机密的数据,如配置文件。
    • 可以作为环境变量或挂载卷中的文件注入到 Pods 中。
  10. Secrets

    • 用于存储敏感信息,如密码、OAuth 令牌或 SSH 密钥。
    • 可以以加密的形式存储,并且可以像 ConfigMaps 一样注入到 Pods 中。
  11. PersistentVolumes (PV)

    • 存储资源的声明,由管理员创建并分配给集群。
    • 可以被 PersistentVolumeClaims (PVC) 使用。
  12. PersistentVolumeClaims (PVC)

    • 用户对存储资源的需求声明。
    • 可以绑定到一个 PV,为应用提供持久化的存储。
  13. Ingress

    • 定义外部访问 Kubernetes 服务的规则,如 HTTP。
    • 通常与 Ingress Controller 一起使用,以实现外部负载均衡。
  14. Namespace

    • 提供一种方法来划分集群资源。
    • 有助于组织和限制资源使用。

扩展资源

除了上述核心资源外,还有一些扩展资源,通常是通过安装额外的控制器或 Operator 来添加的,例如:

  1. NetworkPolicy

    • 控制 Pod 间的网络访问。
    • 用于实现细粒度的网络隔离。
  2. HorizontalPodAutoscaler (HPA)

    • 自动调整 Pod 的副本数,基于 CPU 使用率或其他自定义指标。
  3. PriorityClass

    • 为 Pod 分配优先级,影响调度决策。
  4. PodDisruptionBudget (PDB)

    • 控制因维护等原因导致的 Pod 下线的最大数量。
  5. CertificateSigningRequest (CSR)

    • 请求证书签名,用于启用 TLS 加密。
  6. CustomResourceDefinitions (CRDs)

    • 允许定义自定义资源类型,扩展 Kubernetes API。
  7. CronJob

    • 用于计划执行批处理任务。

这些资源共同构成了 Kubernetes 的基础架构,使得用户能够以声明式的方式管理复杂的分布式系统。通过组合这些资源,可以创建出满足各种业务需求的应用程序部署方案。

四、系列文档

// TODO 后续会有相关学习文档补充

其他参考

kubernetes官网地址
kubernetes文档地址
kubernetes中文社区
[kubernetes中文文档]((http://docs.kubernetes.org.cn/)

相关文章:

k8s相关技术栈

文章目录 一、k8s技术栈核心组件常见工具和服务生态系统 二、k8s服务组件控制平面组件节点组件附加组件和服务 三、k8s 常见资源核心资源扩展资源 四、系列文档其他参考 一、k8s技术栈 Kubernetes(常被简称为 K8s,其中 “K” 代表 “Kubernetes” 的首字…...

uniapp h5项目页面中使用了iframe导致浏览器返回按键无法使用, 返回不了上一页.

uniapp h5项目页面中使用了iframe导致浏览器返回按键无法使用, 返回不了上一页. 在 UniApp 中使用 iframe 加载外部页面时,可能会遇到返回键行为不符合预期的问题。这是因为 iframe 本身可以包含多个页面的历史记录,而默认情况下,浏览器的返…...

《2024网络安全十大创新方向》

网络安全是创新驱动型产业,技术创新可以有效应对新的网络安全挑战;或是通过技术创新降低人力成本投入,提升企业运营效率。为推动行业技术创新、产品创新与应用创新,数说安全发布《2024年中国网络安全十大创新方向》,涵…...

深入解析反射型 XSS 与存储型 XSS:原理、危害与防范

在网络安全领域,跨站脚本攻击(XSS)是一种常见的安全漏洞。XSS 攻击可以分为反射型 XSS 和存储型 XSS 两种类型。本文将详细介绍这两种类型的 XSS 攻击的原理、危害和防范措施。 一、反射型 XSS 1、原理 反射型 XSS 攻击也称为非持久性 XSS …...

【STM32+HAL库】---- 驱动MAX30102心率血氧传感器

硬件开发板:STM32F407VET6 软件平台:cubemaxkeilVScode1 MAX30102心率血氧传感器工作原理 MAX30102传感器是一种集成了红外光源、光电检测器和信号处理电路的高度集成传感器,主要用于心率和血氧饱和度的测量。以下是MAX30102传感器的主要特点…...

InstantX团队新作!基于端到端训练的风格转换模型CSGO

由InstantX团队、南京理工大学、北京航空航天大学以及北京大学联合提出了一种基于端到端训练的风格转换模型 CSGO,它采用独立的特征注入明确地解耦内容和风格特征。统一的 CSGO 实现了图像驱动的风格转换、文本驱动的风格化合成和文本编辑驱动的风格化合成。大量实验…...

Nginx安全性配置

文章目录 引言I Nginx简单的安全性配置禁止特定的HTTP方法限制URL长度禁止某些用户代理限制请求速率连接限制禁止访问某些文件类型II 常见的安全规则防御CC攻击User-Agent过滤GET-URL过滤GET-参数过滤POST过滤(sql注入、xss攻击 )引言 Nginx本身并不具备复杂的防火墙规则定制…...

k8s单master多node环境搭建-k8s版本低于1.24,容器运行时为docker

k8s 1.20.6单master多node环境搭建 1.环境规划2.初始化服务器1)配置主机名2)设置IP为静态IP3)关闭selinux4)配置主机hosts文件5)配置三台主机之间免密登录6)关闭交换分区swap,提升性能7&#xf…...

taro ui 小程序at-calendar日历组件自定义样式+选择范围日历崩溃处理

taro ui 日历文档 目录 单选标记时间: 效果: template: data: methods: 日历--范围选择: 效果: template: data: methods: 日历--间隔多选:利用标…...

ARM发布新一代高性能处理器N3

简介 就在2月21日,ARM发布了新一代面向服务器的高性能处理器N3和V3,N系列平衡性能和功耗,而V系列则注重更高的性能。此次发布的N3,单个die最高32核(并加入到CCS,Compute Subsystems,包含Core&a…...

基于Pytorch框架的深度学习U2Net网络天空语义精细分割系统源码

第一步:准备数据 头发分割数据,总共有10276张图片,里面的像素值为0和1,所以看起来全部是黑的,不影响使用 第二步:搭建模型 级联模式 通常多个类似U-Net按顺序堆叠,以建立级联模型&#xff0c…...

50ETF期权和股指期权有什么区别?ETF期权应该怎么做?

今天期权懂带你了解50ETF期权和股指期权有什么区别?ETF期权应该怎么做?ETF是对个股期权,股指期权是对应该股指期货的,那么股指期权和etf期权有什么区别? 股指期权怎么交易 股指期权交易要开通股指期货账户&#xff0…...

JS设计模式之“神奇的魔术师” - 简单工厂模式

引言 在JavaScript开发中,我们经常需要创建和管理各种对象,而简单工厂模式就是一种最简单的用来创建对象的设计模式。 简单工厂模式通过一个工厂类来创建相似的对象,而无需直接使用具体类来实例化对象。这样可以将对象的创建过程与使用过程…...

【河北航空-注册安全分析报告-无验证方式导致安全隐患】

前言 由于网站注册入口容易被黑客攻击,存在如下安全问题: 1. 暴力破解密码,造成用户信息泄露 2. 短信盗刷的安全问题,影响业务及导致用户投诉 3. 带来经济损失,尤其是后付费客户,风险巨大,造…...

亚信安慧AntDB-T数据库内核之MVCC机制

本文主要介绍AntDB数据库内核中的一个很重要的机制——MVCC机制。 MVCC简介 MVCC(多版本并发控制)是AntDB数据库中实现事务隔离级别的一种机制。它允许多个事务同时对数据进行读写和修改操作,而不会相互干扰。在MVCC中,每个数据…...

【python】socket 入门以及多线程tcp链接

Socket 入门 及 多线程tcp链接 网络基础知识三要素 Socket是套接字的意思,是网络编程的核心对象,通信两端都独有自己的Socket对象, 数据在两个Socket之间通过 字节流(TCP协议) 或者 数据报包(UDP协议)的形式进行传输. 本文主要针对tcp流程进行讲解 socket-tcp流程图 1.创建服…...

【ZYNQ MPSoC开发】lwIP TCP发送用于数据缓存的软件FIFO设计

设计背景 任务是在ZYNQ的PS上使用裸机运行lwIP协议栈使用TCP把PL端通过AXI DMA传来的将近100K采样率的ADC数据发送出去,但由于数据带宽很大,有853.3mbps,所以在每一次AXI DMA简单传输结束后,lwIP未必有足够的发送buffer立即把数据…...

【TVM 教程】在 Relay 中使用外部库

Apache TVM 是一个端到端的深度学习编译框架,适用于 CPU、GPU 和各种机器学习加速芯片。更多 TVM 中文文档可访问 → https://tvm.hyper.ai/ 作者:Masahiro Masuda,Truman Tian 本文介绍如何将 cuDNN 或 cuBLAS 等外部库与 Relay 一起使用。…...

2024最新大厂面试:汇川嵌入式面试题及参考答案

目录 结合汇川业务,谈谈你对嵌入式开发的理解。 你使用过哪些芯片?请介绍它们的架构,例如 CORTEX-M3。 请描述项目的软件架构及其难点。 请介绍 SPI 的驱动和时序,包括 CS 拉低后到 CLK 第一个跳变沿的时间。同时,也请简要介绍数据链路层的相关知识。 栈溢出的原理是…...

tcp 流量控制

TCP流量控制是TCP/IP协议中用于控制发送方和接收方之间数据传输速率的一种机制,以防止网络拥塞和确保网络资源的有效利用。流量控制主要通过调整TCP窗口大小来实现,确保发送方不会发送超出接收方处理能力的数据量。以下是TCP流量控制的关键概念和工作原理…...

微信小程序之bind和catch

这两个呢,都是绑定事件用的,具体使用有些小区别。 官方文档: 事件冒泡处理不同 bind:绑定的事件会向上冒泡,即触发当前组件的事件后,还会继续触发父组件的相同事件。例如,有一个子视图绑定了b…...

Linux相关概念和易错知识点(42)(TCP的连接管理、可靠性、面临复杂网络的处理)

目录 1.TCP的连接管理机制(1)三次握手①握手过程②对握手过程的理解 (2)四次挥手(3)握手和挥手的触发(4)状态切换①挥手过程中状态的切换②握手过程中状态的切换 2.TCP的可靠性&…...

SpringBoot+uniapp 的 Champion 俱乐部微信小程序设计与实现,论文初版实现

摘要 本论文旨在设计并实现基于 SpringBoot 和 uniapp 的 Champion 俱乐部微信小程序,以满足俱乐部线上活动推广、会员管理、社交互动等需求。通过 SpringBoot 搭建后端服务,提供稳定高效的数据处理与业务逻辑支持;利用 uniapp 实现跨平台前…...

Maven 概述、安装、配置、仓库、私服详解

目录 1、Maven 概述 1.1 Maven 的定义 1.2 Maven 解决的问题 1.3 Maven 的核心特性与优势 2、Maven 安装 2.1 下载 Maven 2.2 安装配置 Maven 2.3 测试安装 2.4 修改 Maven 本地仓库的默认路径 3、Maven 配置 3.1 配置本地仓库 3.2 配置 JDK 3.3 IDEA 配置本地 Ma…...

中医有效性探讨

文章目录 西医是如何发展到以生物化学为药理基础的现代医学?传统医学奠基期(远古 - 17 世纪)近代医学转型期(17 世纪 - 19 世纪末)​现代医学成熟期(20世纪至今) 中医的源远流长和一脉相承远古至…...

2025年渗透测试面试题总结-腾讯[实习]科恩实验室-安全工程师(题目+回答)

安全领域各种资源,学习文档,以及工具分享、前沿信息分享、POC、EXP分享。不定期分享各种好玩的项目及好用的工具,欢迎关注。 目录 腾讯[实习]科恩实验室-安全工程师 一、网络与协议 1. TCP三次握手 2. SYN扫描原理 3. HTTPS证书机制 二…...

「全栈技术解析」推客小程序系统开发:从架构设计到裂变增长的完整解决方案

在移动互联网营销竞争白热化的当下,推客小程序系统凭借其裂变传播、精准营销等特性,成为企业抢占市场的利器。本文将深度解析推客小程序系统开发的核心技术与实现路径,助力开发者打造具有市场竞争力的营销工具。​ 一、系统核心功能架构&…...

Xela矩阵三轴触觉传感器的工作原理解析与应用场景

Xela矩阵三轴触觉传感器通过先进技术模拟人类触觉感知,帮助设备实现精确的力测量与位移监测。其核心功能基于磁性三维力测量与空间位移测量,能够捕捉多维触觉信息。该传感器的设计不仅提升了触觉感知的精度,还为机器人、医疗设备和制造业的智…...

Neko虚拟浏览器远程协作方案:Docker+内网穿透技术部署实践

前言:本文将向开发者介绍一款创新性协作工具——Neko虚拟浏览器。在数字化协作场景中,跨地域的团队常需面对实时共享屏幕、协同编辑文档等需求。通过本指南,你将掌握在Ubuntu系统中使用容器化技术部署该工具的具体方案,并结合内网…...

在RK3588上搭建ROS1环境:创建节点与数据可视化实战指南

在RK3588上搭建ROS1环境:创建节点与数据可视化实战指南 背景介绍完整操作步骤1. 创建Docker容器环境2. 验证GUI显示功能3. 安装ROS Noetic4. 配置环境变量5. 创建ROS节点(小球运动模拟)6. 配置RVIZ默认视图7. 创建启动脚本8. 运行可视化系统效果展示与交互技术解析ROS节点通…...