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

k8s-多容器Pod、容器保护策略、宽限期、最大生命周期、嵌入式脚本、多容器Pod、资源监控工具

资源对象文件

一、模板与帮助信息

1、资源对象文件优势

  • 命令无法实现高级复杂的功能
  • 某些资源对象使用命令无法创建
  • 方便管理、保存、追溯历史

2、如何生成资源对象模板

资源对象 Pod 模板使用 run 生成
[root@master ~]# kubectl run myweb --image=myos:nginx --dry-run=client -o yaml
apiVersion: v1
kind: Pod
metadata:creationTimestamp: nulllabels:run: mywebname: myweb
spec:containers:- image: myos:nginxname: mywebresources: {}dnsPolicy: ClusterFirstrestartPolicy: Always
status: {}
其它资源对象模板生成

除 Pod 外,其它资源对象模板使用 create 生成

生成模板命令:--dry-run=client -o yaml

[root@master ~]# kubectl create namespace work --dry-run=client -o yaml
apiVersion: v1
kind: Namespace
metadata:creationTimestamp: nullname: work
spec: {}
status: {}

3、资源文件参数如何查询

使用 "." 分割层级结构关系
---
kind:                         # 一级,可以表示为 .kind
apiVersion:                   # 一级,可以表示为 .apiVersion
metadata:                     # 一级,可以表示为 .metadataname:                       # 二级,可以表示为 .metadata.name
spec: researtPolicy: xx                        containers:- name:                    # 三级,可以表示为 .spec.containers.nameimage: 
status: {}

4、如何获取帮助信息

是以 explain 资源对象 + 层级关系
specrestartPolicy: Always    # 获取Pod中该参数的帮助信息containers:
#------------------------------------------------------------------------------
[root@master ~]# kubectl explain Pod.spec.restartPolicy
KIND:     Pod
VERSION:  v1FIELD:    restartPolicy <string>DESCRIPTION:Restart policy for all containers within the pod. One of Always, OnFailure,Never. Default to Always. More info:https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle/#restart-policyPossible enum values:- `"Always"`- `"Never"`- `"OnFailure"`

5、如何使用资源对象文件管理

[root@master app]# vim nginx.yaml 
---
kind: Pod
apiVersion: v1
metadata:name: nginx
spec:containers:- name: nginximage: myos:nginx[root@master app]# vim phpfpm.yaml
---
kind: Pod
apiVersion: v1
metadata:name: php
spec:containers:- name: phpimage: myos:php-fpm
# 使用资源对象文件创建应用
[root@master app]# kubectl apply -f nginx.yaml -f phpfpm.yaml 
pod/nginx created
pod/php created# 删除应用
[root@master app]# kubectl delete -f /root/app/
pod "nginx" deleted
pod "php" deleted# 合并资源对象文件
[root@master app]# cat nginx.yaml >> app.yaml
[root@master app]# cat phpfpm.yaml >> app.yaml# 调用合并后的文件
[root@master app]# kubectl apply -f app.yaml 
pod/nginx created
pod/php created# 删除资源对象
[root@master app]# kubectl delete -f app.yaml 
pod "nginx" deleted
pod "php" deleted

二、自定义命令

1、Pod自定义命令

  • 创建 Pod 时,可以为其设置启动时要执行的自定义命令,如果配置了自定义命令,那么镜像中自带的默认启动命令将不在执行
  • 自定义命令设置在 command 字段下,如果要命令有参数,就填写在 args 字段下

2、Pod自定义命令样例

例如:执行 sleep 30 的自定义命令
[root@master ~]# vim mycmd.yaml 
---
kind: Pod
apiVersion: v1
metadata:name: mycmd
spec:containers:- name: linuximage: myos:8.5command: ["sleep"]    # 自定义命令args: ["30"]          # 命令参数

三、restartPolicy(容器保护)策略

Pod 会根据策略决定容器结束后是否重启

[root@master ~]# kubectl apply -f mycmd.yaml 
pod/mycmd created
[root@master ~]# kubectl get pods -w
NAME    READY   STATUS    RESTARTS   AGE
mycmd   1/1     Running   0          10s
mycmd   0/1     Completed   0          31s
mycmd   1/1     Running     1 (1s ago)   32s-w:实时监视资源的状态变化

