【云原生】k8s声明式资源管理

news2024/11/25 6:47:24

内容预知

 1.资源配置清单的管理

1.1 查看资源配置清单 

1.2 修改资源配置清单并应用

 离线修改

  在线修改

1.3 删除资源配置清单

 2.自主编写资源清单

 2.1 初步认识资源清单中svc的重要配置项

2.2 手动编写 svc资源配置 

3.手动生成模板,再编写资源清单 

(1)生成模板 

 (2)修改并编写模板


 1.资源配置清单的管理

资源清单的编写管理,都是基于yaml编写的格式,对yaml文件的编写,我在前面的博客中有详细介绍过:

 【云原生】Docker-compose单机容器集群编排_站在这别动,我去给你买橘子的博客-CSDN博客icon-default.png?t=M85Bhttps://blog.csdn.net/qq_62462797/article/details/128052363?spm=1001.2014.3001.5501

 

1.1 查看资源配置清单 

 


kubectl get deployment nginx -o yaml
//解释资源配置清单
kubectl explain deployment.metadata

 

 

 

 

 

1.2 修改资源配置清单并应用

 离线修改

 

 离线修改的过程:

(1)首先将配置资源导入通过重定向符号导入到yaml文件中

(2)通过vim编辑器进行yaml配置文件,删除多余的选项,修改配置项,进行保存

 (3) 通过apply -f  该yaml 文件 或者是   (先  deleter -f 该yaml文件,再create -f 该yaml 文件)

 用来实现声明式离线修改资源清单的配置

create与apply的区别:

 create和apply都能运用于资源模板的创建,但是create创建资源模板属于固定式的资源配置,一旦创建,后期想要修改时,就只能通过先delete删除资源模板,再进行create创建,达到资源更新的效果。

而apply属于一种实时更新使用的创建模板方式,后期对资源模板的配置文件进行修改时,只需要先修改配置文件,再使用apply -f 指定配置文件即可。

但是apply并不是什么情况下都能生效使用。如果你发现配置并不生效,而且与书写格式无关,则

可以先delete -f 该配置文件,再create -f 该配置文件

修改yaml文件,并用kubectl apply -f xxxx.yaml 文件使之生效
注意:当apply不生效时, 先使用delete清除资源,再apply创建资源

kubectl get service nginx -o yaml > nginx-svc.yaml
vim nginx-svc.yaml    #修改port:8080
kubectl delete -f nginx-svc.yaml  #删除yaml文件
kubectl apply -f nginx-svc.yaml   #应用yaml文件
kubectl get SVC

 

 

 

 

 

 

  在线修改


直接使用kubectl edit service nginx
 在线编辑资源配置清单并保存退出即时生效( 如port: 9000)
此修改方式不会对yaml文件内容修改

 

 

 

 

1.3 删除资源配置清单

陈述式删除:
Kubernetes 支持YAML和JSON格式管理资源对象
JSON 格式:主要用于api接口之间消息的传递
YAML格式:用于配置和管理,YAML 是一种简洁的非标记性语言,内容格式人性化,较易读
kubectl delete pods nginx
声明式删除
kubectl delete -f nginx-svc.yaml

 2.自主编写资源清单

 2.1 初步认识资源清单中svc的重要配置项

 

Service yaml文件详解

apiVersion: v1
kind: Service
matadata:                                #元数据
  name: string                           #service的名称
  namespace: string                      #命名空间  
  labels:                                #自定义标签属性列表
    - name: string
  annotations:                           #自定义注解属性列表  
    - name: string
spec:                                    #详细描述
  selector: []                           #label selector配置,将选择具有label标签的Pod作为管理 
                                         #范围
  type: string                           #service的类型,指定service的访问方式,默认为 
                                         #clusterIp
  clusterIP: string                      #虚拟服务地址      
  sessionAffinity: string                #是否支持session
  ports:                                 #service需要暴露的端口列表
  - name: string                         #端口名称
    protocol: string                     #端口协议,支持TCP和UDP,默认TCP
    port: int                            #服务监听的端口号
    targetPort: int                      #需要转发到后端Pod的端口号
    nodePort: int                        #当type = NodePort时,指定映射到物理机的端口号
  status:                                #当spce.type=LoadBalancer时,设置外部负载均衡器的地址
    loadBalancer:                        #外部负载均衡器    
      ingress:                           #外部负载均衡器 
        ip: string                       #外部负载均衡器的Ip地址值
        hostname: string                 #外部负载均衡器的主机名

 

 

