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

Kubernetes 的资源管理方式

集群架构

Docker 是每一个节点(包括 Master 节点和 Node 节点)的运行时环境。

        kubelet 负责控制所有容器的启动和停止等,保证每个节点(包括 Master 节点和 Node 节点)正常工作,并且帮助 Node 节点和 Master 节点进行交互。

Master 节点的关键组件

  • kubelet(监工):所有节点必备的。控制当前节点所有 Pod 的生命周期以及与 api-server 交互等工作。
  • kube-api-server:负责接收所有请求。集群内对集群的任何修改都是通过命令行、UI 将请求发给 api-server 才能执行的。api-server 是整个集群操作对内、对外的唯一入口,不包含我们后来部署应用暴露端口的方式。
  • kube-proxy:整个节点的网络流量负责。
  • cri:容器运行时环境(如:Docker 、Podman 等)。

Node 节点的关键组件:

  • kubelet(监工):所有节点必备的。控制当前节点所有 Pod 的生命周期以及与 api-server 交互等工作。
  • kube-proxy:整个节点的网络流量负责。
  • cri:容器运行时环境(如:Docker 、Podman 等)。

 资源管理方式

① 命令式对象管理:直接通过命令去操作 Kubernetes 的资源。

kubectl run nginx-pod --image=nginx:1.17.1 --port=80


② 命令式对象配置:通过命令配置和配置文件去操作 Kubernetes 的资源。

kubectl create/patch/delete -f nginx-pod.yaml


③ 声明式对象配置:通过 apply 命令和配置文件去操作 Kubernetes 的资源。

kubectl apply -f nginx-pod.yaml

类型

操作

适用场景

优点

缺点

命令式对象管理

对象

测试

简单

只能操作活动对象,无法审计、跟踪

命令式对象配置

文件

开发

可以审计、跟踪

项目大的时候,配置文件多,操作麻烦

声明式对象配置

目录

开发

支持目录操作

意外情况下难以调试

命令式对象管理

kubectl 命令

  • kubectl 是 Kubernetes 集群的命令行工具,通过它能够对集群本身进行管理,并能够在集群上进行容器化应用的安装和部署。

参数:

  • command:指定要对资源执行的操作,如:create、get 、delete 等。
  • type:指定资源的类型,如:deployment 、pod 、service 等。
  • name:指定资源的名称,名称大小写敏感。
  • flags:指定额外的可选参数。
[root@k8s-master ~]# kubectl get pod 
NAME                     READY   STATUS    RESTARTS   AGE
nginx-65c4bffcb6-f9b55   1/1     Running   0          81m
[root@k8s-master ~]# kubectl get pod nginx-65c4bffcb6-f9b55 -o yaml
apiVersion: v1
kind: Pod
metadata:annotations:cni.projectcalico.org/containerID: c1ccb59bf2b30c580de0ee177f1eb122047ce0b066df816b434c559c0b89c094cni.projectcalico.org/podIP: 10.244.169.129/32cni.projectcalico.org/podIPs: 10.244.169.129/32creationTimestamp: "2024-12-27T10:04:42Z"generateName: nginx-65c4bffcb6-labels:app: nginxpod-template-hash: 65c4bffcb6name: nginx-65c4bffcb6-f9b55namespace: defaultownerReferences:- apiVersion: apps/v1blockOwnerDeletion: truecontroller: truekind: ReplicaSetname: nginx-65c4bffcb6uid: c04281de-fdb0-4f23-8309-8c4adb140977resourceVersion: "9026"uid: 4a282996-80b5-4cc8-85a1-1ccd0c22a090
spec:containers:- image: nginx:1.14-alpineimagePullPolicy: IfNotPresentname: nginxresources: {}terminationMessagePath: /dev/termination-logterminationMessagePolicy: FilevolumeMounts:- mountPath: /var/run/secrets/kubernetes.io/serviceaccountname: kube-api-access-mz6pkreadOnly: truednsPolicy: ClusterFirstenableServiceLinks: truenodeName: k8s-node2preemptionPolicy: PreemptLowerPrioritypriority: 0restartPolicy: AlwaysschedulerName: default-schedulersecurityContext: {}serviceAccount: defaultserviceAccountName: defaultterminationGracePeriodSeconds: 30tolerations:- effect: NoExecutekey: node.kubernetes.io/not-readyoperator: ExiststolerationSeconds: 300- effect: NoExecutekey: node.kubernetes.io/unreachableoperator: ExiststolerationSeconds: 300volumes:- name: kube-api-access-mz6pkprojected:defaultMode: 420sources:- serviceAccountToken:expirationSeconds: 3607path: token- configMap:items:- key: ca.crtpath: ca.crtname: kube-root-ca.crt- downwardAPI:items:- fieldRef:apiVersion: v1fieldPath: metadata.namespacepath: namespace
status:conditions:- lastProbeTime: nulllastTransitionTime: "2024-12-27T10:04:42Z"status: "True"type: Initialized- lastProbeTime: nulllastTransitionTime: "2024-12-27T10:04:58Z"status: "True"type: Ready- lastProbeTime: nulllastTransitionTime: "2024-12-27T10:04:58Z"status: "True"type: ContainersReady- lastProbeTime: nulllastTransitionTime: "2024-12-27T10:04:42Z"status: "True"type: PodScheduledcontainerStatuses:- containerID: docker://d10a9daced59d3ab91e06aed7456808c727d450fdbb7b21be5180957f37e16baimage: nginx:1.14-alpineimageID: docker-pullable://nginx@sha256:485b610fefec7ff6c463ced9623314a04ed67e3945b9c08d7e53a47f6d108dc7lastState: {}name: nginxready: truerestartCount: 0started: truestate:running:startedAt: "2024-12-27T10:04:57Z"hostIP: 192.168.58.233phase: RunningpodIP: 10.244.169.129podIPs:- ip: 10.244.169.129qosClass: BestEffortstartTime: "2024-12-27T10:04:42Z"
  • 基本命令:

