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

K8s 安装部署-Master和Minion(Node)

K8s 安装部署-Master和Minion(Node)

操作系统版本:CentOS 7.4

Master :172.20.26.167

Minion-1:172.20.26.198

Minion-2:172.20.26.210(后增加节点)

ETCD:172.20.27.218

先安装部署ETCD

yum install etcd -y

cd /etc/etcd/

cp etcd.conf etcd.conf.bak    #备份etcd.conf 文件

grep -aivE "#|^$" etcd.conf  #去掉#、空行的显示

[root@localhost etcd]# grep -aivE "#|^$" etcd.conf

ETCD_DATA_DIR="/var/lib/etcd/default.etcd"

ETCD_LISTEN_CLIENT_URLS="http://localhost:2379"

ETCD_NAME="default"

ETCD_ADVERTISE_CLIENT_URLS="http://localhost:2379"

vim etcd.conf

[root@localhost etcd]# mkdir -p /data/etcd/  #创建ETCD的数据目录

[root@localhost etcd]# id etcd    #看看ETCD用户

uid=997(etcd) gid=995(etcd) 组=995(etcd)

[root@localhost etcd]# chown -R etcd.etcd /data/etcd/   #对数据目录授权etcd用户和组

[root@localhost etcd]# ls -ld /data/etcd/   #查看数据目录权限

drwxr-xr-x. 2 etcd etcd 6 4月  17 13:32 /data/etcd/

启动ETCD 服务

systemctl start etcd.service

ps -ef |grep -aiE etcd

创建key

etcdctl  mk  /atomic.io/network/config '{"Network":"172.17.0.0/16"}'

安装部署Master

yum install kubernetes-master flannel -y

[root@bogon kubernetes]# vim apiserver

KUBE_API_ADDRESS="--insecure-bind-address=0.0.0.0"

KUBE_API_PORT="--port=8080"

KUBE_ETCD_SERVERS="--etcd-servers=http://172.20.26.218:2379"

KUBE_ADMISSION_CONTROL="--admission-control=NamespaceLifecycle,NamespaceExists,LimitRanger,SecurityContextDeny,ResourceQuota"

因为我们没有配置账号和密码,所以要把“ServiceAccount,”删除掉,否则会出问题

[root@bogon kubernetes]# vim config

KUBE_ALLOW_PRIV="--allow-privileged=true"

KUBE_MASTER="--master=http://172.20.26.167:8080"

[root@bogon kubernetes]# systemctl start kube-apiserver

[root@bogon kubernetes]# systemctl start kube-controller-manager

[root@bogon kubernetes]# systemctl start kube-scheduler

[root@bogon]#ps -ef | grep kube

 查看kube-apiserver、kube-controller-manager、kube-scheduler服务进程都起来了,到此Master 端部署完成。

也可以使用for I in 命令重新启动各个服务:

for  I  in  etcd  kube-apiserver  kube-controller-manager kube-scheduler;  do

systemctl restart  $I

systemctl enable  $I

systemctl status   $I

done

安装部署(Node)Minion端

yum install kubernetes-node docker flannel *rhsm* -y

[root@bogon ~]# cd /etc/kubernetes/

[root@bogon kubernetes]# vim config

KUBE_ALLOW_PRIV="--allow-privileged=true"  在web管理界面中,让勾选“以特权身份运行”生效

KUBE_MASTER="--master=http://172.20.26.167:8080"

 [root@bogon kubernetes]# vim kubelet

KUBELET_ADDRESS="--address=0.0.0.0"

KUBELET_HOSTNAME="--hostname-override=172.20.26.198"

KUBELET_API_SERVER="--api-servers=http://172.20.26.167:8080"

vim /etc/sysconfig/flanneld  #配置flannel网络

service flanneld start  #先启动flanneld服务

service docker start   #再启动docker 服务

在Master端也要配置flannel网络

[root@bogon ~]# vim /etc/sysconfig/flanneld 

service flanneld start  #启动flanneld服务

回到Minion端

