Kubernetes 笔记

kubernetes 设计架构 kubernetes 设计架构 Kubernetes集群包含有节点代理kubelet和Master组件(API,Scheduler,etc),一切都基于分布式的存储系统。下面是kubernetes的架构图 kubernetes节点 在这张系统架构图中,我们把服务氛围运行在工作节点上的服务和组成集群级别控制板的服务 kubernetnes节点有运行应用容器必备的服务,而这些都是受Master的控制... 阅读详情

Kubernetes 是什么

  1. Kubernetes是当今最流行的开源容器管理平台,它就是大名鼎鼎的Google Borg的开源版本。
  2. Kubernetes源于希腊语,意为舵手,K8S是一个简称,因为首尾字母中间正好有8个字母。基于容器技术,Kubernetes可以方便的进行集群应用的部署、扩容、缩容、自愈机制、服务发现、负载均衡、日志、监控等功能,大大减少日常运维的工作量。
  3. Kubernetes所有的操作都可以通过Kubernetes API来进行,通过API来操作Kubernetes中的对象,包括Pod、Service、Volume、Namespace等等。

Kubernetes 设计架构

Kubernetes借鉴了Borg的设计理念,比如Pod、Service、Labels和单Pod单IP等。Kubernetes的整体架构跟Borg非常像,如下图所示:

Kubernetes主要由以下几个核心组件组成:

  1. etcd保存了整个集群的状态;
  2. apiserver提供了资源操作的唯一入口,并提供认证、授权、访问控制、API注册和发现等机制;
  3. controller manager负责维护集群的状态,比如故障检测、自动扩展、滚动更新等;
  4. scheduler负责资源的调度,按照预定的调度策略将Pod调度到相应的机器上;
  5. kubelet负责维护容器的生命周期,同时也负责Volume(CVI)和网络(CNI)的管理;Container runtime负责镜像管理以及Pod和容器的真正运行(CRI);
  6. kube-proxy负责为Service提供cluster内部的服务发现和负载均衡;\

除了核心组件,还有一些推荐的Add-ons:

  1. CoreDNS负责为整个集群提供DNS服务
  2. Ingress Controller为服务提供外网入口
  3. Heapster提供资源监控
  4. Dashboard提供GUI
  5. Federation提供跨可用区的集群
  6. Fluentd-elasticsearch提供集群日志采集、存储与查询