命令

翻译

命令作用

create

创建

创建一个资源

edit

编辑

编辑一个资源

get

获取

获取一个资源

patch

更新

更新一个资源

delete

删除

删除一个资源

explain

解释

展示资源文档

  •  运行和调试:

命令

翻译

命令作用

run

运行

在集群中运行一个指定的镜像

expose

暴露

暴露资源为 Service

describe

描述

显示资源内部信息

logs

日志

输出容器在 Pod 中的日志

attach

缠绕

进入运行中的容器

exec

执行

执行容器中的一个命令

cp

复制

在 Pod 内外复制文件

rollout

首次展示

管理资源的发布

scale

规模

扩(缩)容 Pod 的数量

autoscale

自动调整

自动调整 Pod 的数量

  •  高级命令:

命令

翻译

命令作用

apply

应用

通过文件对资源进行配置

label

标签

更新资源上的标签

  •  其他命令:

命令

翻译

命令作用

cluster-info

集群信息

显示集群信息

version

版本

显示当前 Client 和 Server 的版本

资源类型(type)

  • Kubernetes 中所有的内容都抽象为资源,可以通过下面的命令进行查看:
[root@k8s-master ~]# kubectl api-resources
  • 经常使用的资源如下所示:
  •  集群级别资源:

资源名称

缩写

资源作用

nodes

no

集群组成部分

namespaces

ns

隔离 Pod

  • Pod资源:

资源名称

缩写

资源作用

Pods

po

装载容器

  • Pod资源控制器:

资源名称

缩写

资源作用

replicationcontrollers

rc

控制 Pod 资源

replicasets

rs

控制 Pod 资源

deployments

deploy

控制 Pod 资源

daemonsets

ds

控制 Pod 资源

jobs

控制 Pod 资源

cronjobs

cj

控制 Pod 资源

horizontalpodautoscalers

hpa

控制 Pod 资源

statefulsets

sts

控制 Pod 资源

  • 服务发现资源:

资源名称

缩写

资源作用

services

svc

统一 Pod 对外接口

ingress

ing

统一 Pod 对外接口

  • 存储资源:

资源名称

缩写

资源作用

volumeattachments

存储

persistentvolumes

pv

存储

persistentvolumeclaims

pvc

存储

  •  配置资源:

资源名称

缩写

资源作用

configmaps

cm

配置

secrets

配置

查看,创建,删除名称空间 