选项:重启(Always)、不重启(Never)、失败就重启(OnFailure)

[root@master ~]# vim mycmd.yaml 
---
kind: Pod
apiVersion: v1
metadata:name: mycmd
spec:restartPolicy: Never    # 配置保护策略containers:- name: linuximage: myos:8.5command: ["sleep"]args: ["10"]
[root@master ~]# kubectl apply -f mycmd.yaml 
pod/mycmd created
[root@master ~]# kubectl get pods -w
NAME    READY   STATUS    RESTARTS   AGE
mycmd   1/1     Running   0          4s
mycmd   0/1     Completed   0          12s
mycmd   0/1     Completed   0          13s

四、terminationGracePeriodSeconds(宽限期)策略

宽限期是为了避免服务突然中断,造成的事务不一致的问题

[root@master ~]# kubectl delete -f mycmd.yaml
[root@master ~]# kubectl apply -f mycmd.yaml
# 为什么删除要等一会
[root@master ~]# kubectl delete -f mycmd.yaml
# 等待 .
# 等待 ..
# 等待 ...
pod "mycmd" deleted

宽限期默认30s,不等待设置为0 

[root@master ~]# vim mycmd.yaml
---
kind: Pod
apiVersion: v1
metadata:name: mycmd
spec:terminationGracePeriodSeconds: 0  # 设置宽限期restartPolicy: Nevercontainers:- name: linuximage: myos:8.5command: ["sleep"]args: ["30"][root@master ~]# kubectl apply -f mycmd.yaml
pod/mycmd created
[root@master ~]# kubectl delete -f mycmd.yaml
pod "mycmd" deleted

五、activeDeadlineSeconds策略

1、循环死锁

如果一个Pod的内部程序在运行时出现循环死锁,那么就会永远不停的重复执行,如何避免这种情况发生

2、activeDeadlineSeconds策略

允许Pod运行的最大时长

时间到期后会向Pod发送singal,如果Pod无法结束就把它强制关闭,并且设置为Error状态

[root@master ~]# vim mycmd.yaml
---
kind: Pod
apiVersion: v1
metadata:name: mycmd
spec:terminationGracePeriodSeconds: 0activeDeadlineSeconds: 60  # 可以执行的最大时长restartPolicy: Nevercontainers:- name: linuximage: myos:8.5command: ["sleep"]args: ["300"][root@master ~]# kubectl delete -f mycmd.yaml
pod "mycmd" deleted
[root@master ~]# kubectl apply -f mycmd.yaml
pod/mycmd created[root@master ~]# kubectl get pods -w
mycmd   1/1     Running             0          1s
mycmd   1/1     Running             0          60s
mycmd   0/1     Error               0          64s

六、自定义命令进阶

1、如何执行复杂命令

Yaml多行表达式
---
string: >    # 最终结果为 [01234空格56789]0123456789---
string2: |    # 最终结果为 [01234换行56789]0123456789

2、在Pod中嵌入脚本

[root@master ~]# vim mycmd.yaml
---
kind: Pod
apiVersion: v1
metadata:name: mycmd
spec:terminationGracePeriodSeconds: 0restartPolicy: Alwayscontainers:- name: linuximage: myos:8.5command: ["/bin/bash"]    # 调用bash命令args:                     # 设置命令的参数- -c                      # 从字符串中读取命令- |                       # 以下多行字符串保留原格式while sleep 5;do        # 脚本指令,注意缩进对齐echo "hello world."done[root@master ~]# kubectl apply -f mycmd.yaml 
pod/mycmd created
[root@master ~]# kubectl get pods
NAME    READY   STATUS    RESTARTS   AGE
mycmd   1/1     Running   0          3s
[root@master ~]# kubectl logs mycmd 
hello world.
hello world.
hello world.

七、多容器Pod

1、创建多容器Pod

