Kubernetes基础概念

通过实例快速掌握k8s(Kubernetes)核心概念 容器技术是微服务技术的核心技术之一,并随着微服务的流行而迅速成为主流。Docker是容器技术的先驱和奠基者,它出现之后迅速占领市场,几乎成了容器的代名词。但它在开始的时候并没有很好地解决容器的集群问题。Kubernetes抓住了这个机遇,以容器编排者(Container Orchestration)的身份出现,对容器集群进行管理和调度,现在已经打败了Docker成为了容器技术事实上的标准。当然K8... 阅读详情
是什么

Kubernetes是开源的容器编排系统,Kubernetes 是google 10多年大规模容器管理技术的Borg的开源版本,它是容器集群管理系统, 可使先容器集群的自动化部署,自动扩缩容,维护等功能,它可以帮助我们快速部署应用,快速扩展应用, 无缝对接新应用,DevOps自动化运维,金丝雀发布。

部署进化
传统部署时代

早期,组织在物理服务器上运行应用程序。无法为物理服务器中的应用程序定义资源边界,这会导致资源分配问题。例如,如果在物理服务器上运行多个应用程序,则可能会出现一个应用程序占用大部分资源的情况,结果可能导致其他应用程序的性能下降。一种解决方案是在不同的物理服务器上运行每个应用程序,但是由于资源利用不足而无法扩展,并且组织维护许多物理服务器的成本很高。

虚拟化部署时代

作为解决方案,引入了虚拟化功能,它允许您在单个物理服务器的 CPU 上运行多个虚拟机(VM)。虚拟化功能允许应用程序在 VM 之间隔离,并提供安全级别,因为一个应用程序的信息不能被另一应用程序自由地访问。

因为虚拟化可以轻松地添加或更新应用程序、降低硬件成本等等,所以虚拟化可以更好地利用物理服务器中的资源,并可以实现更好的可伸缩性。

每个 VM 是一台完整的计算机,在虚拟化硬件之上运行所有组件,包括其自己的操作系统。

容器部署时代

容器类似于 VM,但是它们具有轻量级的隔离属性,可以在应用程序之间共享操作系统(OS)。因此,容器被认为是轻量级的。容器与 VM 类似,具有自己的文件系统、CPU、内存、进程空间等。由于它们与基础架构分离,因此可以跨云和 OS 分发进行移植。容器因具有许多优势而变得流行起来。下面列出了容器的一些好处:敏捷应用程序的创建和部署,持续开发集成和部署,关注开发与运维的分离,可观察性,跨开发测试和生产的环境一致性,云和操作系统分发的可移植性,以应用程序为中心的管理,松散耦合、分布式、弹性、解放的微服务,资源隔离,高效率和高密度的资源利用

Kubernetes 为什么存在

在生产环境中,您需要管理运行应用程序的容器,并确保不会停机。Kubernetes 提供了一个可弹性运行分布式系统的框架。Kubernetes 会满足扩展要求、故障转移、部署模式等。Kubernetes 提供了如下的功能:服务发现和负载均衡,存储编排,自动部署和回滚,自动二进制打包,自我修复,密钥与配置管理

Kubernetes构成

节点类型分为master节点和node节点
master节点 :调度控制集群资源
node节点 :运行容器,运行服务。就是干活的

master节点的模块构成 : kube-apiserver,kube-scheduler,kube-controller-manager,etcd

node节点模块构成:kubelet,kube-proxy,runtime

kubernetes 内部使用grpc通信,对外提供restful aip

基础概念
kubernetes对象

pod :用于运行容器的最小单元,一个pod可以对应着一个docker容器, 也可以是对应一组docker容器。 pod很少直接创建,一般情况下pod 由Controller创建和管理,由调度器调度在集群中的node节点上运行。他们共享IPC(进程间通信),Network(网络),和UTS(后面有解释)

service: 默认情况下,Docker 使用私有主机网络连接,只能与同在一台机器上的容器进行通信。 为了实现容器的跨节点通信,必须在机器自己的 IP 上为这些容器分配端口,为容器进行端口转发或者代理。service是为运行在一组 Pods 上的应用程序 提供对外网络服务的。借助Service,应用可以方便地实现服务发现和负载均衡