[root@k8s-master ~]# kubectl get ns
NAME              STATUS   AGE
default           Active   46h
kube-node-lease   Active   46h
kube-public       Active   46h
kube-system       Active   46h
[root@k8s-master ~]# kubectl create ns dev
namespace/dev created
[root@k8s-master ~]# kubectl get ns
NAME              STATUS   AGE
default           Active   46h
dev               Active   2s
kube-node-lease   Active   46h
kube-public       Active   46h
kube-system       Active   46h
[root@k8s-master ~]# kubectl delete ns dev
namespace "dev" deleted
[root@k8s-master ~]# kubectl get ns
NAME              STATUS   AGE
default           Active   46h
kube-node-lease   Active   46h
kube-public       Active   46h
kube-system       Active   46h

相关文章:

Kubernetes 的资源管理方式

集群架构 Docker 是每一个节点(包括 Master 节点和 Node 节点)的运行时环境。 kubelet 负责控制所有容器的启动和停止等,保证每个节点(包括 Master 节点和 Node 节点)正常工作,并且帮助 Node 节点和 Maste…...

layui动态拼接生成下拉框验证必填项失效问题

利用 jQuery 动态拼接下拉框时&#xff0c;lay-verify"required" 失效了&#xff0c;有以下几种原因。 1. <form></form>标签 加入 layui 类&#xff0c;class"layui-form" 。提交按钮上加自动提交&#xff0c;lay-submit ""; 。需…...

VUE3+VITE简单的跨域代理配置

出于安全考虑&#xff0c;未设置前端白名单&#xff0c;前端开发时&#xff0c;需要配置代理。 在本地创建一个虚拟服务器&#xff0c;发送请求数据&#xff0c;同时接受请求的数据&#xff0c; 利用服务器与服务器间&#xff0c;交互&#xff0c;不会有跨域问题&#xff0c;也…...

Xdebug

1、开启xdebug扩展 2、修改一下php.ini文件 xdebug.remote_enable 1 xdebug.remote_autostart 13、vscode安装插件php debug 4、生成launch.json文件&#xff0c;好像啥都不用改 5、vscode没有配置php路径的&#xff0c;需要去配置&#xff1a; 6、发起请求 8、代码断…...

IDEA | SpringBoot 项目中使用 Apifox 上传接口

目录 1 安装 Apifox Helper 插件2 获取 Apifox 的 API 访问令牌3 IDEA 中设置 API 访问令牌4 IDEA 中上传接口5 常见问题5.1 如何自动设置目录名5.2 如何自动设置接口名5.3 如何更改上传位置 Apifox 官方指南&#xff1a; https://apifox.com/help/applications-and-p…...

列表分页返回对象

列表分页返回对象 仅针对于新项目&#xff0c;因为一般进入公司后项目都是已经搭建好的&#xff0c;只需要在原有框架基础上操作就可以了&#xff0c;但是遇到从0开始的项目并且还没有架构需要自己搭框架的时候就需要自己想办法找各种封装格式。 下面记录分页列表返回的封装格式…...

微软edge浏览器 v131.0.2903.99便携版

前言 Microsoft Edge浏览器是个新浏览器&#xff0c;它用起来很简单&#xff0c;界面也很清爽。这个浏览器功能特别多&#xff0c;里面还带了微软的小助手Contana&#xff0c;能帮用户做不少贴心的事儿。它支持安装各种小工具&#xff08;插件&#xff09;&#xff0c;还能在网…...

Prometheus 专栏 —— Prometheus入门介绍

Prometheus 是? Prometheus 是一个开源的服务监控系统和时序数据库&#xff0c;主要用于收集、存储、查询和告警时间序列数据&#xff0c;这些数据通常反映了系统或者应用的状态或性能 Prometheus 的基本功能是? 数据采集数据存储数据查询告警通知 Prometheus 监控核心组件?…...

元宇宙在教育行业主要有哪些应用场景?

近两年来&#xff0c;元宇宙风潮在全球范围内迅速掀起了一股新的浪潮&#xff0c;“元宇宙”已成为各行各业探索新发展方向的热门话题&#xff0c;教育行业亦不例外。那么元宇宙在教育行业主要有哪些应用场景呢&#xff1f; 以下为主要适用场景&#xff1a; 课程实践&#xff…...

JZ31 栈的压入、弹出序列