启动kubelet、kube-proxy服务

[root@bogon ~]# service kubelet start

Redirecting to /bin/systemctl start kubelet.service

[root@bogon ~]# service kubelet restart

Redirecting to /bin/systemctl restart kubelet.service

[root@bogon ~]# service kube-proxy start

Redirecting to /bin/systemctl start kube-proxy.service

查看相关进程

[root@bogon ~]# ps -ef |grep kube

[root@bogon ~]# ps -ef |grep docker

[root@bogon ~]# ps -ef |grep flanneld

至此Minion端配置完成。

在Master端输入kubectl get nodes  验证是否成功?看到STATUS 的状态为Read 即可

[root@bogon ~]# kubectl get nodes

在Master端查看IP地址信息

在Minion端查看IP地址信息

在Master端查看FORWARD参数策略是否为ACEEPT(允许)?

[root@bogon ~]# iptables -t filter -L -n

Ping Minion端IP地址是通的

[root@bogon ~]# ping 172.17.60.1

[root@bogon ~]# ping 172.17.60.0

在Minion 端ping 172.17.34.0 看是否通

至此,Master和Minion端网络已打通。

在Minion端查看FORWARD 规则参数为DROP(丢弃)状态

需要将FORWARD 规则设置为ACCEPT(允许)状态

[root@bogon ~]# iptables -P FORWARD ACCEPT

[root@bogon ~]# iptables -t filter -L -n

K8S集群搭建完成。

创建K8S的web 管理界面

Minion导入两个镜像文件:pod-infrastructure、kubernetes-dashboard-amd64

这两个镜像文件直接从网络上下载可能会超时,导致导入失败,所以可以先从本地上传后进行导入。

Docker镜像导入指令如下:

docker load <pod-infrastructure.tgz,将导入的pod镜像名称修改,命令如下:

docker tag $(docker images|grep none|awk '{print $3}') registry.access.redhat.com/rhel7/pod-infrastructure

docker load <kubernetes-dashboard-amd64.tgz,将导入的pod镜像名称修改,命令如下:

docker tag $(docker images|grep none|awk '{print $3}') bestwu/kubernetes-dashboard-amd64:v1.6.3

然后在Master端,上传两个yaml文件:dashboard-controller.yaml、dashboard-service.yaml

在Master 端创建k8s目录,将dashboard-controller.yaml、dashboard-service.yaml 移动到k8s目录下

然后修改一下dashboard-controller.yaml文件里的api地址

[root@bogon k8s]# vim dashboard-controller.yaml

保存退出

创建dashboard dashborad pods模块

kubectl create -f dashboard-controller.yaml

kubectl create -f dashboard-service.yaml

[root@bogon k8s]# kubectl get pods -n kube-system

看到STATUS状态为Running ,表示web界面配置成功。

通过浏览器访问Master端IP地址的8080端口

http://172.20.26.167:8080

在http://172.20.26.167:8080后面加上ui 即可访问k8s的web界面

http://172.20.26.167:8080/ui

制作centOS7镜像,先上传一个centos7-ansible镜像包,使用Dockerfile 文件制作镜像

vim Dockerfile

mkdir -p /Docker

将Dockerfile 文件移动到/Docker目录下

mv Dockerfile /Docker/

cd /Docker

docker build -t centos7-ssh:v1 .

在k8s管理界面,点击“创建”,新建一个名称为centos7容器,容器镜像:centos7-ssh:v1,显示高级选项,勾选“以特权身份运行”,点击“部署”

Centos7容器创建完成,点击“容器组”里的“centos7-3728401273-pzr09”新建容器名,

也可以点击右上角的“运行命令“按钮,进入命令行界面

也可以通过Minion端通过ssh 连接进入这个容器

创建部署nginx容器

可以对nginx容器进行扩容多个

再增加Node(Minion)节点

yum install kubernetes-node docker flannel* *rhsm* -y

[root@bogon ~]# cd /etc/kubernetes/

编辑

[root@bogon kubernetes]# vim config