[root@master ~]# vim mynginx.yaml
---
kind: Pod
apiVersion: v1
metadata:name: mynginx
spec:terminationGracePeriodSeconds: 0restartPolicy: Alwayscontainers:- name: nginximage: myos:nginx- name: phpimage: myos:php-fpm[root@master ~]# kubectl apply -f mynginx.yaml 
pod/mynginx created
[root@master ~]# kubectl get pods
NAME      READY   STATUS    RESTARTS   AGE
mynginx   2/2     Running   0          3s

2、管理多容器Pod

受多容器配置影响,以下命令需要使用<-c 容器名字>

受影响命令:[logs,exec,cp]

[root@master ~]# echo "hello world" >hello.html
[root@master ~]# kubectl cp hello.html mynginx:/usr/local/nginx/html/ -c nginx
[root@master ~]# kubectl exec mynginx -c php -- psPID TTY          TIME CMD1 ?        00:00:00 php-fpm7 ?        00:00:00 ps
[root@master ~]# kubectl logs mynginx -c nginx
[root@master ~]#

资源指标监控

一、资源指标有什么用

在安装部署程序之后,必须要了解应用程序在部署后的性能以及资源使用情况。你可以通过检测Pod容器或节点来了解整个集群的情况

二、如何监控资源指标

Kubernetes的Metrics-server组件提供有关节点和Pod的资源使用情况的信息,包括CPU和内存的指标。如果将Metrics-server部署到集群中,就可以查询并使用到这些信息管理应用及服务

三、Metrics-server

1、概述

Metrics-Server是集群核心监控数据的聚合器。通俗的说,它存储了集群中各节点和Pod的监控数据,并且提供了API以供查询和使用

Metrics-Server通过kubelet获取node和Pod的CPU,内存等监控数据。为调度器、弹性控制器、以及Dashboard等UI组件提供数据来源

2、安装

kube-apiserver必须启用聚合服务,或使用kube-proxy代理转发

节点必须启用身份验证和授权。kubelet证书需要由集群证书颁发机构签名

Metrics-Server使用443、4443端口,所有节点上kubelet必须能够访问该端口

启用引导令牌,并签发

# 追加配置参数并重启服务
[root@master ~]# echo 'serverTLSBootstrap: true' >>/var/lib/kubelet/config.yaml
[root@master ~]# systemctl restart kubelet
# 获取证书名称,并签发
[root@master ~]# kubectl get certificatesigningrequests 
NAME        AGE   SIGNERNAME                      REQUESTOR            REQUESTEDDURATION   CONDITION
csr-2hg42   14s   kubernetes.io/kubelet-serving   system:node:master   <none>              Pending
[root@master ~]# kubectl certificate approve csr-2hg42
certificatesigningrequest.certificates.k8s.io/csr-2hg42 approved
[root@master ~]# kubectl get certificatesigningrequests 
NAME        AGE   SIGNERNAME                      REQUESTOR            REQUESTEDDURATION   CONDITION
csr-2hg42   28s   kubernetes.io/kubelet-serving   system:node:master   <none>              Approved,Issued

导入镜像,并上传到私有仓库

将镜像导入到私有仓库plugins目录下

# 导入镜像
[root@master metrics]# docker load -i metrics-server.tar.xz
# 上传镜像到私有仓库
[root@master metrics]# docker images|while read i t _;do[[ "${t}" == "TAG" ]] && continue[[ "${i}" =~ ^"harbor:443/".+ ]] && continuedocker tag ${i}:${t} harbor:443/plugins/${i##*/}:${t}docker push harbor:443/plugins/${i##*/}:${t}docker rmi ${i}:${t} harbor:443/plugins/${i##*/}:${t}
done

安装metrics组件 

# 修改镜像地址
[root@master metrics]# sed -ri 's,^(\s*image: )(.*/)?(.+),\1harbor:443/plugins/\3,' components.yaml
140:     image: harbor:443/plugins/metrics-server:v0.6.2
# 安装插件服务
[root@master metrics]# kubectl apply -f components.yaml
# 验证插件 Pod 状态
[root@master metrics]# kubectl -n kube-system get pods -l k8s-app=metrics-server
NAME                             READY   STATUS    RESTARTS   AGE
metrics-server-ddb449849-c6lkc   1/1     Running   0          64s