Kubernetes的核心技术概念和API对象

  1. API对象是K8s集群中的管理操作单元。K8s集群系统每支持一项新功能,引入一项新技术,一定会新引入对应的API对象,支持对该功能的管理操作。例如副本集Replica Set对应的API对象是RS。
  2. 每个API对象都有3大类属性:元数据metadata、规范spec和状态status。
    1. 元数据是用来标识API对象的,每个对象都至少有3个元数据:namespace,name和uid;除此以外还有各种各样的标签labels用来标识和匹配不同的对象,例如用户可以用标签env来标识区分不同的服务部署环境,分别用env=dev、env=testing、env=production来标识开发、测试、生产的不同服务。
    2. 规范描述了用户期望K8s集群中的分布式系统达到的理想状态(Desired State),例如用户可以通过复制控制器Replication Controller设置期望的Pod副本数为3;status描述了系统实际当前达到的状态(Status),例如系统当前实际的Pod副本数为2;那么复制控制器当前的程序逻辑就是自动启动新的Pod,争取达到副本数为3。
    3. K8s中所有的配置都是通过API对象的spec去设置的,也就是用户通过配置系统的理想状态来改变系统,这是k8s重要设计理念之一,即所有的操作都是声明式(Declarative)的而不是命令式(Imperative)的。声明式操作在分布式系统中的好处是稳定,不怕丢操作或运行多次,例如设置副本数为3的操作运行多次也还是一个结果,而给副本数加1的操作就不是声明式的,运行多次结果就错了。
  1. Cluster
    1. Cluster 是计算、存储和网络资源的集合,Kubernetes 利用这些资源运行各种基于容器的应用。
    2. Master
      Master 是 Cluster 的大脑,它的主要职责是调度,即决定将应用放在哪里运行。Master 运行 Linux 操作系统,可以是物理机或者虚拟机。为了实现高可用,可以运行多个 Master。
  1. Node
    Node 的职责是运行容器应用。Node 由 Master 管理,Node 负责监控并汇报容器的状态,并根据 Master 的要求管理容器的生命周期。Node 运行在 Linux 操作系统,可以是物理机或者是虚拟机
  2. Pod
    Pod 是 Kubernetes 的最小工作单元。每个 Pod 包含一个或多个容器。Pod 中的容器会作为一个整体被 Master 调度到一个 Node 上运行。Kubernetes 引入 Pod 主要基于下面两个目的:
    1. 可管理性
      有些容器天生就是需要紧密联系,一起工作。Pod 提供了比容器更高层次的抽象,将它们封装到一个部署单元中。Kubernetes 以 Pod 为最小单位进行调度、扩展、共享资源、管理生命周期。
    2. 通信和资源共享
      Pod 中的所有容器使用同一个网络 namespace,即相同的 IP 地址和 Port 空间。它们可以直接用 localhost 通信。同样的,这些容器可以共享存储,当 Kubernetes 挂载 volume 到 Pod,本质上是将 volume 挂载到 Pod 中的每一个容器。

    1. File Puller 会定期从外部的 Content Manager 中拉取最新的文件,将其存放在共享的 volume 中。Web Server 从 volume 读取文件,响应 Consumer 的请求。这两个容器是紧密协作的,它们一起为 Consumer 提供最新的数据;同时它们也通过 volume 共享数据。所以放到一个 Pod 是合适的
  1. Controller
    Kubernetes 通常不会直接创建 Pod,而是通过 Controller 来管理 Pod 的。Controller 中定义了 Pod 的部署特性,比如有几个副本,在什么样的 Node 上运行等。为了满足不同的业务场景,Kubernetes 提供了多种 Controller,包括 Deployment、ReplicaSet、DaemonSet、StatefuleSet、Job 等。
  2. Deployment
    Deployment 是最常用的 Controller,比如前面在线教程中就是通过创建 Deployment 来部署应用的。Deployment 可以管理 Pod 的多个副本,并确保 Pod 按照期望的状态运行。
  3. ReplicaSet
    ReplicaSet 实现了 Pod 的多副本管理。使用 Deployment 时会自动创建 ReplicaSet,也就是说 Deployment 是通过 ReplicaSet 来管理 Pod 的多个副本,我们通常不需要直接使用 ReplicaSet。
  4. DaemonSet
    DaemonSet 用于每个 Node 最多只运行一个 Pod 副本的场景。正如其名称所揭示的,DaemonSet 通常用于运行 daemon。
  5. StatefuleSet
    StatefuleSet 能够保证 Pod 的每个副本在整个生命周期中名称是不变的。而其他 Controller 不提供这个功能,当某个 Pod 发生故障需要删除并重新启动时,Pod 的名称会发生变化。同时 StatefuleSet 会保证副本按照固定的顺序启动、更新或者删除。
  6. Job
    Job 用于运行结束就删除的应用。而其他 Controller 中的 Pod 通常是长期持续运行。
  7. Service
    RC、RS和Deployment只是保证了支撑服务的微服务Pod的数量,但是没有解决如何访问这些服务的问题。一个Pod只是一个运行服务的实例,随时可能在一个节点上停止,在另一个节点以一个新的IP启动一个新的Pod,因此不能以确定的IP和端口号提供服务。要稳定地提供服务需要服务发现和负载均衡能力。服务发现完成的工作,是针对客户端访问的服务,找到对应的的后端服务实例。在K8s集群中,客户端需要访问的服务就是Service对象。每个Service会对应一个集群内部有效的虚拟IP,集群内部通过虚拟IP访问一个服务。在K8s集群中微服务的负载均衡是由Kube-proxy实现的。Kube-proxy是K8s集群内部的负载均衡器。它是一个分布式代理服务器,在K8s的每个节点上都有一个;这一设计体现了它的伸缩性优势,需要访问服务的节点越多,提供负载均衡能力的Kube-proxy就越多,高可用节点也随之增多。与之相比,我们平时在服务器端做个反向代理做负载均衡,还要进一步解决反向代理的负载均衡和高可用问题。
    Kubernetes 运行容器(Pod)与访问容器(Pod)这两项任务分别由 Controller 和 Service 执行。
  8. Namespace
    名字空间为K8s集群提供虚拟的隔离作用,K8s集群初始有两个名字空间,分别是默认名字空间default和系统名字空间kube-system,除此以外,管理员可以可以创建新的名字空间满足需要。

Kubernetes(K8S)学习笔记 基本概念 1.Master   k8s集群的管理节点,负责管理集群,提供集群的资源数据访问入口。拥有Etcd存储服务(可选),运行Api Server进程,Controller Manager服务进程及Scheduler服务进程,关联工作节点Node。Kubernetes API server提供HTTP Rest接口的关键服务进程,是Kubernetes里所有资源的增、删、改、查等操作的唯一入... 阅读详情