题目来源&#xff1a;栈的压入、弹出序列_牛客题霸_牛客网 题目&#xff1a;如下 输入两个整数序列&#xff0c;第一个序列表示栈的压入顺序&#xff0c;请判断第二个序列是否可能为该栈的弹出顺序。假设压入栈的所有数字均不相等。例如序列1,2,3,4,5是某栈的压入顺序&#xf…...

电脑缺失libcurl.dll怎么解决?详解电脑libcurl.dll文件丢失问题

一、libcurl.dll文件丢失的原因 libcurl.dll是一个用于处理URL传输的库文件&#xff0c;广泛应用于各种基于网络的应用程序。当这个文件丢失时&#xff0c;可能会导致相关应用程序无法正常运行。以下是libcurl.dll文件丢失的一些常见原因&#xff1a; 软件安装或卸载不完整&a…...

Ribbon、Nacos

目录 Ribbon 常见负载算法 切换负载均衡算法 Nacos注册中心 下载和运行 微服务模块接入注册中心 consumer-80模块 配置类 Controller Nacos配置中心 Nacos分类配置&#xff08;实现配置隔离&#xff09; DataID方案 Group方案 Namespace方案 总结 Ribbon Ribbon…...

SpringCloudAlibaba实战入门之路由网关Gateway初体验(十一)

Spring Cloud 原先整合 Zuul 作为网关组件,Zuul 由 Netflix 公司提供的,现在已经不维护了。后面 Netflix 公司又出来了一个 Zuul2.0 网关,但由于一直没有发布稳定版本,所以 Spring Cloud 等不及了就自己推出一个网关,已经不打算整合 zuul2.0 了。 一、什么是网关 1、顾明…...

【C语言练习(18)—指针传递参数练习】

C语言练习&#xff08;18&#xff09; 文章目录 C语言练习&#xff08;18&#xff09;前言问题问题解析 前言 指针的使用很方便参数之间的传递&#xff0c;通过交换数字&#xff0c;来练习函数之间指针传递数据。 问题 利用函数交换两个数字的大小 问题解析 例如a5;b10;想…...

外网访问 Docker 容器的可视化管理工具 DockerUI

DockerUI 是一个 docker 容器镜像的可视化图形化管理工具&#xff0c;DockerUI 可以用来轻松构建、管理和维护 docker 环境。让用户维护起来更方便。 本文就介绍如何安装使用 DockerUI 并结合路由侠内网穿透来访问 DockerUI。 第一步&#xff0c;安装 DockerUI 1&#xff0c;…...

Edge SCDN酷盾安全重塑高效安全内容分发新生态

在数字化浪潮不断推进的今天&#xff0c;互联网内容的分发效率与安全性已成为企业业务发展的关键要素。酷盾安全推出的Edge Secure Content Delivery Network&#xff08;Edge SCDN&#xff09;&#xff0c;不仅集成了分布式DDoS防护、CC防护、WAF防护及BOT行为智能分析等安全加…...

NodeRed使用心得,实现增删改查等

使用场景介绍 在VUE中使用nodeRed实现对节点的 增删改查等功能&#xff0c;且储存成功之后下点击时启动对应流程 安装与配置 1.安装NodeRed npm install -g --unsafe-perm node-red 安装完成后&#xff0c;你可以通过运行以下命令来启动Node-RED node-red-start2. 配置文件 N…...

【docker系列】打造个人私有网盘zfile

1. 介绍 是一个适用于个人的在线网盘(列目录)程序&#xff0c;可以将你各个存储类型的存储源&#xff0c;统一到一个网页中查看、预览、维护&#xff0c;再也不用去登录各种各样的网页登录后管理文件 2. 需要环境 2.1 硬件需求 CPU&#xff1a;至少1核 内存&#xff1a;推荐…...

协议幻变者:DeviceNet转ModbusTCP网关开启机器手臂智能新纪元

技术背景DeviceNet是一种广泛应用于工业自动化领域的现场总线标准&#xff0c;它能够实现控制器与现场设备之间的高效通信&#xff0c;常用于连接各种传感器、执行器以及其他工业设备&#xff0c;如机器人、电机驱动器等&#xff0c;具有实时性强、可靠性高的特点。而ModbusTCP…...

[计算机网络]OSPF协议