获取监控指标

[root@master metrics]# kubectl top nodes
NAME        CPU(cores)    CPU%         MEMORY(bytes)     MEMORY%     
master      99m           4%           1005Mi            27%         
node-0001   <unknown>     <unknown>    <unknown>        <unknown>
node-0002   <unknown>     <unknown>    <unknown>        <unknown>
node-0003   <unknown>     <unknown>    <unknown>        <unknown>
node-0004   <unknown>     <unknown>    <unknown>        <unknown>
node-0005   <unknown>     <unknown>    <unknown>        <unknown>

获取node节点监控指标

为所有node节点启用引导令牌

#--------------- 在所有计算节点配置证书 -----------------
[root@node ~]# echo 'serverTLSBootstrap: true' >>/var/lib/kubelet/config.yaml
[root@node ~]# systemctl restart kubelet

签发所有令牌

[root@master ~]# kubectl certificate approve $(kubectl get csr -o name)
certificatesigningrequest.certificates.k8s.io/csr-2hg42 approved
certificatesigningrequest.certificates.k8s.io/csr-9gu29 approved
......
[root@master ~]# kubectl get certificatesigningrequests 
NAME        AGE   SIGNERNAME                      REQUESTOR   CONDITION
csr-2hg42   14m   kubernetes.io/kubelet-serving   master      Approved,Issued
csr-9gu29   28s   kubernetes.io/kubelet-serving   node-0001   Approved,Issued
csr-xhp83   21s   kubernetes.io/kubelet-serving   node-0002   Approved,Issued
csr-69qhz   15s   kubernetes.io/kubelet-serving   node-0003   Approved,Issued
csr-t8799   15s   kubernetes.io/kubelet-serving   node-0004   Approved,Issued
csr-8k69w   15s   kubernetes.io/kubelet-serving   node-0005   Approved,Issued

获取node监控指标

# 获取资源指标有延时,等待 15s 即可查看
[root@master ~]# kubectl top nodes
NAME        CPU(cores)   CPU%   MEMORY(bytes)   MEMORY%   
master      83m          4%     1789Mi          50%       
node-0001   34m          1%     747Mi           20%       
node-0002   30m          1%     894Mi           24%       
node-0003   39m          1%     930Mi           25%       
node-0004   45m          2%     896Mi           24%       
node-0005   40m          2%     1079Mi          29%

四、资源指标

1、CPU资源指标

CPU资源的约束和请求以毫核(m)为单位。在k8s中1m是最小的调度单元,CPU的一个核心可以看作1000m

如果你有2颗CPU,且每CPU为4核心,那么你的CPU资源总量就是8000m

2、MEMORY资源指标

memory的约束和请求以字节为单位

可以使用以下单位来表示内存:E、P、T、G、M、K

也可以使用对应的2的幂数:Ei、Pi、Ti、Gi、Mi、Ki

五、创建Pod并获取监控指标

[root@master ~]# vim mylinux.yaml
---
kind: Pod
apiVersion: v1
metadata:name: mylinux
spec:containers:- name: linuximage: myos:8.5command: ["awk", "BEGIN{while(1){}}"][root@master ~]# kubectl apply -f mylinux.yaml
pod/mylinux created
# 查看 CPU 资源消耗
[root@master ~]# kubectl top pods
NAME      CPU(cores)   MEMORY(bytes)   
mylinux   999m         6Mi # 测试消耗内存资源
[root@master ~]# kubectl cp memtest.py mylinux:/usr/bin/
[root@master ~]# kubectl exec -it mylinux -- memtest.py 2500
use memory success
press any key to exit :
#--------------- 在另一个终端查看------------------------
[root@master ~]# kubectl top pods
NAME      CPU(cores)   MEMORY(bytes)   
mylinux   1001m        2503Mi

相关文章:

k8s-多容器Pod、容器保护策略、宽限期、最大生命周期、嵌入式脚本、多容器Pod、资源监控工具

