jsp mysql开发网站开发/平台推广
供应链安全
目录
文章目录
- 供应链安全
- 目录
- 本节实战
- 可信任软件供应链概述
- 构建镜像Dockerfile文件优化
- 镜像漏洞扫描工具:Trivy
- 检查YAML文件安全配置:kubesec
- 准入控制器: Admission Webhook
- 准入控制器: ImagePolicyWebhook
- 关于我
- 最后
本节实战
实战名称 |
---|
💘 实战:安装Trivy-2023.6.4(测试成功) |
💘 实战:安装kubesec-2023.6.4(测试成功) |
💘 实战:准入控制器: ImagePolicyWebhook-2023.6.6(测试成功) |
可信任软件供应链概述
**可信任软件供应链:**指在建设基础架构过程中,涉及的软件都是可信任的。
在K8s领域可信软件供应链主要是指镜像,因为一些软件交付物都是镜像,部署的最小载体。
构建镜像Dockerfile文件优化
- 减少镜像层:一次RUN指令形成新的一层,尽量Shell命令都写在一行,减少镜像层。
- **清理无用文件:**清理对应的残留数据,例如yum缓存。
- **清理无用的软件包:**基础镜像默认会带一些debug工具,可以删除掉,仅保留应用程序所需软件,防止黑客利用。
- 选择最小的基础镜像:例如alpine
- **使用非root用户运行:**USER指令指定普通用户
- 注意:
一次RUN指令形成新的一层,尽量Shell命令都写在一行,减少镜像层。
- 删除掉这个缓存目录就行
- alpine镜像大小:5MB
镜像漏洞扫描工具:Trivy
**Trivy:**是一种用于容器镜像、文件系统、Git仓库的漏洞扫描工具。发现目标软件存在的漏洞。
Trivy易于使用,只需安装二进制文件即可进行扫描,方便集成CI系统。
项目地址:https://github.com/aquasecurity/trivy
💘 实战:安装Trivy-2023.6.4(测试成功)
- 实验环境
实验环境:
centos7
- 实验软件
链接:https://pan.baidu.com/s/17XstYWfyOWW3nyNgxhS4yQ?pwd=0820
提取码:0820
2023.6.4-trivy-code
- 安装步骤
1、下载软件
[root@k8s-master1 ~]#ll -h trivy_0.18.3_Linux-64bit.tar.gz #自己去官网下载,这里直接用提供的安装包
-rw-r--r-- 1 root root 11M Jun 4 07:39 trivy_0.18.3_Linux-64bit.tar.gz2、移动二进制文件到/usr/bin目录
[root@k8s-master1 ~]#mkdir trivy
[root@k8s-master1 ~]#mv trivy_0.18.3_Linux-64bit.tar.gz trivy
[root@k8s-master1 ~]#cd trivy/
[root@k8s-master1 trivy]#tar xf trivy_0.18.3_Linux-64bit.tar.gz
[root@k8s-master1 trivy]#ls
contrib LICENSE README.md trivy trivy_0.18.3_Linux-64bit.tar.gz
[root@k8s-master1 trivy]#mv trivy /usr/bin/3、测试
[root@k8s-master1 ~]#trivy --help
NAME:trivy - A simple and comprehensive vulnerability scanner for containersUSAGE:trivy [global options] command [command options] targetVERSION:0.18.3COMMANDS:image, i scan an imagefilesystem, fs scan local filesystemrepository, repo scan remote repositoryclient, c client modeserver, s server modeplugin, p manage pluginshelp, h Shows a list of commands or help for one commandGLOBAL OPTIONS:--quiet, -q suppress progress bar and log output (default: false) [$TRIVY_QUIET]--debug, -d debug mode (default: false) [$TRIVY_DEBUG]--cache-dir value cache directory (default: "/root/.cache/trivy") [$TRIVY_CACHE_DIR]--help, -h show help (default: false)--version, -v print the version (default: false)
安装结束。😘
示例:
# 容器镜像扫描
trivy image nginx
trivy image -i nginx.tar# 打印指定(高危、严重)漏洞信息
trivy image -s HIGH nginx
trivy image -s HIGH,CRITICAL nginx# JSON格式输出并保存到文件
trivy image -f json -o output.json nginx
漏洞数据库:
检查YAML文件安全配置:kubesec
**kubesec:**是一个针对K8s资源清单文件进行安全配置评估的工具,根据安全配置最佳实践来验证并给出建议。
官网:https://kubesec.io
项目地址:https://github.com/controlplaneio/kubesec
💘 实战:安装kubesec-2023.6.4(测试成功)
- 实验环境
实验环境:
centos7
- 实验软件
链接:https://pan.baidu.com/s/1SvQ1ijvplpe-hfUv6cCUgQ?pwd=0820
提取码:0820
2023.6.4-kubesec-code
- 安装步骤
1、下载软件
root@k8s-master1 ~]#ll -h kubesec_linux_amd64.tar.gz
-rw-r--r-- 1 root root 3.9M Jun 4 07:39 kubesec_linux_amd64.tar.gz2、解压
[root@k8s-master1 ~]#tar xf kubesec_linux_amd64.tar.gz
[root@k8s-master1 ~]#mv kubesec /usr/bin/3、验证
[root@k8s-master1 ~]#kubesec --helpValidate Kubernetes resource security policiesUsage:kubesec [command]Available Commands:help Help about any commandhttp Starts kubesec HTTP server on the specified portscan Scans Kubernetes resource YAML or JSONversion Prints kubesec versionFlags:-h, --help help for kubesecUse "kubesec [command] --help" for more information about a command.
安装结束。😘
示例:
kubesec scan deployment.yaml或者使用容器环境执行检查
docker run -i kubesec/kubesec scan /dev/stdin < deployment.yaml
kubesec内置一个HTTP服务器,可以直接启用,远程调用。
- 二进制
kubesec http 8080 &
- Docker容器
docker run -d -p 8080:8080 kubesec/kubesec http 8080示例:
curl -sSX POST --data-binary @deployment.yaml http://192.168.31.71:8080/scan
测试过程:
[root@k8s-master1 ~]#kubectl create deployment web --image=nginx --dry-run=client -oyaml > deployment.yaml
[root@k8s-master1 ~]#kubesec scan deployment.yaml
[root@k8s-master1 ~]#docker run -d -p 8085:8080 kubesec/kubesec http 8080 #宿主机端口:容器端口
[root@k8s-master1 ~]#curl -sSX POST --data-binary @deployment.yaml http://172.29.9.31:8085/scan #宿主机的8085端口
准入控制器: Admission Webhook
**Admission Webhook:**准入控制器Webhook是准入控制插件的一种,用于拦截所有向APISERVER发送的请求,并且可以修改请求或拒绝请求。
Admission webhook为开发者提供了非常灵活的插件模式,在kubernetes资源持久化之前,管理员通过程序可以对指定资源做校验、修改等操作。例如为资源自动打标签、pod设置默认SA,自动注入sidecar容器等。
相关Webhook准入控制器:
- MutatingAdmissionWebhook:修改资源,理论上可以监听并修改任何经过ApiServer处理的请求
- ValidatingAdmissionWebhook:验证资源
- ImagePolicyWebhook:镜像策略,主要验证镜像字段是否满足条件
准入控制器: ImagePolicyWebhook
💘 实战:准入控制器: ImagePolicyWebhook-2023.6.6(测试成功)
- 实验环境
实验环境:
1、win10,vmwrokstation虚机;
2、k8s集群:3台centos7.6 1810虚机,1个master节点,2个node节点k8s version:v1.20.0docker://20.10.7
- 实验软件
链接:https://pan.baidu.com/s/1RGJtAhqWXMNVxk7vauaCeA?pwd=0820
提取码:0820
2023.6.6-ImagePolicyWebhook-code
- 课件步骤
1、准备配置文件
(在k8s-master1
上操作)
- 创建
admission_configuration.yaml
文件
#创建/etc/kubernetes/image-policy目录及/etc/kubernetes/image-policy/admission_configuration.yaml文件
[root@k8s-master1 ~]#mkdir /etc/kubernetes/image-policy/
[root@k8s-master1 ~]#vim /etc/kubernetes/image-policy/admission_configuration.yaml
apiVersion: apiserver.config.k8s.io/v1
kind: AdmissionConfiguration
plugins:
- name: ImagePolicyWebhookconfiguration:imagePolicy:kubeConfigFile: /etc/kubernetes/image-policy/connect_webhook.yaml # 连接镜像策略服务器配置文件allowTTL: 50 # 控制批准请求的缓存时间,单位秒denyTTL: 50 # 控制拒绝请求的缓存时间,单位秒retryBackoff: 500 # 控制重试间隔,单位毫秒defaultAllow: true # 确定webhook后端失效的行为
- 创建
connect_webhook.yaml
文件
[root@k8s-master1 ~]#vim /etc/kubernetes/image-policy/connect_webhook.yaml
apiVersion: v1
kind: Config
clusters:
- cluster:certificate-authority: /etc/kubernetes/image-policy/webhook.pem # 数字证书,用于验证远程服务server: https://172.29.9.32:8081/image_policy # 镜像策略服务器地址,必须是httpsname: webhook
contexts:
- context:cluster: webhookuser: apiservername: webhook
current-context: webhook
preferences: {}
users:
- name: apiserveruser:client-certificate: /etc/kubernetes/image-policy/apiserver-client.pem # webhook准入控制器使用的证书client-key: /etc/kubernetes/image-policy/apiserver-client-key.pem # 对应私钥证书
注:涉及的证书文件,下一步将生成,然后会拷贝到相应路径。
2、部署镜像服务器
(在k8s-node1
上操作。)
自己用python开发一个简单的webhook端点服务器,作用是拒绝部署的镜像乜有指定标签(即latest)。
(1) 自签HTTPS证书
来到k8s-node1
节点:
- 将压缩包
image-policy-webhook.zip
拷贝到k8s-node1
节点并解压:
[root@k8s-node1 ~]#ll
total 4
-rw-r--r-- 1 root root 2910 Jun 5 07:09 image-policy-webhook.zip
[root@k8s-node1 ~]#unzip image-policy-webhook.zip
Archive: image-policy-webhook.zipcreating: image-policy-webhook/inflating: image-policy-webhook/Dockerfile inflating: image-policy-webhook/main.py inflating: admission_configuration.yaml inflating: connect_webhook.yaml inflating: image-policy-certs.sh
[root@k8s-node1 ~]#ls
admission_configuration.yaml connect_webhook.yaml image-policy-certs.sh image-policy-webhook image-policy-webhook.zip
- 查看当前
image-policy-certs.sh
自签脚本文件:
[root@k8s-node1 ~]#cat image-policy-certs.sh
[root@k8s-node1 ~]#cat image-policy-certs.sh
cat > ca-config.json <<EOF
{"signing": {"default": {"expiry": "87600h" },"profiles": {"kubernetes": { "expiry": "87600h","usages": ["signing","key encipherment","server auth","client auth"]}}}
}
EOFcat > ca-csr.json <<EOF
{"CN": "kubernetes","key": {"algo": "rsa","size": 2048},"names": [{"C": "CN","L": "Beijing","ST": "Beijing"}]
}
EOFcfssl gencert -initca ca-csr.json | cfssljson -bare ca -cat > webhook-csr.json <<EOF
{"CN": "webhook","hosts": ["172.29.9.32"],"key": {"algo": "rsa","size": 2048},"names": [{"C": "CN","L": "BeiJing","ST": "BeiJing"}]
}
EOFcfssl gencert -ca=ca.pem -ca-key=ca-key.pem -config=ca-config.json -profile=kubernetes webhook-csr.json | cfssljson -bare webhookcat > apiserver-client-csr.json <<EOF
{"CN": "apiserver","hosts": [],"key": {"algo": "rsa","size": 2048},"names": [{"C": "CN","L": "BeiJing","ST": "BeiJing"}]
}
EOFcfssl gencert -ca=ca.pem -ca-key=ca-key.pem -config=ca-config.json -profile=kubernetes apiserver-client-csr.json | cfssljson -bare apiserver-client
- 执行脚本:
[root@k8s-node1 ~]#sh image-policy-certs.sh
[root@k8s-node1 ~]#ll
total 5784
-rw-r--r-- 1 root root 508 Oct 21 2021 admission_configuration.yaml
-rw-r--r-- 1 root root 956 Jun 5 07:15 apiserver-client.csr
-rw-r--r-- 1 root root 182 Jun 5 07:15 apiserver-client-csr.json
-rw------- 1 root root 1679 Jun 5 07:15 apiserver-client-key.pem
-rw-r--r-- 1 root root 1306 Jun 5 07:15 apiserver-client.pem
-rw-r--r-- 1 root root 294 Jun 5 07:15 ca-config.json
-rw-r--r-- 1 root root 960 Jun 5 07:15 ca.csr
-rw-r--r-- 1 root root 212 Jun 5 07:15 ca-csr.json
-rw------- 1 root root 1679 Jun 5 07:15 ca-key.pem
-rw-r--r-- 1 root root 1273 Jun 5 07:15 ca.pem
-rw-r--r-- 1 root root 5850685 Jun 5 07:15 cfssl.tar.gz
-rw-r--r-- 1 root root 632 Oct 21 2021 connect_webhook.yaml
-rw-r--r-- 1 root root 1365 Jun 5 07:13 image-policy-certs.sh
drwxr-xr-x 2 root root 39 Jul 9 2021 image-policy-webhook
-rw-r--r-- 1 root root 2910 Jun 5 07:09 image-policy-webhook.zip
-rw-r--r-- 1 root root 1001 Jun 5 07:15 webhook.csr
-rw-r--r-- 1 root root 202 Jun 5 07:15 webhook-csr.json
-rw------- 1 root root 1679 Jun 5 07:15 webhook-key.pem
-rw-r--r-- 1 root root 1330 Jun 5 07:15 webhook.pem
- 拷贝证书文件到
k8s-master1
对应目录:
[root@k8s-node1 ~]#scp webhook.pem apiserver-client-key.pem apiserver-client.pem root@172.29.9.31:/etc/kubernetes/image-policy/
The authenticity of host '172.29.9.31 (172.29.9.31)' can't be established.
ECDSA key fingerprint is SHA256:XfMhwZeoqC6kPHaF1uPzLdY9t2ZgNoNvyEd0kJd24eY.
ECDSA key fingerprint is MD5:ec:5e:37:9d:fc:e7:af:e1:9e:3a:ac:21:81:92:b5:91.
Are you sure you want to continue connecting (yes/no)? yes
Warning: Permanently added '172.29.9.31' (ECDSA) to the list of known hosts.
root@172.29.9.31's password:
webhook.pem 100% 1330 1.3MB/s 00:00
apiserver-client-key.pem 100% 1679 858.4KB/s 00:00
apiserver-client.pem 100% 1306 330.6KB/s 00:00 [root@k8s-master1 ~]#cd /etc/kubernetes/image-policy/
[root@k8s-master1 image-policy]#ll
total 20
-rw-r--r-- 1 root root 509 Jun 5 07:01 admission_configuration.yaml
-rw------- 1 root root 1679 Jun 5 07:27 apiserver-client-key.pem
-rw-r--r-- 1 root root 1306 Jun 5 07:27 apiserver-client.pem
-rw-r--r-- 1 root root 633 Jun 5 07:04 connect_webhook.yaml
-rw-r--r-- 1 root root 1330 Jun 5 07:27 webhook.pem
(2) Docker容器启动镜像策略服务
- 构建镜像:
[root@k8s-node1 ~]#pwd
/root
[root@k8s-node1 ~]#ls
admission_configuration.yaml apiserver-client-key.pem ca.csr ca.pem image-policy-certs.sh webhook.csr webhook.pem
apiserver-client.csr apiserver-client.pem ca-csr.json cfssl.tar.gz image-policy-webhook webhook-csr.json
apiserver-client-csr.json ca-config.json ca-key.pem connect_webhook.yaml image-policy-webhook.zip webhook-key.pem
[root@k8s-node1 ~]#cd image-policy-webhook
[root@k8s-node1 image-policy-webhook]#ls
Dockerfile main.py
[root@k8s-node1 image-policy-webhook]#cat Dockerfile
FROM python
RUN useradd python
RUN mkdir /data/www -p
COPY . /data/www
RUN chown -R python /data
RUN pip install flask -i https://mirrors.aliyun.com/pypi/simple/
WORKDIR /data/www
USER python
CMD python main.py
[root@k8s-node1 image-policy-webhook]#docker build -t image-policy-webhook .
[root@k8s-node1 image-policy-webhook]#docker images|grep image-policy-webhook
image-policy-webhook latest 331d1c0b42d8 18 seconds ago 936MB
- 启动容器:
docker run -d -u root --name=image-policy-webhook \
-v $PWD/webhook.pem:/data/www/webhook.pem \
-v $PWD/webhook-key.pem:/data/www/webhook-key.pem \
-e PYTHONUNBUFFERED=1 -p 8081:8080 \
image-policy-webhook#注意:这里的证书文件是放置在/root下的;
#注意:课件里宿主机端口用的是8080,但自己宿主机8080端口被nodeCache占用了,因此这里使用8081.[root@k8s-node1 ~]#docker ps -l
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
7145eb5dfa6d image-policy-webhook "/bin/sh -c 'python …" 5 seconds ago Up 4 seconds 0.0.0.0:8081->8080/tcp, :::8081->8080/tcp image-policy-webhook
[root@k8s-node1 ~]#docker logs 7145eb5dfa6d* Serving Flask app 'main'* Debug mode: off
WARNING: This is a development server. Do not use it in a production deployment. Use a production WSGI server instead.* Running on all addresses (0.0.0.0)* Running on https://127.0.0.1:8080* Running on https://172.17.0.2:8080
Press CTRL+C to quit
[root@k8s-node1 ~]#
3、启用准入控制插件
[root@k8s-master1 ~]#vim /etc/kubernetes/manifests/kube-apiserver.yaml - --enable-admission-plugins=NodeRestriction,ImagePolicyWebhook - --admission-control-config-file=/etc/kubernetes/image-policy/admission_configuration.yaml……- mountPath: /etc/kubernetes/image-policyname: image-policyreadOnly: true…… - hostPath:path: /etc/kubernetes/image-policytype: DirectoryOrCreatename: image-policy
报错退出,此时可以看到静态pod kube-apiserver-k8s-master1
发生重启了。
4、测试
- 在
k8s-node1
上持续查看容器image-policy
的日志
[root@k8s-node1 ~]#docker logs -f image-policy-webhook
- 创建不带tag的deployment资源测试
[root@k8s-master1 image-policy]#kubectl create deployment web-no-tag --image=nginx
deployment.apps/web-no-tag created
[root@k8s-master1 image-policy]#kubectl get deployment
NAME READY UP-TO-DATE AVAILABLE AGE
web-no-tag 0/1 0 0 10s
[root@k8s-master1 image-policy]#kubectl describe replicaset web-no-tag-78bd59988f
- 创建tag的deployment资源测试
[root@k8s-master1 image-policy]#kubectl create deployment web-with-tag --image=nginx:1.16
deployment.apps/web-with-tag created
[root@k8s-master1 image-policy]#kubectl get deployment
NAME READY UP-TO-DATE AVAILABLE AGE
web-no-tag 0/1 0 0 2m45s
web-with-tag 1/1 1 1 6s
带有tag的镜像会被成功创建,不带tag的镜像会被ImagePolicyWebhook
拒绝,符合预期。
测试结束。😘
关于我
我的博客主旨:
- 排版美观,语言精炼;
- 文档即手册,步骤明细,拒绝埋坑,提供源码;
- 本人实战文档都是亲测成功的,各位小伙伴在实际操作过程中如有什么疑问,可随时联系本人帮您解决问题,让我们一起进步!
🍀 微信二维码
x2675263825 (舍得), qq:2675263825。
🍀 微信公众号
《云原生架构师实战》
🍀 语雀
https://www.yuque.com/xyy-onlyone
🍀 csdn
https://blog.csdn.net/weixin_39246554?spm=1010.2135.3001.5421
🍀 知乎
https://www.zhihu.com/people/foryouone
最后
好了,关于本次就到这里了,感谢大家阅读,最后祝大家生活快乐,每天都过的有意义哦,我们下期见!
相关文章:

供应链安全
供应链安全 目录 文章目录 供应链安全目录本节实战可信任软件供应链概述构建镜像Dockerfile文件优化镜像漏洞扫描工具:Trivy检查YAML文件安全配置:kubesec准入控制器: Admission Webhook准入控制器: ImagePolicyWebhook关于我最后…...

华硕天选4原装Windows11系统带ASUSRECOVERY恢复工厂模式安装
华硕工厂恢复系统 ,安装结束后带隐藏分区以及机器所有驱动软件,奥创Myasus Recovery 文件地址https://pan.baidu.com/s/1Pq09oDzmFI6hXVdf8Vqjqw?pwd3fs8 提取码:3fs8 文件格式:5个底包(HDI KIT COM MCAFEE EDN) 1个引导工具TLK 支持ASUSRECOVERY型…...

数据库期末复习(8)并发控制
笔记 数据库DBMS并发控制(1)_旅僧的博客-CSDN博客 数据库 并发控制(2)死锁和意向锁_旅僧的博客-CSDN博客 同一个对象不能既有slock又有xlock; 冲突可串行化和锁 怎么判断是否可以进行冲突可串行化:简便的方法是优先图 只有不同对象和同一对象都是读才不能发生非串行化调…...

一文说透:低代码开发平台和零代码平台区别是什么?
低代码开发平台和零代码平台区别是什么? 一个简单的例子就可以解释清楚。 假设你想入住一套新房,回看住房变迁史: 最原始方式是:自己建造往后一点,交付“毛坯房”:开发商统一建小区,不需要自…...