KUBE_ALLOW_PRIV="--allow-privileged=true"  在web管理界面中,让勾选“以特权身份运行”生效

KUBE_MASTER="--master=http://172.20.26.167:8080"

[root@bogon kubernetes]# vim kubelet

KUBELET_ADDRESS="--address=0.0.0.0"

KUBELET_HOSTNAME="--hostname-override=172.20.26.210"

KUBELET_API_SERVER="--api-servers=http://172.20.26.167:8080"

[root@bogon /]# vim /etc/sysconfig/flanneld   配置flannel网络

FLANNEL_ETCD_ENDPOINTS="http://172.20.218:2379"

service flanneld start  先启动flanneld服务

flanneld服务无法启动,报错

将Minion端系统重启一下,

再执行service flanneld start  启动flanneld服务

service docker start  #再启动docker 服务

启动kubelet、kube-proxy服务

[root@bogon ~]# service kubelet start

Redirecting to /bin/systemctl start kubelet.service

[root@bogon ~]# service kubelet restart

Redirecting to /bin/systemctl restart kubelet.service

[root@bogon ~]# service kube-proxy start

Redirecting to /bin/systemctl start kube-proxy.service

也可以用for I in命令启动服务

for  I  in  kube-proxy  kubelet  flanneld docker

do

systemctl  restart  $I

systemctl  enable  $I

done

service iptables stop;iptables -P FORWARD ACCEPT

查看相关进程

[root@bogon ~]# ps -ef |grep kube

[root@bogon ~]# ps -ef |grep docker

[root@bogon ~]# ps -ef |grep flanneld

至此新增加的Node(Minion)节点配置完成。

在Master端输入kubectl get nodes  验证是否成功?看到STATUS 的状态为Read 即可

[root@bogon ~]# kubectl get nodes

回到k8s 管理界面,查看节点情况,172.20.26.210节点成功增加

创建K8S的web 管理界面

因没有创建本地仓库,所以需要Minion再导入pod-infrastructure、kubernetes-dashboard-amd64两个镜像文件。如果已创建好本地仓库,在第一次部署Minion节点时,将pod-infrastructure、kubernetes-dashboard-amd64镜像上传到本地仓库即可。

这两个镜像文件直接从网络上下载可能会超时,导致导入失败,所以可以先从本地上传后进行导入。

Docker镜像导入指令如下:

docker load <pod-infrastructure.tgz,将导入的pod镜像名称修改,命令如下:

docker tag $(docker images|grep none|awk '{print $3}') registry.access.redhat.com/rhel7/pod-infrastructure

docker load <kubernetes-dashboard-amd64.tgz,将导入的pod镜像名称修改,命令如下:

docker tag $(docker images|grep none|awk '{print $3}') bestwu/kubernetes-dashboard-amd64:v1.6.3

回到k8s管理界面,查看节点数量

新部署tomcat容器,数量为2,将会在两个节点中分别创建1台tomcat容器。

由于是在网上下载tomcat 镜像,需要等待时间较长,最后完成情况如下

在master控制端查看所有云主机的IP 地址

[root@bogon ~]# kubectl get -n default pods -o wide

[root@bogon ~]# kubectl get -n default pods -o wide|awk '{print $1,$6}'|awk -F"-" 'NR>1 {print $1,$NF}'|awk '{print $1,$NF}'

可以通过宿主机重启容器

[root@bogon ~]# docker ps |grep tomcat   查看tomcat容器ID

[root@bogon ~]# docker restart 574bf1497167    重启tomcat容器

重启,数据不会丢失

如果是删除云主机,会自动产生一台云主机,但是数据丢失

创建本地私有仓库

在172.20.26.198上创建本地私有仓库

docker pull docker.io/registry

mkdir -p  /data/registry/

docker run -itd  -p  5000:5000 -v /data/registry:/var/lib/registry  docker.io/registry

[root@bogon ~]# vim /etc/docker/daemon.json

"insecure-registries":["172.20.26.198:5000"]

[root@bogon ~]# service docker restart