2.2 手动编写 svc资源配置 

 

编写service服务的资源清单
vim nginx-server.yaml

apiVersion: v1
kind: Service
metadata:
  name: nginx-svc
  namespace: default
  labels:
    app: nginx
spec:
  type: NodePort
  ports:
  - port: 80
    targetPort: 80
    nodePort: 30080
  selector:
    app: nginx



#创建资源对象
kubectl create -f nginx-service.yaml

#查看创建的service
kubectl get svc


补充:
详解k8s中的port
●port
port是k8s集群内部访问service的端口,即通过clusterIP: port可以从Pod所在的Node. 上访问到service 
●nodePort
nodePort是外部访问k8s集群中service的端口,通过nodeIP: nodePort 可以从外部访问到某个service。
●targetPort
targetPort是Pod的端口,从port或nodePort来的流量经过kube-proxy 反向代理负载均衡转发到后端Pod的targetPort上,最后进入容器。
●containerPort
containerPort是Pod内部容器的端口,targetPort映射到containerPort

 

 

 

 

3.手动生成模板,再编写资源清单 

 

(1)生成模板 

用--dry-run命令生成yaml资源清单

kubectl run --dry-run 打印相应的 API 对象试运行而不执行创建
#空跑测试
kubectl run nginx-svc2 --image=nginx:1.17  --port=80 --dry-run=client

#空跑测试的输出结果
kubectl run nginx-svc2 --image=nginx:1.17  --port=80 --dry-run=client -o yaml
#生成模板
kubectl run nginx-svc2 --image=nginx:1.17  --port=80 --dry-run=client -o yaml >nginx-svc2.yaml

 

 

 

 

 (2)修改并编写模板

 

vim nginx-svc2.yaml 
kubectl apply -f nginx-svc2.yaml
kubectl get pods

 

 

 

 

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/89305.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

解决虚拟机IP地址无法获取和网络无法连接

首先看一下电脑的end33分配成功没有 ifconfig或者使用ip addr查询都可以 ip addr 目录 1.首先看看你的网络连接模式是不是NAT 2.去主机电脑服务查看这四个服务是否开启 3.查看虚拟机子网ip是否分配了 4.修改我们的网卡配置文件,使用下面命令进入文件 5.重启网…

jemeter 压测并生成报告

文章目录前言一、压测步骤1.1 创建jvm文件1.2 压测生成测试文件及html压测结果二、结果分析前言 jmeter:是Apche公司使用Java平台开发的一款测试工具。 一、压测步骤 1.1 创建jvm文件 添加测试计划 (当打开jmeter默认有一个测试计划)添加…

高并发下解决AtomicLong性能瓶颈的方案——LongAdder

一、 LongAdder简介 LongAdder类是JDK1.8新增的一个原子性操作类。上一节说到,AtomicLong通过CAS提供了非阻塞的原子性操作,相比用阻塞算法的synchronized来说性能已经得到了很大提升。在高并发下大量线程会同时竞争更新同一个原子变量,但由…

Qt 模型视图编程之重置模型数据

背景 Qt 模型视图编程中模型定义了标准接口对数据进行访问,可根据需求继承对应的抽象模型类来实现自定义的数据模型。一个基本的数据模型至少要实现以下虚函数: ①.rowCount:行数,返回要显示多少行; ②&…

软件工程---习题六

4. 图6.18给出的程序流程图代表一个非结构化的程序,问:   (1)为什么说它是非结构化的?   答:通常所说的结构化程序,是按照狭义的结构程序的定义衡量,符合定义规定的程序,每个代码…

【操作系统】模式切换篇

CPU的模式 什么是CPU的模式?这和CPU的发展过程有关,最开始CPU是8位的,后来发展到16位,然后是32位,现在是64位,多少多少位指的是寄存器的位宽。CPU能使用的寄存器宽度以及CPU使用的指令等就构成了CPU的模式…

传统ERP管理项目有哪些问题?项目ERP系统哪个好?

8Manage FAS 是专为基于项目的公司设计的企业资源规划系统(ERP系统)。基于项目的公司包括建筑、工程和施工操作 (AEC)、产品要订购制造 (ETO) 和各种其他类型的专业服务公司 (PSO)。 对任何公司来说,无论在什么行业,项目对其业务…

Linux 调试之 TRACE_EVENT

文章目录前言一、TRACE_EVENT简介二、TRACE_EVENT() 结构2.1 TRACE_EVENT简介2.2 trace_sched_switch示例三、The header file参考资料前言 在Linux的整个历史中,人们一直希望在内核中添加静态跟踪点,即记录内核中特定位置的数据以供以后检索的函数。与…