4.将图神经网络应用于大规模图数据(Cluster-GCN)
到目前为止,我们已经为节点分类任务单独以全批方式训练了图神经网络。特别是,这意味着每个节点的隐藏表示都是并行计算的,并且可以在下一层中重复使用。 然而,一旦我们想在更大的图上操作,由于内存消耗爆炸,…...

pymongo更新数据
使用 PyMongo,可以通过以下步骤将查询到的记录进行更新: 下面是一个简单的示例代码片段,展示如何向名为users的集合中的所有文档添加一个新字段age。 import pymongo # 连接 MongoDB client pymongo.MongoClient("mongodb://localh…...

手机软件测试规范(含具体用例)
菜单基本功能测试规范一、短消息功能测试规范测试选项操作方法观察与判断结果创建、编辑短消息并发送书写短消息1、分别使用菜单或快捷方式进入书写短消息是否有异常; 2、输入0个字符,选择、输入号码发送,应成功; 3、输入1个中文…...

mysql having的用法
having的用法 having字句可以让我们筛选成组后的各种数据,where字句在聚合前先筛选记录,也就是说作用在group by和having字句前。而 having子句在聚合后对组记录进行筛选。我的理解就是真实表中没有此数据,这些数据是通过一些函数生存。 SQ…...

大数据需要学习哪些内容?
大数据技术的体系庞大且复杂,每年都会涌现出大量新的技术,目前大数据行业所涉及到的核心技术主要就是:数据采集、数据存储、数据清洗、数据查询分析和数据可视化。 Python 已成利器 在大数据领域中大放异彩 Python,成为职场人追求…...