开放最短路径优先OSPF 1&#xff09;OSPF的工作方式 1>和谁交换消息 使用洪泛法&#xff0c;向本自治系统的所有路由器发送消息。 2>交换什么消息 发送的消息就是与本路由器相邻的所有路由器的链路状态&#xff0c;但这只是路由器所知道的部分信息。 链路状态就是说…...

[2025CVPR]DeepVideo-R1:基于难度感知回归GRPO的视频强化微调框架详解

突破视频大语言模型推理瓶颈,在多个视频基准上实现SOTA性能 一、核心问题与创新亮点 1.1 GRPO在视频任务中的两大挑战 ​安全措施依赖问题​ GRPO使用min和clip函数限制策略更新幅度,导致: 梯度抑制:当新旧策略差异过大时梯度消失收敛困难:策略无法充分优化# 传统GRPO的梯…...

超短脉冲激光自聚焦效应

前言与目录 强激光引起自聚焦效应机理 超短脉冲激光在脆性材料内部加工时引起的自聚焦效应&#xff0c;这是一种非线性光学现象&#xff0c;主要涉及光学克尔效应和材料的非线性光学特性。 自聚焦效应可以产生局部的强光场&#xff0c;对材料产生非线性响应&#xff0c;可能…...

逻辑回归:给不确定性划界的分类大师

想象你是一名医生。面对患者的检查报告&#xff08;肿瘤大小、血液指标&#xff09;&#xff0c;你需要做出一个**决定性判断**&#xff1a;恶性还是良性&#xff1f;这种“非黑即白”的抉择&#xff0c;正是**逻辑回归&#xff08;Logistic Regression&#xff09;** 的战场&a…...

FFmpeg 低延迟同屏方案

引言 在实时互动需求激增的当下&#xff0c;无论是在线教育中的师生同屏演示、远程办公的屏幕共享协作&#xff0c;还是游戏直播的画面实时传输&#xff0c;低延迟同屏已成为保障用户体验的核心指标。FFmpeg 作为一款功能强大的多媒体框架&#xff0c;凭借其灵活的编解码、数据…...

WordPress插件:AI多语言写作与智能配图、免费AI模型、SEO文章生成

厌倦手动写WordPress文章&#xff1f;AI自动生成&#xff0c;效率提升10倍&#xff01; 支持多语言、自动配图、定时发布&#xff0c;让内容创作更轻松&#xff01; AI内容生成 → 不想每天写文章&#xff1f;AI一键生成高质量内容&#xff01;多语言支持 → 跨境电商必备&am…...

pikachu靶场通关笔记22-1 SQL注入05-1-insert注入(报错法)

目录 一、SQL注入 二、insert注入 三、报错型注入 四、updatexml函数 五、源码审计 六、insert渗透实战 1、渗透准备 2、获取数据库名database 3、获取表名table 4、获取列名column 5、获取字段 本系列为通过《pikachu靶场通关笔记》的SQL注入关卡(共10关&#xff0…...

Spring数据访问模块设计

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

浪潮交换机配置track检测实现高速公路收费网络主备切换NQA

浪潮交换机track配置 项目背景高速网络拓扑网络情况分析通信线路收费网络路由 收费汇聚交换机相应配置收费汇聚track配置 项目背景 在实施省内一条高速公路时遇到的需求&#xff0c;本次涉及的主要是收费汇聚交换机的配置&#xff0c;浪潮网络设备在高速项目很少&#xff0c;通…...

面向无人机海岸带生态系统监测的语义分割基准数据集

描述&#xff1a;海岸带生态系统的监测是维护生态平衡和可持续发展的重要任务。语义分割技术在遥感影像中的应用为海岸带生态系统的精准监测提供了有效手段。然而&#xff0c;目前该领域仍面临一个挑战&#xff0c;即缺乏公开的专门面向海岸带生态系统的语义分割基准数据集。受…...

AirSim/Cosys-AirSim 游戏开发(四)外部固定位置监控相机

这个博客介绍了如何通过 settings.json 文件添加一个无人机外的 固定位置监控相机&#xff0c;因为在使用过程中发现 Airsim 对外部监控相机的描述模糊&#xff0c;而 Cosys-Airsim 在官方文档中没有提供外部监控相机设置&#xff0c;最后在源码示例中找到了&#xff0c;所以感…...