[root@bogon ~]# ps -ef |grep 5000   查看5000端口状态

Docker images 查看一下镜像信息

对centos7-ssh镜像修改tag号

[root@bogon ~]# docker tag 5a97f88791d1 172.20.26.198:5000/centos7-ssh:v1

将修改好tag号的centos7-ssh镜像上传到本地仓库中

docker push 172.20.26.198:5000/centos7-ssh:v1

[root@bogon ~]# docker ps -a   查看docker 容器情况docker.io/registry

[root@bogon ~]# docker start bf5bd542fba4  启动docker.io/registry

[root@bogon ~]# ps -ef |grep 5000  查看5000端口情况

[root@bogon ~]# docker push 172.20.26.198:5000/centos7-ssh:v1  再次上传镜像到本地仓库

上传成功

上传一个nginx镜像到本地仓库

[root@bogon Docker]# vim Dockerfile_nginx    编写安装nginx的Dockerfile文件

[root@bogon Docker]# docker build -t centos7-nginx:v1 - < Dockerfile_nginx

[root@bogon ~]# docker images

[root@bogon ~]# docker tag 0672328a3122 172.20.26.198:5000/centos7-nginx:v1 修改tag号

[root@bogon ~]# docker push 172.20.26.198:5000/centos7-nginx:v1  上传nginx镜像到本地仓库

[root@bogon ~]# docker ps | grep 5000

查看本地私有仓库里的镜像

ls -l /data/registry/docker/registry/v2/repositories/

添加2个nginx“外部”服务的容器,使用本地私有仓库

Failed to pull image "172.20.26.198:5000/nginx:latest": Get https://172.20.26.198:5000/v1/_ping: http: server gave HTTP response to HTTPS client

Error syncing pod, skipping: failed to "StartContainer" for "nginx" with ErrImagePull: "Get https://172.20.26.198:5000/v1/_ping: http: server gave HTTP response to HTTPS client"

以上错误原因是在172.20.26.210节点上daemon.json文件里要指定本地私有仓库的地址,

vim /etc/docker/daemon.json

执行以下命令,重启相关服务

for  I  in  kube-proxy  kubelet  flanneld docker

do

systemctl  restart  $I

systemctl  enable  $I

done

service iptables stop;iptables -P FORWARD ACCEPT

回到k8sweb界面,查看错误状态是否已消失

故障问题:

用Dockerfile 做了个镜像,改了tag号,push 到本地仓库,提示连接被拒绝

解决:

docker run -itd  -p  5000:5000 -v /data/registry:/var/lib/registry  docker.io/registry

docker ps

docker push 172.20.26.198:5000/centos7-nginx:v2

创建部署外部nginx主机

故障问题:

故障问题

Master、Minion端排查解决:

Master端:

1、ps -ef | grep kube 查看kube-apiserver、kube-controller-manager、kube-scheduler服务

2、 ps -ef |grep flanneld  查看flanneld的状态

3、ifconfig 查看网卡地址情况(是否有flannel0地址)

Minion端:

1、ps -ef |grep kube 查看kubelet、kube-proxy服务

2、ps -ef |grep docker  查看Docker状态

3、 ps -ef |grep flanneld 查看flanneld的状态

4、iptables -t filter -L -n  查看是否是Chain FORWARD (policy ACCEPT)状态,如不是,执行iptables -P FORWARD ACCEPT命令

相关文章:

K8s 安装部署-Master和Minion(Node)

K8s 安装部署-Master和Minion(Node) 操作系统版本&#xff1a;CentOS 7.4 Master &#xff1a;172.20.26.167 Minion-1&#xff1a;172.20.26.198 Minion-2&#xff1a;172.20.26.210&#xff08;后增加节点&#xff09; ETCD&#xff1a;172.20.27.218 先安装部署ETCD y…...

从零学习Linux操作系统 第二十部分 mariadb数据库的管理