相关推荐

Kubernetes k8s学习笔记 尚硅谷王泽老师 由浅入深

Kubernetes k8s学习笔记尚硅谷2019 这里写目录标题Kubernetes k8s学习笔记尚硅谷2019Kubernetes 特点Kubernetes 学习知识点Kubernetes 组件说明brog的架构K8S的架构 Kubernetes 特点 Kubernetes 学习知识点 Kubernetes 组件说明 brog的架构 k8s算是brog系统的GO语言版 Brog Master负责请求分发 分发到Broglet完成工作 BrogMaster节点最好三个以上且单数 Seched

weixin_43691773的博客 4889

Kubernetes(k8s)容器编排组件介绍

目录 1 整体架构 1.1 Master 架构 1.2 Node 架构 2 k8s部署组件介绍 2.1 K8s 集群架构图 2.2 k8s控制组件 2.2.1 控制平面 2.2.2 kube-apiserver 2.2.3 kube-scheduler 2.2.4 kube-controller-manager 2.2.5 etcd 2.3 k8s运行组件 2.3.1 k8s节点 2.3.2 容器集 2.3.3 容器运行时引擎 2.3.4 kubelet 2.3.5 kube-proxy

赵广陆 1225

Kubernetes 系列学习笔记 - 理论详解 (初识 K8s)

文章目录前言Kubernetes/K8s 理论详解1.K8s 是什么?2.K8s 特性3.小拓展(业务升级)4.K8s 集群架构与组件①架构拓扑图:②Master 组件③Node 组件5.K8s 核心概念 前言 Kubernetes,简称 K8s,是一个开源的,用于管理云平台中多个主机上的容器化的应用 其技术难度与入门门槛较高,学习之前,建议掌握以下基础: 熟悉 Linux 基础命令 熟悉 Docker 基本管理 了解 SSL 证书工作原理 了解负载均衡工作原理(L4/L7) 了解群集(分布式概念) 了解

Xucf1 4605

Kubernetes设计架构

Kubernetes集群包含有节点代理kubelet和Master组件(APIs, scheduler, etc),一切都基于分布式的存储系统。下面这张图是Kubernetes的架构图。 Kubernetes节点 在这张系统架构图中,我们把服务分为运行在工作节点上的服务和组成集群级别控制板的服务。 Kubernetes节点有运行应用容器必备的服务,而这些都是受Master的控制。 每次个节点上当然都要运行Docker。Docker来负责所有具体的映像下载和容器运行。 Kubernetes主

summer_fish的专栏 1708

【云原生之kubernetes实战】在k8s环境下部署Leanote蚂蚁笔记工具

【云原生之kubernetes实战】在k8s环境下部署Leanote蚂蚁笔记工具

jks212454的博客 2087

【云原生之kubernetes实战】在k8s环境下部署flatnotes笔记工具

【云原生之kubernetes实战】在k8s环境下部署flatnotes笔记工具

jks212454的博客 1060

新手学编程必会的100个代码(从零基础到精通,收藏这篇就够了)

我记得刚开始接触编程的时候,觉得太难了。也很好奇,写代码的那些人也太厉害了吧?全是英文的,他们的英文水平一定很好吧?他们是怎么记住这么多代码格式的?而且错了一个标点符号,整个程序都会有影响。一个程序几千行,错一个标点符号都不行这也太难了吧?带着新手的灵魂拷问,作为从业后端10年的开发者,我来为大家拨开云雾。看完以后你就会明白,其实他们也没那么厉害!即便你是初中文凭,也照样能编程。新手学编程必会的100个代码对于python语言来说,要记得东西其实不多,基本就是几个常用语句加一些关键字而已。

wholeliubei的博客 7958

【云原生之kubernetes实战】在k8s环境下部署Laverna笔记工具

【云原生之kubernetes实战】在k8s环境下部署Laverna笔记工具

jks212454的博客 807

一文看懂Kubernetes网络整体架构

最近老周做了这么个事情,就是我们总部云是HTTPS访问的,而边缘云是K8S的ServiceIp,协议是HTTP的,由于谷歌逐步禁止HTTPS页面加载HTTP资源,所以总部云访问不了边缘云的HTTP资源。在Pod内部,所有容器通过共享网络命名空间实现无缝通信。我们总部网络访问边缘云的网络还要开墙,可能开墙没来得及或者整条链路网络有问题,那么可以在Nginx上做文章,把HTTPS 443 端口rewrite成原先HTTP的80端口,开关配置成走旧的HTTP那套逻辑,这样的话即使有问题也能无感兼容。