[附源码]Nodejs计算机毕业设计基于大数据的超市进销存预警系统Express(程序+LW)

该项目含有源码、文档、程序、数据库、配套开发软件、软件安装教程。欢迎交流 项目运行 环境配置: Node.js Vscode Mysql5.7 HBuilderXNavicat11VueExpress。 项目技术: Express框架 Node.js Vue 等等组成,B/S模式 Vscode管理前后端分…

开源大数据比对平台(dataCompare)新版本发布

开源大数据比对平台设计与实践—dataCompare 前文介绍了开源大数据比对平台设计和实践,最近将整体业务流程进行了完善和开发。 一、目前当前版本实现了如下功能: (1)低代码简单配置完成数据比对核心功能 (2)数据量级比对、数据一致性比对 二、系统功…

sentinel限流,熔断等具体流程分析

基于sentinel 1.8.6 从sentinel-dashboard来看,sentinel主要提供了流控,熔断,热点,系统规则,授权规则等。 针对http请求的数据监控以及规则限制的适配,可以参考sentinel-spring-webmvc-adapter以及sentin…

CBAM(Convolutional Block Attention Module)卷积注意力模块用法及代码实现

CBAM卷积注意力模块用法及代码实现CBAMChannel Attention模块(CAM)Spatial Attention模块(SAM)代码实现CBAM CBAM( Convolutional Block Attention Module )是一种轻量级注意力模块的提出于2018年。CBAM包…

185-200-spark-核心编程-Streaming

185-spark-核心编程-Streaming: 数据处理延迟的长短分为:实时数据处理(毫秒级别),离线数据处理(小时,天) 数据处理的方式分为:流式数据处理(streaming&…

ORACLE19c数据库随LINUX操作系统自动启动实现方式

1.建立目录 # su - oracle $ mkdir /home/oracle/scripts 2.建立启动脚本: $ cd /home/oracle/scripts $ vim startdb.sh #!/bin/bash export ORACLE_BASE/u01/app/oracle export ORACLE_HOME$ ORACLE_BASE/product/19.16.0/db_1 export ORACLE_SIDemrep export PAT…

【电脑使用】利用diskpart删除电脑的EFI分区

文章目录前言问题描述问题解决扩展:测量磁盘读写速度1 win10自带工具2 第三方工具前言 在Windows的磁盘管理中,往往会发现自己电脑的磁盘中莫名多了一些分区,有一些是系统分区(一般不删),还有一些是还原分区…

m索引OFDM调制解调系统的性能仿真分析

目录 1.算法描述 2.仿真效果预览 3.MATLAB核心程序 4.完整MATLAB 1.算法描述 随着无线通信技术的不断发展,人们对下一代移动通信系统提出了越来越高的要求。在这样的时代背景下,具有低峰均比,强频偏对抗能力和高能量效率的索引调制OFDM系统(Orthogonal Frequency Division …

【跟学C++】C++STL三大主要组件——容器/迭代器/算法(Study19)

文章目录1、前言2、简介2.1、STL是什么?2.2、STL能干什么?2.3、STL组成3、容器3.1、顺序容器3.2、排序容器(关联式容器)3.3、哈希容器3.4、容器适配器3、迭代器3.1、迭代器介绍3.2、迭代器定义方式3.3、迭代器类别3.4、辅助函数4、算法5、总结 【说明】…

【MATLAB教程案例60】使用matlab实现基于GRU网络的数据分类预测功能与仿真分析

欢迎订阅《FPGA学习入门100例教程》、《MATLAB学习入门100例教程》 目录 1.软件版本 2.GRU网络理论概述

【云原生进阶之容器】第一章Docker核心技术1.5.4节——cgroups使用

4 CGroups使用 4.1 挂载cgroup树 开始使用cgroup前需要先挂载cgroup树,下面先看看如何挂载一颗cgroup树,然后再查看其根目录下生成的文件。 #准备需要的目录 #准备需要的目录 dev@ubuntu:~$ mkdir cgroup && cd cgroup dev@ubuntu:~/cgroup$ mkdir demo#由于name=…

[论文解析] Diffusion Guided Domain Adaptation of Image Generators

project link: https://styleganfusion.github.io/ 文章目录OverviewWhat problem is addressed in the paper?What is the key to the solution?What is the main contribution?IntroductionBackgroundLatent diffusion modelClassifier-free guidanceMethodModel Structur…