一、对于数据库的基本介绍 1.什么是数据库 数据库就是个高级的表格软件 2.常见数据库 Mysql Oracle mongodb db2 sqlite sqlserver … 3.Mysql (SUN -----> Oracle) 4.mariadb (Mysql的一种&#xff09; 数据库中的常用名词 1.字段 &#xff1a;表格中的表头 2.表 &…...

数据脱敏和数据加密有什么区别

数据脱敏&#xff1a;主要是为了兼顾数据安全与数据使用&#xff0c;采用专业的数据脱敏算法。 数据加密:通过对数据进行编码来保护数据&#xff0c;获取实际值的唯一方法是使用解密密钥解码数据。 数据加密是可逆的&#xff0c;数据脱敏是不可逆的。 处理方法不同 保护内容…...

主流排序算法

冒泡排序&#xff08;Bubble Sort&#xff09;&#xff1a; 基本思想&#xff1a;通过比较相邻元素的大小&#xff0c;不断交换相邻元素的位置&#xff0c;使得较大的元素逐渐“浮”到数组的最后。时间复杂度&#xff1a;O(n^2)。 选择排序&#xff08;Selection Sort&#xf…...

MySql的使用方法

一.什么是MySql MySql是一种数据库管理系统&#xff0c;是用来存储数据的&#xff0c;可以有效的管理数据&#xff0c;数据库的存储介质为硬盘和内存。 和文件相比&#xff0c;它具有以下优点&#xff1a; 文件存储数据是不安全的&#xff0c;且不方便数据的查找和管理&#xf…...

C#,数据检索算法之三元搜索(Ternary Search)的源代码

数据检索算法是指从数据集合&#xff08;数组、表、哈希表等&#xff09;中检索指定的数据项。 数据检索算法是所有算法的基础算法之一。 本文发布 三元搜索&#xff08;Ternary Search&#xff09;的源代码。 1 文本格式 using System; namespace Legalsoft.Truffer.Algo…...

windbg:常用指令

windbg 调试 参考文档 1、viewing-and-editing-global-variables-in-windbg WinDBG 常用调试命令 加载符号 .sympath // 查看当前符号查找路径 .sympath c:\symbols // 将符号查找路径设为&#xff1a;c:\symbols .sympath c:\symbols // 将c:\symbols添加…...

23. 集合类

集合 1. 概述2. 分类2.1 单列集合&#xff08;Collection&#xff09;2.2 双列集合&#xff08;Map&#xff09; 单列集合 Collection、List、Set、ArrayList、LinkedList’、Vector、HashSet、TreeSet、LinkedHashSet双列集合 Map、HashTable、HashMap、TreeMap、Properties、…...

OpenAI平台:引领人工智能的创新与应用

在当今迅速发展的技术世界中&#xff0c;OpenAI已成为人工智能&#xff08;AI&#xff09;研究和应用的先驱。作为一个致力于确保人工智能的安全和广泛受益的组织&#xff0c;OpenAI通过其平台提供了一系列强大的工具和API&#xff0c;这些工具和API正在重塑我们与技术的互动方…...

redis原理(五)Lua语言

一、介绍&#xff1a; 1、背景&#xff1a; 在 Redis 的 2.6 以上版本中&#xff0c;除了可以使用命令外&#xff0c;还可以使用 Lua 语言操作 Redis。 Redis 命令的计算能力并不算很强大&#xff0c;而使用 Lua 语言则在很大程度上弥补了 Redis 的这个不足。 2、特点&#…...

SOHO外贸怎么建网站?做海洋建站的步骤?

SOHO外贸如何做跨境独立站&#xff1f;搭建外贸自建站的策略&#xff1f; 一位成功的SOHO外贸从业者不仅需要精湛的贸易技能&#xff0c;还需要一个优质的网站来展示产品、与客户互动&#xff0c;并建立强大的在线品牌形象。海洋建站将探讨在SOHO外贸领域如何建立一个成功的网…...

[论文阅读] |RAG评估_Retrieval-Augmented Generation Benchmark

写在前面 检索增强能够有效缓解大模型存在幻觉和知识时效性不足的问题&#xff0c;RAG通常包括文本切分、向量化入库、检索召回和答案生成等基本步骤。近期组里正在探索如何对RAG完整链路进行评估&#xff0c;辅助阶段性优化工作。上周先对评估综述进行了初步的扫描&#xff0…...

【Linux】动态库和静态库——动态库和静态库的打包和使用、gcc编译、拷贝到系统默认的路径、建立软连接

文章目录 动态库和静态库1.静态库和动态库的介绍2.静态库的打包和使用2.1生成静态库2.2使用静态库的三种方式2.2.1gcc编译2.2.2拷贝到系统默认的路径2.2.3建立软连接 3.动态库的打包和使用3.1生成动态库3.2使用动态库3.3解决加载不到动态库的方法 动态库和静态库 1.静态库和动…...

【Redis】Redis有哪些适合的场景

&#x1f34e;个人博客&#xff1a;个人主页 &#x1f3c6;个人专栏&#xff1a;Redis ⛳️ 功不唐捐&#xff0c;玉汝于成 目录 前言 正文 &#xff08;1&#xff09;会话缓存&#xff08;Session Cache&#xff09; &#xff08;2&#xff09;全页缓存&#xff08;FPC…...

uniapp上传音频文件到服务器

视频教程地址&#xff1a; 【uniapp录音上传组件&#xff0c;将录音上传到django服务器】 https://www.bilibili.com/video/BV1wi4y1p7FL/?share_sourcecopy_web&vd_sourcee66c0e33402a09ca7ae1f0ed3d5ecf7c uniapp 录制音频文件上传到django服务器保存到服务器 &#xf…...

C#-正则表达式

1.C#功能点&#xff1a; 验证格式&#xff1a;通过正则表达式&#xff0c;我们可以检查一个字符串是否符合特定的格式要求&#xff0c;例如验证邮箱、电话号码、身份证号码等。 查找和提取&#xff1a;我们可以使用正则表达式来查找字符串中符合特定模式的部分&#xff0c;并将…...

【word】论文、报告:①插入图表题注,交叉引用②快速插入图表目录③删改后一键更新

【word】①插入图表题注&#xff0c;②删改后一键更新 写在最前面插入题注交叉引用修改插入题注的文字格式快速插入图表目录 插入题注后有删改&#xff0c;实现编号一键更新 &#x1f308;你好呀&#xff01;我是 是Yu欸 &#x1f30c; 2024每日百字篆刻时光&#xff0c;感谢你…...

Spring Security 的TokenStore三种实现方式

博主介绍&#xff1a;✌专注于前后端领域开发的优质创作者、秉着互联网精神开源贡献精神&#xff0c;答疑解惑、坚持优质作品共享。本人是掘金/腾讯云/阿里云等平台优质作者、擅长前后端项目开发和毕业项目实战&#xff0c;深受全网粉丝喜爱与支持✌有需要可以联系作者我哦&…...

微信小程序 图片自适应高度 宽度 完美适配原生或者uniapp

-- - - - 查了一下百度看到网上图片高度自适应的解决方案 基本是靠JS获取图片的宽度进行按比例计算得出图片高度。 不是很符合我的需求/ 于是我脑瓜子一转 想到一种新的解决方案 不用JS计算也能完美解决。 我写了一个组件&#xff0c;直接导入可以使用。 - - - 1.新…...

Go语言基础之反射

1.变量的内在机制 Go语言中的变量是分为两部分的: 类型信息&#xff1a;预先定义好的元信息。值信息&#xff1a;程序运行过程中可动态变化的。 2.反射介绍 反射是指在程序运行期间对程序本身进行访问和修改的能力。程序在编译时&#xff0c;变量被转换为内存地址&#xff…...

地震勘探——干扰波识别、井中地震时距曲线特点

目录 干扰波识别反射波地震勘探的干扰波 井中地震时距曲线特点 干扰波识别 有效波&#xff1a;可以用来解决所提出的地质任务的波&#xff1b;干扰波&#xff1a;所有妨碍辨认、追踪有效波的其他波。 地震勘探中&#xff0c;有效波和干扰波是相对的。例如&#xff0c;在反射波…...

安宝特方案丨XRSOP人员作业标准化管理平台:AR智慧点检验收套件

在选煤厂、化工厂、钢铁厂等过程生产型企业&#xff0c;其生产设备的运行效率和非计划停机对工业制造效益有较大影响。 随着企业自动化和智能化建设的推进&#xff0c;需提前预防假检、错检、漏检&#xff0c;推动智慧生产运维系统数据的流动和现场赋能应用。同时&#xff0c;…...

高频面试之3Zookeeper

高频面试之3Zookeeper 文章目录 高频面试之3Zookeeper3.1 常用命令3.2 选举机制3.3 Zookeeper符合法则中哪两个&#xff1f;3.4 Zookeeper脑裂3.5 Zookeeper用来干嘛了 3.1 常用命令 ls、get、create、delete、deleteall3.2 选举机制 半数机制&#xff08;过半机制&#xff0…...

使用 SymPy 进行向量和矩阵的高级操作

在科学计算和工程领域&#xff0c;向量和矩阵操作是解决问题的核心技能之一。Python 的 SymPy 库提供了强大的符号计算功能&#xff0c;能够高效地处理向量和矩阵的各种操作。本文将深入探讨如何使用 SymPy 进行向量和矩阵的创建、合并以及维度拓展等操作&#xff0c;并通过具体…...

Linux 中如何提取压缩文件 ?

Linux 是一种流行的开源操作系统&#xff0c;它提供了许多工具来管理、压缩和解压缩文件。压缩文件有助于节省存储空间&#xff0c;使数据传输更快。本指南将向您展示如何在 Linux 中提取不同类型的压缩文件。 1. Unpacking ZIP Files ZIP 文件是非常常见的&#xff0c;要在 …...

人工智能--安全大模型训练计划:基于Fine-tuning + LLM Agent

安全大模型训练计划&#xff1a;基于Fine-tuning LLM Agent 1. 构建高质量安全数据集 目标&#xff1a;为安全大模型创建高质量、去偏、符合伦理的训练数据集&#xff0c;涵盖安全相关任务&#xff08;如有害内容检测、隐私保护、道德推理等&#xff09;。 1.1 数据收集 描…...

从物理机到云原生:全面解析计算虚拟化技术的演进与应用

前言&#xff1a;我的虚拟化技术探索之旅 我最早接触"虚拟机"的概念是从Java开始的——JVM&#xff08;Java Virtual Machine&#xff09;让"一次编写&#xff0c;到处运行"成为可能。这个软件层面的虚拟化让我着迷&#xff0c;但直到后来接触VMware和Doc…...

绕过 Xcode?使用 Appuploader和主流工具实现 iOS 上架自动化

iOS 应用的发布流程一直是开发链路中最“苹果味”的环节&#xff1a;强依赖 Xcode、必须使用 macOS、各种证书和描述文件配置……对很多跨平台开发者来说&#xff0c;这一套流程并不友好。 特别是当你的项目主要在 Windows 或 Linux 下开发&#xff08;例如 Flutter、React Na…...

电脑桌面太单调,用Python写一个桌面小宠物应用。

下面是一个使用Python创建的简单桌面小宠物应用。这个小宠物会在桌面上游荡&#xff0c;可以响应鼠标点击&#xff0c;并且有简单的动画效果。 import tkinter as tk import random import time from PIL import Image, ImageTk import os import sysclass DesktopPet:def __i…...

【Ftrace 专栏】Ftrace 参考博文

ftrace、perf、bcc、bpftrace、ply、simple_perf的使用Ftrace 基本用法Linux 利用 ftrace 分析内核调用如何利用ftrace精确跟踪特定进程调度信息使用 ftrace 进行追踪延迟Linux-培训笔记-ftracehttps://www.kernel.org/doc/html/v4.18/trace/events.htmlhttps://blog.csdn.net/…...