riemann_的博客 2196

【云原生之kubernetes实战】在k8s环境下部署Note Mark笔记工具

【云原生之kubernetes实战】在k8s环境下部署Note Mark笔记工具

jks212454的博客 800

从零开始:kohya_ss环境部署与LoRA/SDXL模型训练实战指南

本文提供了一份详细的kohya_ss环境部署与模型训练实战指南。从零开始,手把手教你使用Conda创建虚拟环境、安装依赖并启动Web GUI界面。核心内容涵盖高质量数据集的准备方法,并重点解析了如何使用kohya_ss工具进行LoRA模型和SDXL模型的微调训练,包括关键参数配置与常见报错解决方案,帮助初学者快速上手AI绘画模型定制。

weixin_29162439的博客 535

Kubernetes(k8s)学习笔记-先导版——一看就会

文章目录1、基本概念1.1、k8s1.2、概念2、网络通信3、资源清单3.1、资源3.2、资源清单3.3、 Pod的声明周期3.4、 资源控制器3.4.1、Deployment3.4.2、DaemonSet3.4.3、job3.4.4、CronJob3.4.5、Service3.4.5、Headless Service3.4.6、Ingress4、存储4.1、ConfigMap4.2、Secret4.3、 Volume存储卷4.3.1、EmptyDir4.3.2、HostDir4.3.3、NFS4.4、PV

可乐多点冰的博客 1777

别再死记硬背了!用MaxDEA软件实操SBM、DDF、NDDF模型,手把手教你测算绿色全要素生产率

本文深度解析如何使用MaxDEA软件实操SBM、DDF、NDDF模型,手把手教你测算绿色全要素生产率(GTFP)。通过详细的模型选择对比、数据准备策略和MaxDEA操作流程,帮助研究者科学构建指标体系并准确解读结果,提升环境管理研究的实证分析能力。

weixin_28731231的博客 314

Kubernetes(K8S)学习笔记(1):Kubernetes对象

注:该笔记整理自Kubernetes官方文档中的内容,笔记中使用的观点与资源均来源于官方文档以及我个人的理解,如果涵盖其它来源的观点,会额外标明引用。

xjy20020531的博客 897

手把手教你用微信小程序实现智能硬件音视频通话(含Linux/RTOS适配)

本文详细介绍了如何利用微信小程序硬件框架(WMPF)和音视频SDK,在智能硬件(包括Linux与RTOS设备)上实现音视频通话功能。文章从架构设计、设备端SDK集成、小程序VOIP插件开发到跨平台调试与性能优化,提供了全链路实战指南,帮助开发者打通微信小程序与嵌入式设备间的实时音视频通信。

ooo22的博客 329

半导体关键系统之RMS浅谈

这种系统还要求设备在设备上的配方发生变化时通知工厂主机,并需要与EAP(Equipment Automation Process)联结,旨在实时管控自动化系统所用配方与用户当初的设定是否匹配,从而使得自动化系统所用的配方更加趋于安全。例如,制药行业中的药品生产管理系统(GMP),它对药品的生产过程进行严格控制,包括原材料的采购、生产工艺流程、质量控制等方面。这些系统通常与企业的生产系统集成,能够对产品的配方进行精细化管理,包括配方的设计、试验、验证、生产等环节。

阿拉伯梳子的专栏 6155

Kubernetes(k8s)学习笔记(一)

Kubernetes 简称 k8s,是用于自动部署, 扩展和管理容器化应用程序的开源系统。中文官网: https://kubernetes.io/zh/中文社区: https://www.kubernetes.org.cn/官方文档: https://kubernetes.io/zh/docs/home/社区文档: http://docs.kubernetes.org.cn/

shenxiaomo1688的博客 899

# 执行 DISM 命令时出错 87 未在此上下文中识别出 restorehealth 选项。解决方法

# 执行 DISM 命令时出错 87 未在此上下文中识别出 restorehealth 选项。解决方法

段子手168的博客 1万+

Kubernetes详细笔记(K8s)

Kubernetes超详细笔记

写代码的渣渣苏 4万+

FPGA/IC 秋招笔试/面试题总结(续)

FPGA/IC 秋招笔试/面试题总结(续)来啦… 文章目录二十七、状态机1. Moore/Mealy状态机2.一、二、三段式状态机 二十七、状态机 1. Moore/Mealy状态机 (1)Moore状态机: 输出只由当前状态决定,即次态=f(现态。输入),输出=f(现态) Moore型状态机的输出信号是直接由状态寄存器译码得到的。 Moore型状态机检测序列1101如下 Moore型状态机输出函数只由状态变量决定,想要输出Z=1,必须S4状态形成,即寄存器中的1101都打进去后才可以。输出Z=1会在

