首页 > 其他分享 >Kubernetes从零到精通(03-资源对象)

Kubernetes从零到精通(03-资源对象)

时间:2024-09-04 17:54:35浏览次数:14  
标签:03 Service Kubernetes 容器 对象 零到 Pod 资源

资源对象的种类

今天我们开始研究Kubernetes中的资源对象,资源对象是Kubernetes这个软件定义的抽象逻辑概念,这些资源对象及其对应的属性(如资源对象之间的对应关系),都会保存到ectd数据库中并通过Kubernetes各控制组件实时更新,下面我们先看一下资源对象的分类和用途,然后再根据一个示例图熟悉一下:

1.基础资源对象,例如节点Node,容器组Pod,服务Service,存储卷Volume等;

2.事务与控制器资源对象,例如标签Label,注解Annotation,命名空间Namespace,水平扩容HorizontalPodAutoscaler,配置(ConfigMap、Secret),持久化存储(StorageClass、PersistentVolume、PersistentVolumeClaim),工作负载控制器等(Deployment、StatefulSet、DeamonSet、Job、CronJob)等;

3.管控与权限资源对象,例如资源限制LimitRange,资源配额ResourceQuota,角色Role,角色绑定RoleBinding等;

4.网络相关资源对象,例如Ingress,网络策略NetworkPolicy等;

资源对象的用途

上图示例展示的内容如下:

1.有一个3个工作节点(Node1,Node2,Node3)的Kubernetes集群(这里我们不关心master节点);

2.Pod是Kubernetes中的最基础概念,一个Pod中可以由一个或者多个业务相关性紧密的容器组成。类似于一个docker-compose启动了一个或多个容器,这些容器共享一些信息;

3.Deployment、StatefulSet通过ReplicaSet分别来管理无状态服务、有状态服务(如redis、kafka等)的Pod副本集;

4.DaemonSet用来实现每个Node上只创建一个Pod的需求,如日志采集Pod,监控Pod;Job/CronJob是一次性任务/定时任务,用来实现批处理任务Pod,执行完成后退出,不需要持续运行;

5.Horizontal Pod Autoscaler通过实时监控由Metrics Server等提供的聚合api,实现自定义的水平扩容方案(例如根据CPU<60%的指标,让Pod副本数在3-10之间自动增减);

6.Service为一组Pod提供一个虚拟的网络IP地址,供其他容器访问(如图所示,Node3中有两个Pod容器通过一个Service来访问其他业务的Pod容器);

7.由于环境变量这种Kubernetes服务发现机制的局限性,一般会部署DNS服务,各业务应用在互相调用的时候由IP+端口改为DNS域名;

8.互联网用户访问Kubernetes中的业务应用方式,可以通过Ingress(Ingress类似于Service的边缘代理,如常见的Nginx Ingress等);

9.互联网用户访问Kubernetes中的业务应用方式,可以通过Service的NodePort模式(相当于NAT端口映射到Node主机上,访问Node的IP+端口);

10.互联网用户访问Kubernetes中的业务应用方式,可以通过Service的LoadBalancer模式,这种模式一般由云服务厂商提供集成(例如AWS,用户定义Service的配置,会自动创建出AWS的NLB等);

11.未体现出的资源对象,如持久化存储多用于有状态服务的Pod,配置用来分离容器应用所需的配置信息(如参数,密钥,配置文件等),命名空间用来实现多租户(如不同的业务组下的资源逻辑隔离),等等。

整体看下来比较简单,接下来会逐个深入了解这些资源对象。

标签:03,Service,Kubernetes,容器,对象,零到,Pod,资源
From: https://blog.csdn.net/fzw1030/article/details/141679649

