Kubernetes-Kind篇-01-kind搭建测试集群
1、Kind 介绍
官方文档地址:https://kind.sigs.k8s.io/
github仓库地址:https://github.com/kubernetes-sigs/kind
国内镜像仓库地址:https://gitcode.com/gh_mirrors/ki/kind/overview
kind 是一种使用 Docker 容器 nodes 运行本地 Kubernetes 集群的工具。 kind 主要是为了测试 Kubernetes 自身而设计的,但它也可用于本地开发或 CI。
k8s集群的组成比较复杂,如果纯手工部署的话易出错且时间成本高。比如我曾在pvc和vmware平台上进行过集群的搭建,创建虚拟机本身就需要一定的时间成本。
而本文介绍的Kind工具,能够快速的建立起可用的k8s集群,降低初学者的学习门槛。
Kind是Kubernetes In Docker的缩写,顾名思义,看起来是把k8s放到docker的意思。没错,kind创建k8s集群的基本原理就是:提前准备好k8s节点的镜像,通过docker启动容器,来模拟k8s的节点,从而组成完整的k8s集群。需要注意,kind创建的集群仅可用于开发、学习、测试等,不能用于生产环境。
1.2 Kind 功能
- 快速创建集群:通过简单的命令行操作,快速创建单节点或多节点的Kubernetes集群。
- 多版本支持:可以创建不同版本的Kubernetes集群,便于测试应用在新旧版本Kubernetes上的兼容性。
- 集群配置:支持通过配置文件自定义集群的各种参数,包括节点数量、镜像、网络插件等。
- 节点管理:可以方便地查看和管理集群中的各个节点,包括添加、删除节点等操作。
- 集成开发环境:适用于本地开发,可直接在集群中部署和调试应用,快速迭代。
- CI/CD集成:由于其轻量级和标准化的特点,非常适合集成到持续集成/持续部署流程中,自动化测试Kubernetes应用。
1.3 Kind 优点
- 简易安装和配置:kind极大地简化了Kubernetes集群的搭建过程,只需要Docker环境即可快速启动一个Kubernetes集群,无需额外的虚拟机或复杂的配置。
- 轻量级:由于是在Docker容器中运行,kind消耗的系统资源相对较少,适合在开发机器上运行,便于进行本地开发和测试。
- 灵活性:用户可以自定义集群配置,包括使用的Kubernetes版本、集群的网络插件、额外的容器运行时配置等,满足不同的测试和开发需求。
- 集成测试:对于CI/CD流程而言,kind提供了标准化的Kubernetes环境,有助于进行集成测试和验证应用在不同Kubernetes版本下的兼容性。
- 可扩展性:kind支持自定义集群配置文件,方便集成其他工具和服务,如Prometheus监控、Istio服务网格等,进行更复杂的测试和实验。
1.4、Kind 缺点
- 性能限制:虽然kind适合开发和测试,但由于所有的节点都在同一个宿主机上运行,受制于宿主机资源,可能无法模拟生产环境的性能特征,也不适合高负载测试。
- 网络复杂性:虽然kind支持多种网络插件,但与物理或VM-based集群相比,其网络行为可能有所不同,可能会影响到一些对网络有特定要求的应用的测试。
- 资源隔离限制:因为所有组件运行在相同的宿主机上,资源隔离不如使用虚拟机的解决方案彻底,可能会出现容器间资源竞争的情况。
1.5、Kind 工作原理
Kind 使用容器来模拟每一个 Kubernetes 节点,并在容器里面运行 Systemd 。
容器里的 Systemd 托管了 Kubelet 和 Containerd ,然后容器内部的 Kubelet 把其它 Kubernetes 组件: Kube-Apiserver 、 Etcd 、 CNI 等等组件运行起来。
Kind 内部使用了 Kubeadm 这个工具来做集群的部署,包括高可用集群也是借助 Kubeadm 提供的特性来完成的。在高用集群下还会额外部署了一个 Nginx 来提供负载均衡 VIP。
2、Kind 使用
2.1 支持的指令
kind
kind creates and manages local Kubernetes clusters using Docker container 'nodes'Usage:kind [command]Available Commands:build Build one of [node-image]completion Output shell completion code for the specified shell (bash, zsh or fish)create Creates one of [cluster]delete Deletes one of [cluster]export Exports one of [kubeconfig, logs]get Gets one of [clusters, nodes, kubeconfig]help Help about any commandload Loads images into nodesversion Prints the kind CLI versionFlags:-h, --help help for kind--loglevel string DEPRECATED: see -v instead-q, --quiet silence all stderr output-v, --verbosity int32 info log verbosity, higher value produces more output--version version for kindUse "kind [command] --help" for more information about a command.
简单说下几个比较常用选项的含义:
- build:用来从 Kubernetes 源代码构建一个新的镜像。
- create:创建一个 Kubernetes 集群。
- delete:删除一个 Kubernetes 集群。
- get:可用来查看当前集群、节点信息以及 Kubectl 配置文件的地址。
- load:从宿主机向 Kubernetes 节点内导入镜像。
kind创建的集群也是使用kubectl老进行客户端安装的,因此需要先进行该工具的安装,可以直接执行命令进行安装:
sudo snap install kubectl --classic
2.2 新建k8s集群
先看一下目前本地的docker 镜像和容器信息:
~/workspace/king-devops git:[master]
sudo docker ps -a
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES~/workspace/king-devops git:[master]
sudo docker image ls
REPOSITORY TAG IMAGE ID CREATED SIZE
本地是一个新的开发环境,所有很干净,如果需要清理本地的docker环境的话,可以参考下面的shell:
# 删除容器,支持多个
docker rm containerId1 containerId2# 删除所有未使用的镜像
docker image prune -a
由于dockerhub被墙,这里找到一个国内的源:https://docker.aityp.com/image/docker.io/kindest/node:v1.31.0
先docker 拉取该源,并修改tag:
sudo docker pull m.daocloud.io/docker.io/kindest/node:v1.31.0sudo docker tag m.daocloud.io/docker.io/kindest/node:v1.31.0 docker.io/kindest/node:v1.31.0sudo docker rmi m.daocloud.io/docker.io/kindest/node:v1.31.0
结果:
sudo docker image ls
REPOSITORY TAG IMAGE ID CREATED SIZE
kindest/node v1.31.0 b5cb8c3b1441 7 weeks ago 1.03GB
2.2.1 创建一个简单的k8s集群
命令:
命令:
sudo kind create cluster --name myk8s-test --image kindest/node:v1.31.0 --retain; sudo kind export logs --name myk8s-test
参数解释:
- –image可以执行指定不同版本的镜像
- –name可以指定集群名
结果:
sudo kind create cluster --name myk8s-test --image kindest/node:v1.31.0 --retain; sudo kind export logs --name myk8s-test
Creating cluster "myk8s-test" ...✓ Ensuring node image (kindest/node:v1.31.0) 🖼✓ Preparing nodes 📦 ✓ Writing configuration 📜 ✓ Starting control-plane 🕹️ ✓ Installing CNI 🔌 ✓ Installing StorageClass 💾
Set kubectl context to "kind-myk8s-test"
You can now use your cluster with:kubectl cluster-info --context kind-myk8s-testHave a nice day! 👋
Exporting logs for cluster "myk8s-test" to:
/tmp/972923639
查看通过kind创建的集群:
sudo kind get clusters
myk8s-test
已经成功创建了一个集群,并且集群名就是我们通过–name参数设置的。
查看容器信息:
sudo docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
8c764a962ab3 kindest/node:v1.31.0 "/usr/local/bin/entr…" 2 minutes ago Up 2 minutes 127.0.0.1:41625->6443/tcp myk8s-test-control-plane
新增了一个容器,并且
通过其容器名myk8s-test-control-plane,也可以与咱们创建的集群,对应上。
根据提示使用集群:
sudo kubectl cluster-info --context kind-myk8s-test
这里实际上是设置kubectl的上下文,后面直接试使用kubectl就可以访问该集群,效果与kubectl --kubeconfig=xxx
一样.
查看集群节点:
sudo kubectl get nodes
NAME STATUS ROLES AGE VERSION
myk8s-test-control-plane Ready control-plane 7m48s v1.31.0
查看集群全部的pod:
sudo kubectl get pods -A -owide
NAMESPACE NAME READY STATUS RESTARTS AGE IP NODE NOMINATED NODE READINESS GATES
kube-system coredns-6f6b679f8f-psnlz 1/1 Running 0 8m3s 10.244.0.2 myk8s-test-control-plane <none> <none>
kube-system coredns-6f6b679f8f-q5p5w 1/1 Running 0 8m3s 10.244.0.3 myk8s-test-control-plane <none> <none>
kube-system etcd-myk8s-test-control-plane 1/1 Running 0 8m11s 172.18.0.2 myk8s-test-control-plane <none> <none>
kube-system kindnet-vtcxf 1/1 Running 0 8m3s 172.18.0.2 myk8s-test-control-plane <none> <none>
kube-system kube-apiserver-myk8s-test-control-plane 1/1 Running 0 8m10s 172.18.0.2 myk8s-test-control-plane <none> <none>
kube-system kube-controller-manager-myk8s-test-control-plane 1/1 Running 0 8m10s 172.18.0.2 myk8s-test-control-plane <none> <none>
kube-system kube-proxy-2w5hj 1/1 Running 0 8m3s 172.18.0.2 myk8s-test-control-plane <none> <none>
kube-system kube-scheduler-myk8s-test-control-plane 1/1 Running 0 8m10s 172.18.0.2 myk8s-test-control-plane <none> <none>
local-path-storage local-path-provisioner-57c5987fd4-tjc2v 1/1 Running 0 8m3s 10.244.0.4 myk8s-test-control-plane <none> <none>
这里可以发现,该有的组件都有了。就是一个完整的master节点。
删除集群:
sudo kind delete cluster --name myk8s-test
2.2.2 创建一个一主二从的k8s集群
创建一个 test1.yaml 的文件,内容如下:
kind: Cluster
# 一共三个节点,一个主节点,两个从节点
apiVersion: kind.x-k8s.io/v1alpha4
nodes:
- role: control-plane # 主节点
- role: worker # 从节点
- role: worker # 从节点
执行命令创建文件并将内容保存:
echo 'kind: Cluster
# 一共三个节点,一个主节点,两个从节点
apiVersion: kind.x-k8s.io/v1alpha4
nodes:
- role: control-plane # 主节点
- role: worker # 从节点
- role: worker # 从节点' > test1.yaml
创建一主二从集群:
sudo kind create cluster --config=test1.yaml --name myk8s-test --image kindest/node:v1.31.0 --retain; sudo kind export logs --name myk8s-test
结果:
sudo kind create cluster --config=test1.yaml --name myk8s-test --image kindest/node:v1.31.0 --retain; sudo kind export logs --name myk8s-test
Creating cluster "myk8s-test" ...✓ Ensuring node image (kindest/node:v1.31.0) 🖼✓ Preparing nodes 📦 📦 📦 ✓ Writing configuration 📜 ✓ Starting control-plane 🕹️ ✓ Installing CNI 🔌 ✓ Installing StorageClass 💾 ✓ Joining worker nodes 🚜
Set kubectl context to "kind-myk8s-test"
You can now use your cluster with:kubectl cluster-info --context kind-myk8s-testHave a question, bug, or feature request? Let us know! https://kind.sigs.k8s.io/#community 🙂
Exporting logs for cluster "myk8s-test" to:
/tmp/1302378959
查看容器信息:
sudo docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
454b36b7bcb1 kindest/node:v1.31.0 "/usr/local/bin/entr…" 2 minutes ago Up 2 minutes myk8s-test-worker2
13f56b739d18 kindest/node:v1.31.0 "/usr/local/bin/entr…" 2 minutes ago Up 2 minutes 127.0.0.1:38485->6443/tcp myk8s-test-control-plane
a8c6155a6ada kindest/node:v1.31.0 "/usr/local/bin/entr…" 2 minutes ago Up 2 minutes myk8s-test-worker
使用该集群:
sudo kubectl cluster-info --context kind-myk8s-test
Kubernetes control plane is running at https://127.0.0.1:38485
CoreDNS is running at https://127.0.0.1:38485/api/v1/namespaces/kube-system/services/kube-dns:dns/proxyTo further debug and diagnose cluster problems, use 'kubectl cluster-info dump'.
查看节点信息:
sudo kubectl get nodes
NAME STATUS ROLES AGE VERSION
myk8s-test-control-plane Ready control-plane 3m21s v1.31.0
myk8s-test-worker Ready <none> 3m10s v1.31.0
myk8s-test-worker2 Ready <none> 3m10s v1.31.0
查看pod信息:
sudo kubectl get pods -A -owide
NAMESPACE NAME READY STATUS RESTARTS AGE IP NODE NOMINATED NODE READINESS GATES
kube-system coredns-6f6b679f8f-h42zh 1/1 Running 0 3m35s 10.244.0.2 myk8s-test-control-plane <none> <none>
kube-system coredns-6f6b679f8f-jt79q 1/1 Running 0 3m35s 10.244.0.3 myk8s-test-control-plane <none> <none>
kube-system etcd-myk8s-test-control-plane 1/1 Running 0 3m41s 172.18.0.4 myk8s-test-control-plane <none> <none>
kube-system kindnet-2mcxh 1/1 Running 0 3m35s 172.18.0.4 myk8s-test-control-plane <none> <none>
kube-system kindnet-54n6f 1/1 Running 0 3m32s 172.18.0.3 myk8s-test-worker2 <none> <none>
kube-system kindnet-vgvqd 1/1 Running 0 3m32s 172.18.0.2 myk8s-test-worker <none> <none>
kube-system kube-apiserver-myk8s-test-control-plane 1/1 Running 0 3m41s 172.18.0.4 myk8s-test-control-plane <none> <none>
kube-system kube-controller-manager-myk8s-test-control-plane 1/1 Running 0 3m41s 172.18.0.4 myk8s-test-control-plane <none> <none>
kube-system kube-proxy-nh7hg 1/1 Running 0 3m32s 172.18.0.2 myk8s-test-worker <none> <none>
kube-system kube-proxy-qftvw 1/1 Running 0 3m32s 172.18.0.3 myk8s-test-worker2 <none> <none>
kube-system kube-proxy-wkkt7 1/1 Running 0 3m35s 172.18.0.4 myk8s-test-control-plane <none> <none>
kube-system kube-scheduler-myk8s-test-control-plane 1/1 Running 0 3m41s 172.18.0.4 myk8s-test-control-plane <none> <none>
local-path-storage local-path-provisioner-57c5987fd4-nwtgv 1/1 Running 0 3m35s 10.244.0.4 myk8s-test-control-plane <none> <none>
删除集群:
sudo kind delete cluster --name myk8s-test
Deleting cluster "myk8s-test" ...
Deleted nodes: ["myk8s-test-worker2" "myk8s-test-control-plane" "myk8s-test-worker"]
2.2.3 创建一个高可用的k8s集群
创建一个 test2.yaml 的文件,一共六个节点,三个 control-plane 节点,三个 workers 节点,内容如下:
kind: Cluster
apiVersion: kind.x-k8s.io/v1alpha4
nodes:
- role: control-plane
- role: control-plane
- role: worker
- role: worker
- role: worker
执行命令创建文件并将内容保存:
echo 'kind: Cluster
apiVersion: kind.x-k8s.io/v1alpha4
nodes:
- role: control-plane
- role: control-plane
- role: worker
- role: worker
- role: worker' > test2.yaml
创建高可用集群:
sudo kind create cluster --config=test2.yaml --name myk8s-test --image kindest/node:v1.31.0 --retain; sudo kind export logs --name myk8s-test
结果:
sudo kind create cluster --config=test2.yaml --name myk8s-test --image kindest/node:v1.31.0 --retain; sudo kind export logs --name myk8s-test
Creating cluster "myk8s-test" ...✓ Ensuring node image (kindest/node:v1.31.0) 🖼✗ Preparing nodes 📦 📦 📦 📦 📦 📦
ERROR: failed to create cluster: command "docker run --name myk8s-test-external-load-balancer --hostname myk8s-test-external-load-balancer --label io.x-k8s.kind.role=external-load-balancer --detach --tty --label io.x-k8s.kind.cluster=myk8s-test --net kind --restart=on-failure:1 --init=false --cgroupns=private --publish=127.0.0.1:35199:6443/TCP docker.io/kindest/haproxy:v20230606-42a2262b" failed with error: exit status 125
Command Output: Unable to find image 'kindest/haproxy:v20230606-42a2262b' locally
docker: Error response from daemon: Get "https://registry-1.docker.io/v2/": context deadline exceeded (Client.Timeout exceeded while awaiting headers).
See 'docker run --help'.
Exporting logs for cluster "myk8s-test" to:
/tmp/2092938174
看报错是访问镜像kindest/haproxy:v20230606-42a2262b
时没有找到,我们还通过国内镜像仓库进行拉取:
sudo docker pull m.daocloud.io/docker.io/kindest/haproxy:v20230606-42a2262bsudo docker tag m.daocloud.io/docker.io/kindest/haproxy:v20230606-42a2262b docker.io/kindest/haproxy:v20230606-42a2262bsudo docker rmi m.daocloud.io/docker.io/kindest/haproxy:v20230606-42a2262b
确定下上面是否有创建出来集群,如果有,则先删除一下:
sudo kind get clusters
myk8s-test
sudo kind delete cluster --name myk8s-test
重新执行创建高可用集群的创建:
sudo kind create cluster --config=test2.yaml --name myk8s-test --image kindest/node:v1.31.0 --retain; sudo kind export logs --name myk8s-test
Creating cluster "myk8s-test" ...✓ Ensuring node image (kindest/node:v1.31.0) 🖼✓ Preparing nodes 📦 📦 📦 📦 📦 ✓ Configuring the external load balancer ⚖️ ✓ Writing configuration 📜 ✓ Starting control-plane 🕹️ ✓ Installing CNI 🔌 ✓ Installing StorageClass 💾 ✓ Joining more control-plane nodes 🎮 ✓ Joining worker nodes 🚜
Set kubectl context to "kind-myk8s-test"
You can now use your cluster with:kubectl cluster-info --context kind-myk8s-testHave a nice day! 👋
Exporting logs for cluster "myk8s-test" to:
/tmp/4229211329
备注:我在创建多master节点时,遇见了问题,我测试了下面的几个组合:
- 二主二从:失败
- 三主:成功
- 三主一从:失败
- 二主三从:成功
- 二主四从:失败
- 三主三从:失败
- 三主二从:失败
这里有官网的配置:
https://kind.sigs.k8s.io/docs/user/quick-start/#control-plane-ha
我最终调整为了二主三从的规格创建集群,这个应该是一些原因导致的创建失败。
因为同一份配置,在我的mac电脑上是完全ok的,顺利的创建三主三从的高可用集群。
一般的测试场景中,一主多从已经完全满足使用了,这里也不做过多深入考究了。
2.3 导出kind集群kubeconfig
sudo kind export kubeconfig --name=myk8s-test --kubeconfig=$HOME/.kube/config
相关文章:

Kubernetes-Kind篇-01-kind搭建测试集群
1、Kind 介绍 官方文档地址:https://kind.sigs.k8s.io/ github仓库地址:https://github.com/kubernetes-sigs/kind 国内镜像仓库地址:https://gitcode.com/gh_mirrors/ki/kind/overview kind 是一种使用 Docker 容器 nodes 运行本地 Kubern…...

在UniApp中高效处理大量文件请求的策略
在开发跨平台应用时,尤其是在使用UniApp这样的框架时,我们可能会遇到需要同时请求多个文件的情况。然而,不加节制地同时发起大量请求可能会带来严重的性能问题,如界面卡顿、内存溢出、网络带宽饱和等。本文将探讨如何在UniApp中高…...

docker compose入门4—常用命令
在使用 Docker Compose 管理多容器应用时,常见的命令帮助我们高效地管理容器的生命周期、服务、日志等。以下是一些常用的 Docker Compose 命令及其详细讲解: 1. docker-compose up 这个命令用于启动定义在 docker-compose.yml 文件中的服务。 用法&am…...

wps文本框文字居中对齐
直接点对齐里的水平居中,垂直居中是将文本框水平垂直居中,文字不会居中 将文本框里的文字居中: 垂直居中: 水平居中:...

注册信息页面
知识点: !+Enter 直接生成前端基本框架 1.<h1></h1> (2,3,4,5) 表示各级标题 2.<form></form> 表单建立 3.<input type" "></input> 表格(表单嵌套表格) type属…...