Volume: 容器中的磁盘文件是临时的,当容器崩溃时,kubelet 将重新启动容器,这些文件会丢失。当在一个 Pod 中同时运行多个容器时,常常需要在这些容器之间共享文件。Volumes就是来解决这两个问题的。 Kubernetes 支持的卷类型很多:awsElasticBlockStore,azureDisk,azureFile,cephfs,cinder,configMap,csi,downwardAPI,emptyDir,fc (fibre channel),flexVolume,flocker,gcePersistentDisk,gitRepo (deprecated)… …

Namespace: Kubernetes 支持多个虚拟集群,它们底层依赖于同一个物理集群。 这些虚拟集群被称为命名空间。命名空间适用于存在很多跨多个团队或项目的用户的场景。命名空间为名称提供了一个范围。资源的名称需要在命名空间内是唯一的。在 Kubernetes 未来版本中,相同命名空间中的对象默认将具有相同的访问控制策略。命名空间是在多个用户之间划分集群资源的一种方法。

Kubernetes 中的 Controller 高级抽象

deployment: Controller中的一种,负责部署 pod, deployment存在的时候,我们通过命了删除了pod,pod也会被deployment自动创建出来

DaemonSet: DaemonSet 确保全部(或者某些)节点上运行一个 Pod 的副本。当有节点加入集群时, 也会为他们新增一个 Pod 。当有节点从集群移除时,这些 Pod 也会被回收。删除 DaemonSet 将会删除它创建的所有 Pod。

StatefulSet: StatefulSet 是用来管理有状态应用的工作负载 API 对象。StatefulSet 用来管理 Deployment 和扩展一组 Pod,并且能为这些 Pod 提供*序号和唯一性保证,

ReplicaSet: ReplicaSet 是下一代的 Replication Controller。 ReplicaSet 和 Replication Controller 的唯一区别是选择器的支持。ReplicaSet 支持新的基于集合的选择器需求,这在标签用户指南中有描述。而 Replication Controller 仅支持基于相等选择器的需求。

Job: Job用于执行任务,例如临时任务 ,Job会创建一个或多个Pod,并确保指定数量的Pod成功终止。pods成功完成后,Job将跟踪成功完成的情况。当达到指定的成功完成次数时,Job就完成了。删除Job将清除其创建的Pod

其他

label (k-v)标签,可以被管理到pod这样的对象上,主要作用是标记,

GUI 用户图形界面,可以是web用户页面例如kubernetes-dashboard组件,用户可以通过dashboard部署集群中的容器化应用,可以查看集群运行情况,通过部署向导对容器进行扩容缩容,进行滚动更新,重启pod,dashboard也能查看资源状态

kubectl:用户管理Kubernetes 的命令行工具

kube-apiserver:提供了资源操作的唯一入口,并提供认证授权,访问控制,api注册和发现等机制。

runtime: 负责镜像管理以及pod和容器的真正运行(CRI Containner Runtime Interface),默认的容器runtime是Docker。

kubelet: 负责维持容器的生命周期,同时也负责Volume(CVI Container Volume Interface)和网络(CNI Container Network Interface) 的管理

kube-proxy: 负责为Service提供cluster(集群) 内部的服务发现和负载均衡

UTS命名空间是Linux命名空间的子系统,主要作用是完成对容器的Hostname和Domain的隔离,同时保存内核名称, 版本和底层体系结构类型等信息,Docker就是基于它开发的。


文章引用
kubernetes官网

Kubernetes(k8s)中几个概念理解 注:本文(包括图片)仅供学习。 文章目录Kubenetes(k8s)什么是Kubenetes?Kubenetes可以做什么?Kubenetes中涉及的一些概念容器 containerPod标签 Label服务 Service节点 Node集群 Cluster更多参考资料 Kubenetes(k8s) 什么是Kubenetes? Kubernetes(k8s)是容器编排引擎,是自动化容器操作的开源平... 阅读详情

相关推荐

云原生(十三) | Kubernetes篇之深入Kubernetes(k8s)概念

