当前位置: 首页 > 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流量控制的关键概念和工作原理…...

[特殊字符] 智能合约中的数据是如何在区块链中保持一致的?

🧠 智能合约中的数据是如何在区块链中保持一致的? 为什么所有区块链节点都能得出相同结果?合约调用这么复杂,状态真能保持一致吗?本篇带你从底层视角理解“状态一致性”的真相。 一、智能合约的数据存储在哪里&#xf…...

工业安全零事故的智能守护者:一体化AI智能安防平台

前言: 通过AI视觉技术,为船厂提供全面的安全监控解决方案,涵盖交通违规检测、起重机轨道安全、非法入侵检测、盗窃防范、安全规范执行监控等多个方面,能够实现对应负责人反馈机制,并最终实现数据的统计报表。提升船厂…...

基于uniapp+WebSocket实现聊天对话、消息监听、消息推送、聊天室等功能,多端兼容

基于 ​UniApp + WebSocket​实现多端兼容的实时通讯系统,涵盖WebSocket连接建立、消息收发机制、多端兼容性配置、消息实时监听等功能,适配​微信小程序、H5、Android、iOS等终端 目录 技术选型分析WebSocket协议优势UniApp跨平台特性WebSocket 基础实现连接管理消息收发连接…...

【磁盘】每天掌握一个Linux命令 - iostat

目录 【磁盘】每天掌握一个Linux命令 - iostat工具概述安装方式核心功能基础用法进阶操作实战案例面试题场景生产场景 注意事项 【磁盘】每天掌握一个Linux命令 - iostat 工具概述 iostat(I/O Statistics)是Linux系统下用于监视系统输入输出设备和CPU使…...

ETLCloud可能遇到的问题有哪些?常见坑位解析

数据集成平台ETLCloud,主要用于支持数据的抽取(Extract)、转换(Transform)和加载(Load)过程。提供了一个简洁直观的界面,以便用户可以在不同的数据源之间轻松地进行数据迁移和转换。…...

CRMEB 框架中 PHP 上传扩展开发:涵盖本地上传及阿里云 OSS、腾讯云 COS、七牛云

目前已有本地上传、阿里云OSS上传、腾讯云COS上传、七牛云上传扩展 扩展入口文件 文件目录 crmeb\services\upload\Upload.php namespace crmeb\services\upload;use crmeb\basic\BaseManager; use think\facade\Config;/*** Class Upload* package crmeb\services\upload* …...

【HTTP三个基础问题】

面试官您好!HTTP是超文本传输协议,是互联网上客户端和服务器之间传输超文本数据(比如文字、图片、音频、视频等)的核心协议,当前互联网应用最广泛的版本是HTTP1.1,它基于经典的C/S模型,也就是客…...

Spring数据访问模块设计

前面我们已经完成了IoC和web模块的设计,聪明的码友立马就知道了,该到数据访问模块了,要不就这俩玩个6啊,查库势在必行,至此,它来了。 一、核心设计理念 1、痛点在哪 应用离不开数据(数据库、No…...

精益数据分析(97/126):邮件营销与用户参与度的关键指标优化指南

精益数据分析(97/126):邮件营销与用户参与度的关键指标优化指南 在数字化营销时代,邮件列表效度、用户参与度和网站性能等指标往往决定着创业公司的增长成败。今天,我们将深入解析邮件打开率、网站可用性、页面参与时…...

rnn判断string中第一次出现a的下标

# coding:utf8 import torch import torch.nn as nn import numpy as np import random import json""" 基于pytorch的网络编写 实现一个RNN网络完成多分类任务 判断字符 a 第一次出现在字符串中的位置 """class TorchModel(nn.Module):def __in…...