详解Java中的BIO、NIO、AIO
1、 详解Java中的BIO、AIO、NIO 1.1、引言 IO流是Java中比较难理解的一个知识点,但是IO流在实际的开发场景中经常会使用到,比如Dubbo底层就是NIO进行通讯。本文将介绍Java发展过程中出现的三种IO:BIO、NIO以及AIO,重点介绍NIO。…...

CAN和CANFD如何转换和通信
随着科技的发展,汽车电子和工业领域中CAN通信需要承载数据量也越来越大,传统CAN通信有了向CANFD通信过渡的倾向。在实现过渡的过程中可能会出现自己设备是CAN通信,客户设备是CANFD通信的情况,或者自己设备是CANFD通信,…...

QDateTimeEdit Class
Header:#include qmake:QT += widgets Inherits:QAbstractSpinBox Inherited By:QDateEdit and QTimeEdit Public Types enum Section {NoSection, AmPmSection, MSecSection, SecondSection, MinuteSection, …, YearSection } flags SectionsProperties calendarPopu…...

Windows环境安装CentOS7
【注意】安装CentOS需要先安装Vmware虚拟机 【下载前准备】 一、下载CentOS 7镜像文件阿里云镜像开源,点击跳转 二、安装VMware(17): a. 官网,点击跳转 b. 许可证:JU090-6039P-08409-8J0QH-2YR7F 安装V…...