资源对象文件 一、模板与帮助信息 1、资源对象文件优势 命令无法实现高级复杂的功能某些资源对象使用命令无法创建方便管理、保存、追溯历史 2、如何生成资源对象模板 资源对象 Pod 模板使用 run 生成 [rootmaster ~]# kubectl run myweb --imagemyos:nginx --dry-runcli…...

机器学习——线性回归(头歌实训)

头歌机器学习实训代码、答案&#xff0c;如果能够帮到您&#xff0c;希望可以点个赞&#xff01;&#xff01;&#xff01; 如果有问题可以csdn私聊或评论&#xff01;&#xff01;&#xff01;感谢您的支持 目录 第1关&#xff1a;简单线性回归与多元线性回归 第2关&#…...

Echarts 利用多X轴实现未来15天天气预报

Echarts 利用多X轴实现未来15天天气预报 UI 设计图 Echarts 实现效果 代码实现 代码分解 echarts 图表上下均显示数据 通过设置 grid.top 和 grid.bottom 设置白天和夜间天气展示区域 grid: {top: 36%,bottom: 36%,left: 5%,right: 5%}, 天气图标的设置 由于 axisLabel 的…...

[数据结构初阶]二叉树

各位读者老爷好&#xff0c;鼠鼠我现在浅浅介绍一些关于二叉树的知识点&#xff0c;在各位老爷茶余饭后的闲暇时光不妨看看&#xff0c;鼠鼠很希望得到各位老爷的指正捏&#xff01; 开始介绍之前&#xff0c;给各位老爷看一张风景照&#xff0c;有读者老爷知道在哪里吗&#x…...

matlab和stm32的安装环境。能要求与时俱进吗,en.stm32cubeprg-win64_v2-6-0.zip下载太慢了

STM32CubeMX 6.4.0 Download STM32CubeProgrammer 2.6.0 Download 版本都更新到6.10了&#xff0c;matlab还需要6.4&#xff0c;除了st.com其他地方都没有下载的,com.cn也没有。曹 还需要那么多固件安装。matlab要求制定固件位置&#xff0c;然后从cubemx中也指定…...

Opencv面试题

1、OpenCV中cv::Mat的深拷贝和浅拷贝问题? 深拷贝&#xff1a;分配新内存的同时拷贝数据&#xff0c;当被赋值的容器被修改时&#xff0c;原始容器数据不会改变。浅拷贝&#xff1a;仅拷贝数据&#xff0c;当被赋值容器修改时&#xff0c;原始容器数据也会做同样改变。 深拷贝…...

Python连接MariaDB数据库

2024软件测试面试刷题&#xff0c;这个小程序&#xff08;永久刷题&#xff09;&#xff0c;靠它快速找到工作了&#xff01;&#xff08;刷题APP的天花板&#xff09;【持续更新最新版】-CSDN博客 Python连接MariaDB数据库 一、安装mariadb库 pip install mariadb 二、连接…...

基于python+vue的ITS 信息平台的设计与实现flask-django-nodejs-php

伴随着我国社会的发展&#xff0c;人民生活质量日益提高。于是对系统进行规范而严格是十分有必要的&#xff0c;所以许许多多的信息管理系统应运而生。此时单靠人力应对这些事务就显得有些力不从心了。所以本论文将设计一套信息平台&#xff0c;帮助交通局进行信息共享、交通信…...

MediatR 框架使用FluentValidation对Comand/Query进行自动拦截验证

简介 目录 简介 1. MediatR项目框架 2. 实现步骤 步骤 1&#xff1a;编写管道行为 1. query 查询的管道 2. command命令的管道 步骤 2&#xff1a;注册验证器和管道行为 步骤 3&#xff1a;定义命令类 步骤 4&#xff1a;定义处理程序 步骤 5&#xff1a;编写命令验证器…...

TS + Vue3 elementUI 表格列表中如何方便的标识不同类型的内容,颜色区分 enum

TS Vue3 elementUI 表格列表中如何方便的标识不同类型的内容&#xff0c;颜色区分 enum 本文内容为 TypeScript 一、基础知识 在展示列表的时候&#xff0c;列表中的某个数据可能是一个类别&#xff0c;比如&#xff1a; enum EnumOrderStatus{"未受理" 1,"…...