文章目录 深入Kubernetes(k8s)概念 一、基础概念理解 二、kubernetes Objects(k8s对象) 1、什么是k8s对象 2、描述k8s对象 3、k8s对象yaml的结构 4、管理k8s对象 5、对象名称 6、名称空间 7、标签和选择器 8、注解annotation 9、字段选择器 10、给vscode安装插件 11、认识kubectl和kubelet 12、自动补全 深入Kubernetes(k8s)概念 一、基础概念理解 集群 ..

Lansonli(蓝深李)的博客 2558

Kubernetes基本概念

Kubernetes(通常称为K8s,K8s是将8个字母“ubernete”替换为“8”的缩写)是一个以容器为中心的基础架构,可以实现在物理集群或虚拟机集群上调度和运行容器,提供容器自动部署、扩展和管理的开源平台。满足了应用程序在生产环境中的一些通用需求:应用实例副本、水平自动扩展、命名与发现、负载均衡、滚动升级、资源监控等。Kubernetes 是一个可移植、可扩展的开源平台,用于管理容器化工作负载和服务,有助于声明式配置和自动化。它拥有庞大且快速发展的生态系统。

qq_44239779的博客 1770

Kubernetes 核心概念

十分钟带你理解Kubernetes核心概念 - docker 入门书籍

kubernetes(k8s) 的基本概念

文章目录kubernetes(k8s) 的基本概念1.什么是kubernetes2.Kubernetes的核心概念3.Kubernetes架构和组件3.1 架构3.2 组件 kubernetes(k8s) 的基本概念 1.什么是kubernetes   首先,他是一个全新的基于容器技术的分布式架构领先方案。Kubernetes(k8s)是Google开源的容器集群管理系统(谷歌内部:Borg)...

qq_36275923的博客 1734

ZYNQ裸机双网口通信实战:手把手教你用SDK和LWIP配置PS+PL以太网(附完整源码)

本文详细介绍了在ZYNQ裸机环境下实现双网口通信的全流程,包括硬件配置、LWIP协议栈优化及TCP通信实现。通过Vivado SDK和LWIP协议栈,开发者可以高效配置PS端内置网口与PL端扩展网口,提升嵌入式网络应用的灵活性和性能。附完整源码,助力快速开发。

weixin_30831529的博客 424

英雄联盟(MOBA)完整制作教程

这是一份从零到上线、可落地的 LOL 风格 MOBA 游戏开发全流程教程,覆盖策划、美术、程序、测试、运营全环节,适合独立团队或学习参考。

qq_35779316的博客 543

【云原生Kubernetes系列第一篇】深入理解容器集群管理系统Kubernetes(k8s)原理

单机容器编排容器集群编排应用编排ansiblekubernetes的本质是一组服务器集群,它可以在集群的每个节点上运行特定的程序,来对节点中的容器进行管理。目的是实现资源管理的自动化,自我修复一旦某一个容器崩溃,能够在1秒中左右迅速启动新的容器弹性伸缩可以根据需要,自动对集群中正在运行的容器数量进行调整服务发现服务可以通过自动发现的形式找到它所依赖的服务负载均衡如果一个服务起动了多个容器,能够自动实现请求的负载均衡版本回退Kubernetes核心组件组件名称作用etcd。...

weixin_59663288的博客 1993

TCP协议中ARQ自动重传的三种实现方式对比(含SACK详解)

本文深入解析TCP协议中ARQ自动重传的三种实现方式,包括停止-等待、回退N步和选择重传协议,特别详细介绍了SACK机制的工作原理和优势。通过对比分析各协议的效率、复杂度和适用场景,为网络通信中的可靠性传输提供了实用的选型指南。

weixin_30776273的博客 462

Kubernetes的概念及基本组件

目录一、Kubernetes的概念二、为什么要用K8S?K8s 的特性Kubernetes集群架构与组件三、k8s的核心组件1、Master组件2、etcd(配置存储中心)3、node组件四、kubernetes核心概念1、Pod2、Pod控制器3、Label4、service5、Ingress6、Name7、Namespace总结 一、Kubernetes的概念 Kubernetes(k8s)是自动化容器操作的开源平台,这些操作包括部署,调度和节点集群间扩展。如果你曾经用过Docker容器技术部署容器,

qq_45873113的博客 951