Crazzy_M的博客 2万+

MIPI CSI-2

来源:公众号瓜大三哥版权归三哥所有1 MIPI简介2 MIPI CSI-2简介2.1 MIPI CSI-2 的层次结构2.2 CSI-2协议层2.3 打包/解包层2.4 ...

OpenFPGA的博客 2113

K8s(Kubernetes)架构笔记

K8s满足的需求 K8s的主要职责是容器编排(Container Orchestration),即在一组服务器上启动、监控、回收容器,在满足排程的同时,保证容器可以健康的运行。K8s架构的概念/术语 学习K8s架构之前,需要了解一些K8s特有的概念:Cluster 集群K8s可利用的主机、存储和网络资源的集合。Node 结点单台主机,可以是物理的或虚拟的计算机。结点分为主结点(ma...

架构师学习成长之路 2万+

五、实战pxe安装ubuntu 22.04 软raid1(实际生产pxe配置)

这段配置文件是一个cloud-init的自动安装配置,用于自动化部署Ubuntu服务器操作系统。它定义了从系统身份、键盘布局、区域设置到磁盘分区和RAID配置的一系列设置,并且包含了在安装过程的最后阶段执行的一些命令。基础设置version: 1指定了autoinstall配置文件的版本。source定义了安装源,这里是ubuntu-server。identity设置了主机名(hostname)、用户(username)和密码(password注意这里的密码是经过加密的。键盘与语言设置。

jundao1997的专栏 999

Kubernetes学习笔记

CNI,容器网络接口。,并将证书中的公钥提取出来,用公钥加密客户端生成的预主密钥,发送给服务器,服务器用自己的私钥解密预主密钥,客户端和服务端使用生成的会话密钥对要传输的数据进行对称加密。安装:Linux --- > docker ---> cri-docker ---> kubeadm kubelet kubctl ---> calico。在不使用网络地址转换(NAT)的情况下,集群中的pod能够与任意其他pod进行通信,在集群节点上运行的程序能与同一节点上的任何Pod进行通信。

2301_79738727的博客 1180

NTscan扫描工具

ntscan是一个扫描器,可以扫描没有密码和弱密码的共享,先到配置文件中填写猜测的用户名和密码,扫描过程中右侧出现的是扫描日志。

RU DOS版、EFI版32bit/64bit BIOS常用工具

DOS版、EFI版的RU工具,可用来查看IO、MEM、PCI、SMBIOS等资源。亲测在EFI SHELL下可用。

【K8s学习笔记】Kubernetes

① 在本机虚拟机上(VBox + Ubuntu)部署一个三节点的K8s集群,注意合理分配资源。尝试不同的集群部署方式,总结优缺点和便利性。

weixin_46258856的博客 499

VB摄像头监控

该VB模块可对摄像头捕获的画面进行录像等,可在创建的窗口进行控制

kubernetes笔记

在k8s中,所有的内容都会抽象为资源,用户需要通过操作资源来管理k8sk8s本质上就是一个集群系统,用户可以在集群中部署各类服务,所谓部署服务,就是在k8s集群中运行一个个容器,并将指定的程序跑在容器中因为k8s的最小单元是pod,所以只能将容器放在pod中,通过pod控制器来控制podpod可以提供服务后,就要考虑如何访问pod,所以k8s提供了service资源来实现1.大小写敏感 例如:c1和C1是两个不同变量2.使用缩进表示层级关系有缩进代表是其子属性,无缩进代表是并列关系。

2301_79175680的博客 801

STM32F407中文手册

STM32f407中文手册 本参考手册面向应用开发人员,提供有关使用 STM32F405xx/07xx、STM32F415xx/17xx、 STM32F42xxx 和 STM32F43xxx 微控制器存储器与外设的完整信息。STM32F405xx/07xx、STM32F415xx/17xx、STM32F42xxx 和 STM32F43xxx 构成一个微 控制器系列,各产品具有不同的存储器大小、封装和外设。有关订购信息以及器件的机械与电气特性,请参见数据手册。有关 ARM Cortex™-M4F 内核的信息,请参见《Cortex™-M4F 技术参考手册》。

上一篇: 基于Java日志平台的访问链路追踪实战
下一篇: DevOps
金心靖晨
博客等级 码龄9年 460粉丝 211原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值