从零开始一步一步掌握大语言模型---(2-什么是Token?)

了解自然语言处理或者听说过大语言模型的同学都听过&#xff0c;token。一般来说&#xff0c;它代表的是语言中不可再分的最小单元。我们人类的语言不仅有文字&#xff0c;还有语音。针对文字、语音来说&#xff0c;它们都各自有不同的划分token的方法。本节将尽可能详细的介绍…...

使用专属浏览器在国内直连GPT教程

Wildcard官方推特发文说他们最近推出了一款专门为访问OpenAI设计的浏览器。 根据官方消息&#xff0c;这是一款专门为访问OpenAI优选网络设计的浏览器&#xff0c;它通过为用户提供专用的家庭网络出口&#xff0c;确保了快速、稳定的连接。 用这个浏览器的最大好处就是直接用浏…...

Wireshark 抓包工具与长ping工具pinginfoview使用,安装包

一、Wireshark使用 打开软件&#xff0c;选择以太网 1、时间设置时间显示格式 这个时间戳不易直观&#xff0c;我们修改 2、抓包使用的命令 1&#xff09;IP地址过滤 ip.addr192.168.1.114 //筛选出源IP或者目的IP地址是192.168.1.114的全部数据包。 ip.sr…...

分享Pandas 数据分析实战课程

分享Pandas 数据分析实战课程&#xff0c;3 小时掌握数据分析核心技能。 链接&#xff1a;https://pan.baidu.com/s/1Ikk3I1dfoFO0id3EBZJdGg?pwd4y83 提取码&#xff1a;4y83 链接&#xff1a;https://pan.quark.cn/s/fa2acd7513f4 提取码&#xff1a;yWu7...

26. 删除有序数组中的重复项 (Swift版本)

题目描述 给你一个 非严格递增排列 的数组 nums &#xff0c;请你删除重复出现的元素&#xff0c;使每个元素只出现一次 &#xff0c;返回删除后数组的新长度。元素的 相对顺序 应该保持 一致 。然后返回 nums 中唯一元素的个数。 考虑 nums 的唯一元素的数量为 k &#xff0…...

python学生作业管理系统flask-django-nodejs-php

课题主要分为三大模块&#xff1a;即管理员模块和学生、教师模块&#xff0c;主要功能包括&#xff1a;学生、教师、作业信息、学习模块、教学评价、学习情况等&#xff1b; 关键词&#xff1a;学生作业管理系统&#xff1b;作业信息 目录 摘 要 I Abstrac II 目录 III 1绪论 1…...

蓝桥杯第二天刷真题