全志F1C100S/F1C200S学习笔记(1)——基础简介及资料

资料: 荔枝派资料下载站 荔枝派github 荔枝派中文论坛 荔枝派DIY-github资料 荔枝派Nano 全流程指南 芒果派 坑网

丨晋丨 1万+

【测开求职】面试题:计算机网络 详细版整理

本篇文章是笔者为准备研究生复试和校招而写,因此主要针对问答,注重理解,而不在于细节计算。读者可以先查看上面的链接走一遍计算机网络的整体框架结构。其中,重点难点以及易混淆的知识点,笔者会用其他文章进行了详述,在知识点处贴好了链接,有需要的可以查阅。

vector的博客 5937

Kubernetes 基础概念

Kubernetes是一个开源的,用于管理云平台中多个主机上的容器化的应用,Kubernetes 的目标是让部署容器化的应用简单并且高效(powerful),Kubernetes 提供了应用部署,规划,更新,维护的一种机制。Kubernetes这个名字源于希腊语,意为“舵手”或“飞行员”。k8s 这个缩写是因为 k 和 s 之间有八个字符的关系。Google 在 2014 年开源了 Kubernetes 项目。Kubernetes 建立在Google 大规模运行生产工作负载十几年经验。

桃李醉春风 1146

基于STM32、HAL库的GZP6816D气压传感器 驱动程序设计

测量范围:0-16kPa(可根据型号不同有变化)工作电压:1.8V-3.6V。高精度:±1% FS。

corlin6688的博客 222

【云原生 • Kubernetes】认识 k8s、k8s 架构、核心概念点介绍

Kubernetes(k8s)概念、架构介绍,k8s 包含的核心概念点讲解(部分基础及重要概念,掌握基本可以满足绝大部分场景的使用)。

商务合作 | 共同学习 | 携手共进 19万+

在 SAP GUI Editor 中使用 OpenAI 自动生成 ABAP 代码 —— 技术实践与思考

在传统 SAP GUI Editor 场景下融入OpenAI开发者表达意图,模型负责实现。随着的持续演进,以及Joule等官方 Copilot 的加入,未来 ABAP 开发形态必将更加专注业务逻辑与架构设计,而把样板式编码交给 AI 自动完成。现在就动手试试,让你的下一段 ABAP 由 AI 来书写吧!

2007 年 ~ 2025 年,深耕 SAP 技术 18 年 710

esp8266步进电机驱动控制

blinker控制步进电机起保停,正反转(Arduino uno+esp8266+TB6600驱动器) Arduino uno的板子的程序 esp8266板子接入到Arduino uno的控制引脚上的5,6,7 esp8266程序 //****库***** #define BLINKER_WIFI //官方wifi协议库 #define BLINKER_PRINT Serial //串口协议库 #include <Blinker.h&gt

perseverance51博客 2856

Kubernetes(K8S)的基础概念

Kubernetes(K8S)的基础概念

shanjun12的博客 841

TMS_WebGMaps_1.9.8.0_Full_Source

TMS_WebGMaps_1.9.8.0_Full_Source 全源码 delphi cbuilder

Kubernetes(K8s)的基础概念

Kubernetes Master是集群的主要控制单元,用于管理其工作负载并指导整个系统的通信。Kubernetes控制平面由各自的进程组成,每个组件都可以在单个主节点上运行,也可以在支持high-availability clusters的多个主节点上运行。组件名称作用etcd保存整个集群的状态apiserver提供了资源操作的唯一入口,并提供认证、授权、访问控制、API注册和发现等机制负责维护集群的状态,比如故障检测、自动扩展、滚动更新等scheduler。

qq_48810547的博客 1356

jre9下载 jdk9

(Java SE Runtime Environment 9.0) 9.0u175 官方最新版 【x86|x64】

计算机控制技术及应用

《计算机控制技术及应用》通过总结作者的科研成果和吸收国内外的先进理论、方法和技术,以计算机控制系统的网络化、开放化、智能化和集成化发展趋势为主线索,主要介绍计算机控制系统的基本概念和计算机控制系统的典型形式,计算机控制系统的数学描述与基本分析方法,以及数字PID控制器、最少拍控制系统、达林算法、状态变量设计法等设计方法及其各种改进算法。重点突出计算机控制系统输入输出通道接口的设计方法和典型控制系统的设计案例与实现方法等。