相关文章

  • mac 上golang编译 安卓系统的so 错误 'android/log.h' file not found
    lib.gopackagemainimport"C"//exportSpeedTestfuncSpeedTest(config*C.char){ configContent:=C.GoString(config) run(configContent)}funcmain(){}需要安装NDK,用Androidstudio安装,在SDKManeger的SDKTool里选择安装NDK(sidebyside),成功后一般在......
  • 升级程序后报错 :Parse error: syntax error, unexpected ':', expecting
    当您看到类似“Parseerror:syntaxerror,unexpected':',expecting...”这样的错误时,这通常是因为PHP代码中存在语法错误。具体来说,这通常是因为某个语法特性在当前PHP版本中不被支持。常见原因PHP版本不兼容:新代码可能使用了较新版本的PHP语法特性,而当前服务器上......
  • MySQL 2003 - Can’t connect to MySQL server on ' '(10060)
    2003-Can’tconnecttoMySQLserveron''(10060) 一般是以下几个原因造成的:1.网络不通畅2.mysql服务未启动3.防火墙未开放端口4##云服务器的安全组规则未设置  一般是以下几个原因造成的:1.网络不通畅:【mysql-u-p,看看能不能登陆】2.mysql服务未启动:【mysql-u-p,......
  • 代替STM32L010 STM32G030 CMS8S6990 STM8S003的芯片CW32L010
    CW32L010作为一款可以代替STM32L010STM32G030CMS8S6990STM8S003部分型号可以兼容的芯片,其功能上能够和它们相匹配,并且在功能更优秀,其芯片特点在于超低功耗,高精度ADC和主频最高可达到48MHz。CW32L010是基于eFlash的单芯片低功耗微控制器,集成了主频高达48MHz的ARM®Cort......
  • 2-STM32F103+ML307(中移4G Cat1)基本控制篇(自建物联网平台)-整体运行测试-Android扫
    <p><iframename="ifd"src="https://mnifdv.cn/resource/cnblogs/ZLIOTB/ML307/my.html"frameborder="0"scrolling="auto"width="100%"height="1500"></iframe></p>  说明这节测试一......
  • kubernetes初始化集群时报错
    报错:kubernetes初始化端口占用及文件存在(本人是之前初始化过一次)[root@master~]#kubeadminit--apiserver-advertise-address=192.168.20.200--image-repository=registry.aliyuncs.com/google_containers--kubernetes-version=v1.28.0--pod-network-cidr=10.244.0.0/16--......
  • 09--kubernetes持久化存储和StatefulSet控制器
    前言:本章是k8s持久化存储的详细笔记,由持久化引申出来的statefulset控制器和无头svc都会在本章有详细记录。1、K8s持久化存储PV和PVC在前面文章已经使用卷挂载的方式将pod文件持久化保存在宿主机中,但实际工作中pod往往会以多副本形式存在,此时需要每一个宿主机上都有对应的挂载......
  • D13 kubernetes 容器资源配额
    1、资源请求与资源限制 默认情况下,容器可以无限制的使用节点上所有的资源(如内存、cpu)。 假设在一个节点上运行多个pod,其中一个pod的访问量突然增加,该pod将不断请求节点资源。最终该pod占用大量资源,导致其他的资源缺乏足够的资源可用,从而引发访问速度非常慢,甚至无法正常提供服务......
  • 20240904_121403 mysql 数据库的备份与恢复 命令篇
    对数据库进行备份操作通过cmd打开命令提示符关注当前的路径通过命令来实现备份备份my_school的库到bf2.sql备份的结果在当前的路径下C:\Users\Administrator会存在bf2.sql文件恢复备份提前建库进入mysql创建要恢复的库my_schoolcmd命令导入sql内容当前路径要......
  • 中国电子学会Python3级等级考试202403编程题解析1
    1编程题目整数问题给定一个十进制整数n,求出从1到n的所有整数中出现“1”的个数。例如,n=2时,1,2出现1个“1”。n=12时,1,2,3,4,5,6,7,8,9,10,11,12,出现5个“1”。现编写一个程序,实现如下功能:输入整数n,执行程序后,输出该范围内出现“1”的个数。请完善程序。图1要完善的程序......