用docker启动mysql步骤
以下是在 Docker 中启动 MySQL 的详细步骤: **一、拉取 MySQL 镜像 ** 1. 打开终端,确保 Docker 服务正在运行。可以使用以下命令检查 Docker 服务状态: sudo systemctl status docker 2. 使用以下命令拉取 MySQL 官方镜像: d…...

[Linux] Linux 初识进程地址空间 (进程地址空间第一弹)
标题:[Linux] Linux初识进程地址空间 个人主页水墨不写bug (图片来源于AI) 目录 一、什么是进程地址空间 二、为什么父子进程相同地址的变量的值不同 三、初识虚拟地址、页表 一、什么是进程地址空间 其实,在很久之前…...

力扣21~25题
21题(简单): 分析: 按要求照做就好了,这种链表基本操作适合用c写,python用起来真的很奇怪 python代码: # Definition for singly-linked list. # class ListNode: # def __init__(self, v…...

04. prometheus 监控 Windows 服务器
prometheus 监控 Windows 服务器 1. 下载安装 Windows_exporter 安装包下载:https://github.com/prometheus-community/windows_exporter/releases 下载 msi 版本,上传至要监控的 Windows 服务器,双击安装即可,exporter 会自动…...

【机器学习】——决策树以及随机森林
文章目录 1. 决策树的基本概念与结构1.1 决策树的构建过程 2. 决策树的划分标准2.1 信息增益(Information Gain)2.2 信息增益比(Information Gain Ratio)2.3 基尼指数(Gini Index)2.4 均方误差(…...

怎么选择合适的数据恢复软件?适用于 Windows 的数据恢复软件对比
针对 Windows 的领先数据恢复软件的全面回顾: 丢失重要数据对任何 Windows 用户来说都是一场噩梦。从意外删除到系统崩溃,数据丢失是一个非常普遍的问题。值得庆幸的是,有强大的数据恢复工具可以帮助找回丢失的文件。这篇评论深入探讨了适用于…...

CI/CD 和 DevOps 工具概述:Jenkins 、Docker 的概述、工作流程、对比
随着软件开发的复杂性不断增加,持续集成(CI)、持续交付(CD)和运维(Ops)的概念逐渐成为现代软件开发流程中的核心组成部分。这些概念促进了开发团队与运维团队之间的协作,提升了软件的…...

基于SpringBoot+Vue+uniapp的高校教务管理小程序系统设计和实现
2. 详细视频演示 文章底部名片,联系我获取更详细的演示视频 3. 论文参考 4. 项目运行截图 代码运行,效果展示图 代码运行,效果展示图 代码运行,效果展示图 代码运行,效果展示图 代码运行,效果展示图 5. 技…...

如何在 Ubuntu VPS 上从 Apache Web 服务器迁移到 Nginx
前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,忍不住分享一下给大家。点击跳转到网站。 简介 在启动网站或应用程序时,您需要做出许多选择。有时,您的需求会发生变化,新技术变得可行&#x…...

pikachu靶场总结(一)
最近看到好多人还在打这个靶机所以把以前写的总结放上来了,主要是皮卡丘靶场漏洞的原理,利用方式,防护方法简略总结,纯手敲记录,总结如果不到位请评论区留言! 一、暴力破解 1.基于表单的暴力破解 原理&a…...

No.2 笔记 | 网络安全攻防:PC、CS工具与移动应用分析
引言 在当今数字化时代,网络安全已成为每个人都应该关注的重要话题。本文将总结一次关于网络安全攻防技术的学习内容,涵盖PC端和移动端的恶意程序利用,以及强大的渗透测试工具Cobalt Strike的使用。通过学习这些内容,我们不仅能够了解攻击者的手法,更能提高自身的安全意识和防…...

QD1-P8 HTML格式化标签
本节学习:HTML 格式化标签。 本节视频 www.bilibili.com/video/BV1n64y1U7oj?p8 一、font 标签 用途:定义文本的字体大小、颜色和 face(字体类型)。 示例 <!DOCTYPE html> <html><head><meta cha…...

WordPress修改固定链接后301的重定向方法
网站改版实际上是很忌讳的,尤其是针对已被搜索引擎收录的网站,新站不用考虑这些问题,而已经收录的网站网页在不遵守搜索引擎规则的前提下,是会被降权,关键词排名下滑、流量IP会被剥夺、收录会减少 、业务成交量会急剧下…...

关于Allegro导出Gerber时的槽孔问题
注意点一: 如果设计的板子中有 槽孔和通孔(俗称圆孔),不仅要NC Drill, 还要 NC Route allegro导出的槽孔文件后缀是 .rou 圆型孔后缀 是 .drl ,出gerber时需要看下是否有该文件。 注意点二: 导出钻孔文件时,设置参…...

平时使用的正则总结
1、将某一个字符串的后缀名后面加上“!400_500” 使用场景是将minio拿过来的图片压缩尺寸从而压缩其大小,加快渲染的速度。需要在图片的后缀名后面加上尺寸如下: const str //storage-test.test.shiqiao.com/gateway/common/isopen/2024/10/09/e708e9…...

[万字解析]从零开始使用transformers微调huggingface格式的中文Bert模型的过程以及可能出现的问题
系列文章目录 使用transformers中的pipeline调用huggingface中模型过程中可能遇到的问题和修改建议 [万字解析]从零开始使用transformers微调huggingface格式的中文Bert模型的过程以及可能出现的问题 文章目录 系列文章目录前言模型与数据集下载模型下载数据集下载 数据加载、…...

K8s简介及环境搭建
一、Kubernetes简介 kubernetes 的本质是一组服务器集群,它可以在集群的每个节点上运行特定的程序,来对节点中的容器进行管理。目的是实现资源管理的自动化,主要提供了如下的主要功能: 自我修复:一旦某一个容器崩溃&a…...

Python对PDF文件页面的旋转和切割
Python对PDF文件页面的旋转和切割 利用Python的.rotate()方法和.mediabox属性对PDF页面进行旋转和切割,最终生成一个PDF。下面结合案例进行说明,本示例中的名为split_and_rotate.pdf文件在practice_files文件夹中, 示例(1&#…...

Android 10.0 修改Systemui三键导航栏虚拟按键颜色功能实现
1.前言 在10.0的系统ROM定制化开发中,在对systemui的相关定制化开发中,在某些产品中,需要修改相关的 导航栏三键导航的虚拟按键的颜色,修改掉原来默认的虚拟按键的黑白色,接下来就来实现相关的功能 2.修改Systemui三键导航栏虚拟按键颜色功能实现的核心类 frameworks\ba…...

『网络游戏』客户端使用PESorket发送消息到服务器【14】
上一章服务器已经完成使用PESorket 现在我们将其导出在客户端中使用 生成成功后复制 粘贴到Unity项目中 进入Assets文件夹 粘贴两个.dll 创建脚本:ClientSession.cs 编写脚本: ClientSession.cs 编写脚本:GameStart.cs 将GameStart.cs脚本绑定在摄像机上 运行服务器 运行客户端…...

JVM(学习预热 - 走进Java)(持续更新迭代)
目录 一、彻底认识Java虚拟机 开创世纪:Sun Classic 开创世纪:Exact VM 武林霸主:HotSpot VM 移动端虚拟机:Mobile/Embedded VM “三大”其二:BEA JRockit/IBM J9 VM 软硬结合:BEA Liquid VM/Azul VM…...