public class Main {public static void main(String [] args) { //存大数方法String s"202320232023"; // 定义一个字符串&#xff0c;它将被转换为结束循环的数值long end Long.parseLong(s);long sum 0;long primarynumber 1;for(int i 1; i<end; i) {long …...

RK3568 安装jupyter和jupyterlab

首先需要RK3568运行Ubuntu,之前的文章有关于如何安装Ubuntu以及遇到的问题 其次需要安装Miniconda3,详细安装教程:RK3568 安装Miniconda3-CSDN博客 准备好这两步之后就可以开始: 1、更新软件源和软件 sudo apt update sudo apt upgrade sudo apt-get dist-upgrade 2、…...

简易指南:国内ip切换手机软件怎么弄

在网络访问受到地域限制的情况下&#xff0c;使用国内IP切换手机软件可以帮助用户轻松访问被屏蔽的内容&#xff0c;扩展网络体验。以下是虎观代理小二分享的使用国内IP切换手机软件的简易指南。并提供一些注意事项。 如何在手机上使用国内IP切换软件 步骤一&#xff1a;选择I…...

Git学习笔记之Git 别名

Git 并不会在你输入部分命令时自动推断出你想要的命令。 如果不想每次都输入完整的 Git 命令&#xff0c;可以通过 git config 文件来轻松地为每一个命令设置一个别名。命令&#xff1a; git config --global alias.别名 命令例如 git config --global alias.co checkout git …...

SCAU期末笔记 - 数据分析与数据挖掘题库解析

这门怎么题库答案不全啊日 来简单学一下子来 一、选择题&#xff08;可多选&#xff09; 将原始数据进行集成、变换、维度规约、数值规约是在以下哪个步骤的任务?(C) A. 频繁模式挖掘 B.分类和预测 C.数据预处理 D.数据流挖掘 A. 频繁模式挖掘&#xff1a;专注于发现数据中…...

全球首个30米分辨率湿地数据集(2000—2022)

数据简介 今天我们分享的数据是全球30米分辨率湿地数据集&#xff0c;包含8种湿地亚类&#xff0c;该数据以0.5X0.5的瓦片存储&#xff0c;我们整理了所有属于中国的瓦片名称与其对应省份&#xff0c;方便大家研究使用。 该数据集作为全球首个30米分辨率、覆盖2000–2022年时间…...

【CSS position 属性】static、relative、fixed、absolute 、sticky详细介绍,多层嵌套定位示例

文章目录 ★ position 的五种类型及基本用法 ★ 一、position 属性概述 二、position 的五种类型详解(初学者版) 1. static(默认值) 2. relative(相对定位) 3. absolute(绝对定位) 4. fixed(固定定位) 5. sticky(粘性定位) 三、定位元素的层级关系(z-i…...

镜像里切换为普通用户

如果你登录远程虚拟机默认就是 root 用户&#xff0c;但你不希望用 root 权限运行 ns-3&#xff08;这是对的&#xff0c;ns3 工具会拒绝 root&#xff09;&#xff0c;你可以按以下方法创建一个 非 root 用户账号 并切换到它运行 ns-3。 一次性解决方案&#xff1a;创建非 roo…...

【RockeMQ】第2节|RocketMQ快速实战以及核⼼概念详解(二)

升级Dledger高可用集群 一、主从架构的不足与Dledger的定位 主从架构缺陷 数据备份依赖Slave节点&#xff0c;但无自动故障转移能力&#xff0c;Master宕机后需人工切换&#xff0c;期间消息可能无法读取。Slave仅存储数据&#xff0c;无法主动升级为Master响应请求&#xff…...

MySQL用户和授权

开放MySQL白名单 可以通过iptables-save命令确认对应客户端ip是否可以访问MySQL服务&#xff1a; test: # iptables-save | grep 3306 -A mp_srv_whitelist -s 172.16.14.102/32 -p tcp -m tcp --dport 3306 -j ACCEPT -A mp_srv_whitelist -s 172.16.4.16/32 -p tcp -m tcp -…...

智能分布式爬虫的数据处理流水线优化:基于深度强化学习的数据质量控制

在数字化浪潮席卷全球的今天&#xff0c;数据已成为企业和研究机构的核心资产。智能分布式爬虫作为高效的数据采集工具&#xff0c;在大规模数据获取中发挥着关键作用。然而&#xff0c;传统的数据处理流水线在面对复杂多变的网络环境和海量异构数据时&#xff0c;常出现数据质…...

C# 求圆面积的程序(Program to find area of a circle)

给定半径r&#xff0c;求圆的面积。圆的面积应精确到小数点后5位。 例子&#xff1a; 输入&#xff1a;r 5 输出&#xff1a;78.53982 解释&#xff1a;由于面积 PI * r * r 3.14159265358979323846 * 5 * 5 78.53982&#xff0c;因为我们只保留小数点后 5 位数字。 输…...

深度学习习题2

1.如果增加神经网络的宽度&#xff0c;精确度会增加到一个特定阈值后&#xff0c;便开始降低。造成这一现象的可能原因是什么&#xff1f; A、即使增加卷积核的数量&#xff0c;只有少部分的核会被用作预测 B、当卷积核数量增加时&#xff0c;神经网络的预测能力会降低 C、当卷…...

React---day11

14.4 react-redux第三方库 提供connect、thunk之类的函数 以获取一个banner数据为例子 store&#xff1a; 我们在使用异步的时候理应是要使用中间件的&#xff0c;但是configureStore 已经自动集成了 redux-thunk&#xff0c;注意action里面要返回函数 import { configureS…...