【c++】static和const修饰类的成员变量或成员函数
目录 1、静态成员变量 2、静态成员函数 3、常函数 4、常对象 当我们使用c的关键字static修饰类中的成员变量和成员函数的时候,此时的成员变量和成员函数被称为静态成员。 静态成员包含: 静态成员变量静态成员函数 1、静态成员变量 静态成员变量有…...

DVWA-9.Weak Session IDs
大约 了解会话 ID 通常是在登录后以特定用户身份访问站点所需的唯一内容,如果能够计算或轻松猜测该会话 ID,则攻击者将有一种简单的方法来访问用户帐户,而无需暴力破解密码或查找其他漏洞,例如跨站点脚本。 目的 该模块使用四种…...

Bug序列——容器内给/root目录777权限后无法使用ssh免密登录
Linux——创建容器并将本地调试完全的前后端分离项目打包上传docker运行_北岭山脚鼠鼠的博客-CSDN博客 接着上一篇文章结尾出现403错误时通过赋予/root目录以777权限解决403错误。 chmod 777 /root 现在又出现新的问题,远程ssh无法免密登录了,即使通过…...

华为OD机试真题 JavaScript 实现【服务中心选址】【2023Q1 100分 】
一、题目描述 一个快递公司希望在一条街道建立新的服务中心。公司统计了该街道中所有区域在地图上的位置,并希望能够以此为依据为新的服务中心选址,使服务中心到所有区域的距离的总和最小。 给你一个数组 positions,其中 positions[i] [le…...

<Linux>《OpenSSH 客户端配置文件ssh_config详解》
《OpenSSH 客户端配置文件ssh_config详解》 1、 ssh获取配置数据顺序2、关键字2.1 Host2.2 Match2.3 AddKeysToAgent2.4 AddressFamily2.5 BatchMode2.6 BindAddress2.7 BindInterface2.8 CanonicalDomains2.9 CanonicalizeFallbackLocal2.10 CanonicalizeHostname2.11 Canonic…...

Linux内核中内存管理相关配置项的详细解析8
接前一篇文章:Linux内核中内存管理相关配置项的详细解析7 十一、Enable KSM for page merging 对应配置变量为:CONFIG_KSM。 此项只有选中和不选中两种状态,默认为选中。 内核源码详细解释为: Enable Kernel Samepage Merging:…...

深入浅出Vite:Vite打包与拆分
一、背景 在生产环境下,为了提高页面加载性能,构建工具一般将项目的代码打包(bundle)到一起,这样上线之后只需要请求少量的 JS 文件,大大减少 HTTP 请求。当然,Vite 也不例外,默认情况下 Vite 利用底层打包引擎 Rollup 来完成项目的模块打包。 某种意义上来说,对线上环…...

大数据ETL工具Kettle
提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录 前言最近公司在搞大数据数字化,有MES,CIM,WorkFlow等等N多的系统,不同的数据源DB,需要将这些不同的数据源DB里的数据进行整治统一…...
大学物理(上)-期末知识点结合习题复习(4)——质点运动学-动能定理 力做功 保守力与非保守力 势能 机械能守恒定律 完全弹性碰撞
目录 1.力做功 恒力作用下的功 变力的功 2.动能定理 3.保守力与非保守力 4.势能 引力的功与弹力的功 引力势能与弹性势能 5.保守力做功与势能的关系 6.机械能守恒定律 7.完全弹性碰撞 题1 题目描述 题解 题2 题目描述 题解 1.力做功 物体在力作用下移动做功…...

这两个小众的资源搜索工具其实很好用
01 小不点搜索是一个中国网络技术公司开发的网盘搜索引擎,该网站通过与多个主流网盘进行整合,为用户提供一种快速查找和下载文件的方式。小不点搜索因其高效性、便利性和实用性受到了广大用户的喜爱。 在技术实现上,小不点搜索拥有先进的搜…...

Java设计模式(六)— 单例模式1
系列文章目录 单例模式介绍 单例模式之静态常量饿汉式 单例模式之静态代码饿汉式 单例模式之线程不安全懒汉式 文章目录 系列文章目录前言一、单例设计模式介绍二、单例设计模式八种方式三、单例—静态常量饿汉式1.静态常量饿汉式介绍2.静态常量饿汉式案例3.静态常量饿汉式优缺…...

iOS -- isa指针
isa指针:isa指针是一个指向对象所属类或元类的指针。它决定了对象可以调用的方法和属性。isa指针在对象的结构中存在,并且在运行时会被自动设置。isa 指针,表示这个对象是一个什么类。而 Class 类型, 也就是 struct objc_class * …...

【SA8295P 源码分析】14 - Passthrough配置文件 /mnt/vm/images/linux-la.config 内容分析
系列文章汇总见:《【SA8295P 源码分析】00 - 系列文章链接汇总》 本文链接:《【SA8295P 源码分析】14 - Passthrough配置文件 /mnt/vm/images/linux-la.config 内容分析》 透传配置文件位于:qnx.git\apps\qnx_ap\target\hypervisor\gvm\ivi\la\linux-la.config 它是在QNX Ho…...

新型糖基化氨基酸:Fmoc-Thr((Ac4Galβ1-3)Me,Ac4Neu5Acα2-6AcGalNAcα)-OH,化学CAS号174783-92-7
●英文名:Fmoc-Thr((Ac4Galβ1-3)Me,Ac4Neu5Acα2-6AcGalNAcα)-OH ●外观以及性质: Fmoc-Thr((Ac4Galβ1-3)Me,Ac4Neu5Acα2-6AcGalNAcα)-OH中通过对蛋白进行复杂蛋白糖基化修饰,细胞产生了极大丰度的蛋白质类型;通过对各类糖基…...

网络安全(黑客)怎么自学?
最近看到很多问题,都是小白想要转行网络安全行业咨询学习路线和学习资料的,作为一个培训机构,学习路线和免费学习资料肯定是很多的。机构里面的不是顶级的黑阔大佬就是正在学习的同学,也用不上这些内容,每天都在某云盘…...

Vue学习 之 MacOS 安装 webpack
Vue学习 之 MacOS 安装 webpack webpack 简介 Webpack 是一个非常流行的前端构建工具,它可以将多个模块(包括CSS、JavaScript、图片等)打包成一个或多个静态资源文件(bundle),以便用于部署到生产环境。We…...

媒介易教你海外品牌推广:如何选择适合的新闻通稿发布平台?
在进行海外品牌推广时,选择合适的海外新闻通稿发布第三方平台是提高品牌曝光度和影响力的重要一环。这些平台可以帮助企业将新闻内容传播到全球范围内的媒体和受众,为品牌推广提供更广阔的机会。然而,选择合适的发布平台并不容易,…...

网络安全的学习路线是怎么样的?
最近看到网上有很多人在问诸如:“怎样成为网络安全工程师”等相关问题,这可能与近几年网络安全事件频发,国家对于互联网信息安全和互联网舆情的重视程度不断提升有关,网络信息安全工程师随之成为炙手可热的职业。关于职业前景的详…...

QT学习07:五种按钮控件
文章首发于我的个人博客:欢迎大佬们来逛逛 文章目录 抽象类:QAbstractButtonQPushButtonQToolButtonQCommandLinkButtonQRadioButtonQCheckBoxQButtonGroup 抽象类:QAbstractButton 是所有按钮类的祖先。 QAbstractButton的信号:…...

chatgpt赋能python:Python如何截图运行结果
Python如何截图运行结果 介绍 Python是一种高级编程语言,非常流行。它具有许多有用的功能和库,使其成为许多开发人员的首选编程语言之一。但是,当您运行Python程序并需要与他人共享结果时,您可能需要截图运行结果。在本文中&…...

Baumer工业相机堡盟工业相机如何通过BGAPISDK使用JPEG图像压缩功能(C#)
Baumer工业相机堡盟工业相机如何通过BGAPISDK使用JPEG图像压缩功能(C#) Baumer工业相机Baumer工业相机BGAPISDK和JPEG图像压缩功能的技术背景Baumer工业相机通过BGAPISDK使用JPEG图像压缩功能1.引用合适的类文件2.使用BGAPISDK设置堡盟相机JPEG图像压缩模…...