【K8s】Kubernetes核心概念与架构详解

本文介绍了 Kubernetes(K8s)的核心概念、架构组件和基本操作。主要内容包括:K8s 作为容器编排平台的核心功能,集群架构(控制平面和工作节点),关键组件(如 API Server、etcd、kubelet 等),基本资源对象,常用管理工具(kubectl、kubeadm),以及集群部署的基本流程和注意事项。

D2005_10_25的博客 2193

老版QQ原生表情gif动态

这是老版的QQ表情,不过全是动态的的,Windows照片查看器是不会动的,可以右击用浏览器打开查看,再说一遍是老版的,只是分享给宁愿用老版也要动态的人。

深入了解 Kubernetes(k8s):从概念到实践

本文系统介绍了Kubernetes(k8s)的核心技术,包括Pod、Service、Deployment等核心概念,以及k8s的自动化运维、弹性伸缩等优势特性。详细解析了k8s主从架构中的控制平面与节点组件,如kube-apiserver、etcd等关键模块。最后通过一个前后端分离项目实例,展示了从Docker镜像构建到k8s部署的全过程,包括前端React应用和后端Node.js服务的配置与部署。文章全面呈现了k8s作为容器编排标准的强大功能,为开发者提供了实用的技术参考。

二十多岁的你迷茫又着急,想要车子,想要房子,想要享受旅行,你那么浮躁,拿什么看透人生! 1459

Kubernetes(K8S)概念

Kubernetes(通常称为K8s,K8s是将8个字母“ubernete”替换为“8”的缩写)是一个以容器为中心的基础架构,可以实现在物理集群或虚拟机集群上调度和运行容器,提供容器自动部署、扩展和管理的开源平台。满足了应用程序在生产环境中的一些通用需求:应用实例副本、水平自动扩展、命名与发现、负载均衡、滚动升级、资源监控等。Kubernetes 是一个可移植、可扩展的开源平台,用于管理容器化工作负载和服务,有助于声明式配置和自动化。它拥有庞大且快速发展的生态系统。

m69zhuang的博客 321

Kubernetes(k8s)的基础概念

Kubernetes 是一个可移植、可扩展的开源平台,用于管理容器化的工作负载和服务,可促进声明式配置和自动化。 Kubernetes 拥有一个庞大且快速增长的生态,其服务、支持和工具的使用范围相当广泛。Kubernetes 这个名字源于希腊语,意为“舵手”或“飞行员”。k8s 这个缩写是因为 k 和 s 之间有八个字符的关系。 Google 在 2014 年开源了 Kubernetes 项目。 Kubernetes 建立在Google 大规模运行生产工作负载十几年经验的基础上, 结合了社区中最优秀的想法和

sukapulai的博客 2455

面试常问K8s概念Kubernetes

K8s提供的配置中心服务,使用时可以作为Pod容器的环境变量、配置信息数据,例如可以将应用程序服务所需要的yml、jvm等参数放到configMap中,等应用程序启动的时候通过K8s的API来解析获取。Pod是K8s编排容器的最小逻辑单元,Pod也相当于是一个逻辑主机的概念负责管理具体的应用实例,包括1个或多个Docker容器,一般是一对一关系。Service是K8s里面的一个抽象的概念,Service是一组Pod的逻辑集合,给这些Pod提供服务发现、负载的能力。...

Minor的Java技术博客 759

Kubernetes(K8S)中文文档1:全面掌握Kubernetes核心概念与操作

Kubernetes(K8S)中文文档1:全面掌握Kubernetes核心概念与操作 【下载地址】KubernetesK8S中文文档1 本开源项目提供了Kubernetes(K8S)的详细中文文档资源,涵盖基础概念、Ingress解析、Kubectl概述及其与Docker命令的关联等内容。文档包括多个版本的Kuberne...

gitblog_06710的博客 422
上一篇: k8s安装Ingress(nginx)
下一篇: k8s中使用volume
RobertLee~~~~~~~~
博客等级 码龄18年 14粉丝 43原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值