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

从零开始:使用 kubeadm 部署 Kubernetes 集群的详细指南

使用kubeadmin 部署k8s集群

目录

硬件要求

前期准备

Master

检查 API 服务器证书

清理并重新初始化

查 kubeadm 初始化日志

配置 crictl 的 endpoint


硬件要求

主机名 ip 硬件最低要求 建议,跑的块

master 10.1.1.7 2核,2G 内存给个6G

node2 10.1.1.22 1核,1G 内存给个6G

node6 10.1.1.33 1核,1G 内存给个6G

前期准备

三台服务器上都要做的:

(1)修改主机名

hostnamectl set-hostname xxx

(2)为了避免做dns,在/etc/hosts 文件中记录主机名

vi /etc/hosts

3)关闭防火墙,安装iptables

systemctl stop firewalld

systemctl disable firewalld

安装iptables

yum -y install iptables-services

各节点启动

systemctl start iptables

清空规则

iptables -F

开机启动

systemctl enable iptables

(4)禁用selinux

setenforce 0

sed -i "s/SELINUX=enforcing/SELINUX=disabled/g" /etc/selinux/config

(5) 设置时区

timedatectl set-timezone Asia/Shanghai

  1. 关闭 swap 分区

sudo swapoff -a # 临时禁用

sudo sed -i '/ swap / s/^\(.*\)$/#\1/g' /etc/fstab # 永久禁用

(7) 安装 ipvs

yum install -y ipvsadm ipset

(8)加载 bridge

yum install -y epel-release

yum install -y bridge-utils

modprobe br_netfilter

echo 'br_netfilter' >> /etc/modules-load.d/bridge.conf

echo 'net.bridge.bridge-nf-call-iptables=1' >> /etc/sysctl.conf

echo 'net.bridge.bridge-nf-call-ip6tables=1' >> /etc/sysctl.conf

echo 'net.ipv4.ip_forward=1' >> /etc/sysctl.conf

sysctl -p

(9)添加 docker-ce yum 源

yum install -y yum-utils device-mapper-persistent-data lvm2

yum-config-manager--add-repohttps://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo

sed -i 's+download.docker.com+mirrors.aliyun.com/docker-ce+' /etc/yum.repos.d/docker-ce.repo

(10)安装docker(27.3.1)

yum -y install docker-ce

注:不一定是这个版本,只是提醒一下,我们安装的docker 是高版本;

如果下面不想使用cri-docker ,安装的docker 版本不要高于20.10,因为kubeadm-1.23.6 不支持太高的

版本;

(11) 配置 daemon.json 重要的是配置源

cat > /etc/docker/daemon.json <<EOF

{"data-root": "/data/docker","exec-opts": ["native.cgroupdriver=systemd"],"log-

driver":"json-file","log-opts":{"max-size": "100m","max-file": "100"},"registry-

mirrors":

["https://docker.m.daocloud.io","https://docker.hpcloud.cloud","https://docker.u

nsee.tech","https://docker.1panel.live","http://mirrors.ustc.edu.cn","https://do

cker.chenby.cn","http://mirror.azure.cn","https://dockerpull.org","https://docke

rhub.icu","https://hub.rat.dev"]}

EOF

(12) 重启docker服务

systemctl daemon-reload && systemctl restart docker && systemctl enable docker

(13) 安装 cri-docker

wget https://github.com/Mirantis/cri-dockerd/releases/download/v0.3.9/cri-dockerd-0.3.9.amd64.tgz

tar -xf cri-dockerd-0.3.9.amd64.tgz

cp cri-dockerd/cri-dockerd /usr/bin/

chmod +x /usr/bin/cri-docker

  1. 配置cir-docker服务

创建docker.service.d文件

mkdir -p /etc/systemd/system/docker.service.d

vim /usr/lib/systemd/system/cri-docker.service

写入

[Unit]

Description=CRI Interface for Docker Application Container Engine

Documentation=https://docs.mirantis.com

After=network-online.target firewalld.service docker.service

Wants=network-online.target

Requires=cri-docker.socket

[Service]

Type=notify

ExecStart=/usr/bin/cri-dockerd--network-plugin=cni--pod-infra-container-image=registry.aliyuncs.com/google_containers/pause:3.8

ExecReload=/bin/kill -s HUP $MAINPID

TimeoutSec=0

RestartSec=2

Restart=always

StartLimitBurst=3

StartLimitInterval=60s

LimitNOFILE=infinity

LimitNPROC=infinity

LimitCORE=infinity

TasksMax=infinity

Delegate=yes

KillMode=process

[Install]

WantedBy=multi-user.target

修改格式

(15)添加cir-docker套接字

cat <<"EOF" > /usr/lib/systemd/system/cri-docker.socket

[Unit]

Description=CRI Docker Socket for the API

PartOf=cri-docker.service

[Socket]

ListenStream=%t/cri-dockerd.sock

SocketMode=0660

SocketUser=root

SocketGroup=docker

[Install]

WantedBy=sockets.target

EOF

(16)启动cir-docker对应服务

systemctl daemon-reload

systemctl enable cri-docker

systemctl start cri-docker

systemctl is-active cri-docker

(17)添加kubeadm yum源

cat << EOF > /etc/yum.repos.d/kubernetes.repo

[kubernetes]

name=Kubernetes

baseurl=https://mirrors.aliyun.com/kubernetes/yum/repos/kubernetes-el7-x86_64/

enabled=1

gpgcheck=1

repo_gpgcheck=1

gpgkey=https://mirrors.aliyun.com/kubernetes/yum/doc/yum-key.gpg

https://mirrors.aliyun.com/kubernetes/yum/doc/rpm-package-key.gpg

EOF

(18)安装kubernetes 1.18.2

yum -y install kubelet kubeadm kubeadm

systemctl enable kubelet.service

报错

# 下载并导入

yum-key.gpg curl -O https://mirrors.aliyun.com/kubernetes/yum/doc/yum-key.gpg rpm --import yum-key.gpg

# 下载并导入

rpm-package-key.gpg curl -O https://mirrors.aliyun.com/kubernetes/yum/doc/rpm-package-key.gpg rpm --import rpm-package-key.gpg

Master

修改kubeadm初始化文件(改为自己主机名)

vim init-config.yaml

拉取k8s需要的镜像

kubeadm config images list --config=init-config.yaml

kubeadm config images pull --config=init-config.yaml

注:如果下载镜像失败,尝试手动下载;举例如下:

ctr -n k8s.io images pull registry.aliyuncs.com/google_containers/kube-apiserver:v1.23.0

初始化k8s-master

kubeadm init --config=init-config.yaml

出现successfully则成功

如果在这里报错了

处理:

检查 API 服务器证书

如果 API 服务器未启动,可能是证书问题。尝试重新生成证书

sudo kubeadm init phase certs all --config=init-config.yaml

清理并重新初始化

如果以上步骤未解决问题,尝试彻底清理后重新初始化

sudo kubeadm reset --force

sudo rm -rf /etc/kubernetes /var/lib/kubelet

sudo kubeadm init --config=init-config.yaml

重新运行需要检查端口冲突

查 kubeadm 初始化日志

重新运行 kubeadm init 并捕获详细日志

sudo kubeadm init --config=init-config.yaml --v=5

还是报错, kubelet 仍无法自动拉取镜像

sudo vi /var/lib/kubelet/config.yaml

添加

imagePullProgressDeadline: 20m

registryPullQPS: 50

registryBurst: 100

重启kubelet

sudo systemctl restart kubelet

还是拉取不了镜像

使用压缩包

配置 crictl 的 endpoint

如果使用 crictl,需要指定正确的 endpoint

编辑或创建 crictl 配置文件 /etc/crictl.yaml,内容如下(以 containerd 为例):

runtime-endpoint: unix:///run/containerd/containerd.sock

image-endpoint: unix:///run/containerd/containerd.sock

timeout: 10

debug: false

  1. 复制配置文件到用户的home目录

[root@master~]# mkdir -p $HOME/.kube

[root@master~]# cp -i /etc/kubernetes/admin.conf $HOME/.kube/config

[root@master~]# chown $(id-u):$(id-g) $HOME/.kube/config

  1. node 节点加入集群)(node1,node2 上操作)

kubeadm join 10.1.1.7:6443 --token abcdef.0123456789abcdef \ --discovery-token-ca-cert-hash sha256:4fe135645d8b62b6ce5ac608bfdc8d6a0b551744cf4b890e72c08797ce5baf9f \ --cri-socket unix:///var/run/cri-dockerd.sock

  1. k8s master上查看节点

kub get node

前面已经提到,在初始化k8s-master时并没有网络相关配置,所以无法跟node节点通信,因此状态都是

  1. 安装flannel 网络(可选)推荐

wget -L https://github.com/flannel-io/flannel/releases/latest/download/kube-

flannel.yml

kubectl apply -f kube-flannel.yml

配置:

网络配置:确保 Network 字段与你的集群网络规划一致(例如 10.244.0.0/16 )。

后端类型:默认是 vxlan ,如果需要高性能,可以改为 host-gw 或 udp 。

镜像版本:确保镜像版本与 Flannel 的发布版本一致。

如果需要自定义配置,可以修改文件中的相关字段。

  1. 安装calico网络(可选)

curl -L

https://raw.githubusercontent.com/projectcalico/calico/v3.26.3/manifests/calico-

typha.yaml -o calico.yaml

kubectl apply -f calico.yaml

ready状态则成功

(9)查看状态

[root@master gtest]# kubectl get nodes -o wide

[root@master gtest]# kubectl get pod -n kube-system

至此,通过Kubeadm快速安装Kubernetes集群已经完成。

Kubernetes 核心资源及作用

Kubernetes 通过声明式 API 定义资源,以下是常用资源类型:

资源类型作用
Pod最小的部署单元,包含一个或多个容器,共享网络和存储资源。
Deployment管理 Pod 的副本数、滚动更新和回滚,确保应用高可用。
Service提供稳定的网络端点(如 ClusterIP、NodePort),用于访问 Pod。
ConfigMap存储非敏感的配置数据(如环境变量、配置文件),供 Pod 使用。
Secret存储敏感数据(如密码、API 密钥),以加密形式保存。
PersistentVolume (PV)定义集群中的存储资源(如 NFS、云存储),供 Pod 持久化数据。
PersistentVolumeClaim (PVC)由 Pod 申请的存储请求,自动绑定到合适的 PV。
StatefulSet管理有状态应用(如数据库),保证稳定的网络标识和顺序部署。
DaemonSet确保所有节点(或特定节点)运行一个 Pod 副本(如日志收集、监控代理)。
Job执行一次性任务(如数据处理),完成后 Pod 终止。
CronJob周期性执行 Job(如定时备份)。

相关文章:

从零开始:使用 kubeadm 部署 Kubernetes 集群的详细指南

使用kubeadmin 部署k8s集群 目录 硬件要求 前期准备 Master 检查 API 服务器证书 清理并重新初始化 查 kubeadm 初始化日志 配置 crictl 的 endpoint 硬件要求 主机名 ip 硬件最低要求 建议&#xff0c;跑的块 master 10.1.1.7 2核&#xff0c;2G 内存给个6G node2 …...

rancher 采用ingerss ssl 部署nginx+php项目

rancher 采用ingerss ssl 部署nginxphp项目 一、创建nginx dockerfile&#xff0c;上传到阿里云镜像仓库&#xff08;公有&#xff0c;不需要密码&#xff09; 二、 创建php7.4 dockerfile&#xff0c;需要必须扩展&#xff0c; 上传到阿里云镜像仓库&#xff08;公有&#x…...

开源聚合平台 Websoft9:开源创新已成为中小企业数字化转型、数据驱动企业的基础

引言&#xff1a;开源软件正在重塑企业数字化未来 根据2024年OpenLogic报告&#xff0c;94.57%的企业已使用开源软件&#xff0c;其中34.07%的机构加大了对开源技术的投入。开源软件凭借其灵活性、成本优势和生态协作能力&#xff0c;成为中小企业&#xff08;SMB)数字化转型的…...

IntelliJ IDEA 中通义灵码插件使用指南

IntelliJ IDEA 中通义灵码插件使用指南 通义灵码&#xff08;TONGYI Lingma&#xff09;是阿里云推出的一款基于通义大模型的智能编码辅助工具&#xff0c;支持 IntelliJ IDEA 等主流 IDE。它提供了代码补全、自然语言生成代码、单元测试生成、代码注释与解释等功能&#xff0…...

如何免费使用Meta Llama 4?

周六, Meta发布了全新开源的Llama 4系列模型。 架构介绍查看上篇文章。 作为开源模型,Llama 4存在一个重大限制——庞大的体积。该系列最小的Llama 4 Scout模型就拥有1090亿参数,如此庞大的规模根本无法在本地系统运行。 不过别担心!即使你没有GPU,我们也找到了通过网页…...

introduceHLSL

最近打算好好学习一下ue的shader&#xff0c;跟着下面的视频&#xff0c;打算每天至少更新一集 https://www.youtube.com/watch?vlsXB1PQdGx0&t494s 通过下面的蓝图方式我们就可以得到一个变化的材质 alpha参数的生成实际上就是下面的式子 custom节点允许直接的写入hlsl…...

Module模块化

导出&#xff1a;export关键字 export var color "red"; 重命名导出 在模块中使用as用导出名称表示本地名称。 import { add } from "./05-module-out.js"; 导入&#xff1a; import关键字 导入单个绑定 import { sum } from "./05-module-out.js&…...

使用 Rsync + Lsyncd 实现 CentOS 7 实时文件同步

文章目录 &#x1f300;使用 Rsync Lsyncd 实现 CentOS 7 实时文件同步前言介绍架构图&#x1f9f1;系统环境&#x1f527;Rsync配置&#xff08;两台都需安装&#xff09;关闭SELinux&#xff08;两台都需&#xff09; &#x1f4e6;配置目标端&#xff08;client&#xff09…...

软件工程第三章习题

一、选择题 1. (1)答案&#xff1a;D 解析&#xff1a;可行性研究是对项目在技术、经济、操作等多方面进行全面评估论证&#xff0c;也称为项目论证 。技术可行性研究、操作可行性研究、经济可行性研究只是可行性研究的部分内容&#xff0c;不能涵盖整体概念。 2. (2)答案&…...

基于ElasticSearch的向量检索技术实践

基于ElasticSearch的向量检索技术实践 作者&#xff1a;Tableau 原文地址&#xff1a;https://zhuanlan.zhihu.com/p/620260383 图片、视频、语音、文本等非结构化数据可以通过人工智能技术&#xff08;深度学习算法&#xff09;提取特征向量&#xff0c;然后通过对这些特征向量…...

Spring Boot 项目日志系统全攻略:Logback、Log4j2、Log4j与SLF4J整合指南

Spring Boot 项目日志系统全攻略&#xff1a;Logback、Log4j2、Log4j与SLF4J整合指南 日志系统是应用程序不可或缺的组成部分&#xff0c;良好的日志实践能极大提升开发调试和线上问题排查的效率。本文将全面介绍Spring Boot项目中各种日志框架的配置与使用方案&#xff0c;包…...

【设计模式】责任链模式

简介 很多公司都有请假的流程&#xff0c;当员工提交请假申请时&#xff0c;请求会沿着 组长 → 经理 → CEO 的链条传递&#xff0c;直到有对应层级的领导处理。 适用场景 一个请求需要多个对象中的一个或多个处理&#xff08;如审批流程、过滤器链&#xff09;。处理对象和…...

智能气候前沿:AI Agent结合机器学习与深度学习在全球气候变化驱动因素预测

全球气候变化已成为21世纪最严峻的环境挑战&#xff0c;其复杂的驱动因素如温室气体排放、气溶胶浓度、野火、海冰融化以及农业和生态系统变化等&#xff0c;交织影响着全球的气候格局。 第一&#xff1a;气候变化驱动因素与数据科学基础 1.1气候变化 全球气候变化 中国碳中…...

es 原生linux部署集群

背景 目的&#xff1a; 1. 理解不同部署方式的架构差异 2. 对比环境配置的复杂度 3. 评估性能与资源管理 4. 探索扩展性与高可用性 5. 学习安全与隔离机制 6. 实践监控与维护 7. 掌握混合部署与云原生场景 实验的最终目标 技能提升&#xff1a; 全面掌握Elasticsear…...

Springboot 同时支持不同的数据库,Oracle,Postgresql

## 关键字 Java&#xff0c;Springboot&#xff0c;Vscode&#xff0c;支持多种数据库 ## 背景环境 我在实际项目开发工程中遇到这样一个问题&#xff0c;用户 A 使用 Oracle 数据库&#xff0c;用户 B 使用 Postgresql 数据库&#xff0c;但是用户 AB 都使用我们的项目。所以…...

go --- go run main.go 和 go run .

目录 go run main.gogo run .示例 go run main.go 功能&#xff1a;只编译和运行指定的文件&#xff08;main.go&#xff09;&#xff0c;忽略同目录下的其他文件。适用场景&#xff1a; 当你只需要运行一个独立的文件&#xff0c;且该文件不依赖其他文件时。适合单文件程序或…...

关于Spring MVC中@RequestMapping注解的详细解析,涵盖其核心功能、属性、使用场景及最佳实践

以下是关于Spring MVC中RequestMapping注解的详细解析&#xff0c;涵盖其核心功能、属性、使用场景及最佳实践&#xff1a; 1. 基础概念 RequestMapping是Spring MVC的核心注解&#xff0c;用于将HTTP请求映射到控制器&#xff08;Controller&#xff09;的方法上。它支持类级…...

deepseek使用记录26——从体力异化到脑力异化

我们的一切发现和进步&#xff0c;似乎结果是使物质力量具有理智生命&#xff0c;而人的生命则化为愚钝的物质力量。AI快速发展的现实中&#xff0c;人面临着比工业革命更深刻的异化。在工业革命中&#xff0c;人的身躯沦为了机器的一部分&#xff0c;而现在人的脑袋沦为了AI的…...

Ubertool 的详细介绍、安装指南及使用说明

Ubertool&#xff1a;多协议网络分析与调试平台 一、Ubertool 简介 Ubertool 是一款开源的 多协议网络分析工具&#xff0c;专为物联网&#xff08;IoT&#xff09;、嵌入式系统和工业自动化领域设计。它支持蓝牙、Wi-Fi、LoRa、CAN总线等多种通信协议的实时监控、数据包捕获…...

用 HTML、CSS 和 jQuery 打造多页输入框验证功能

在网页开发中&#xff0c;输入框验证是至关重要的一环&#xff0c;它能确保用户输入的数据符合特定要求&#xff0c;提升交互的准确性与流畅性。今天&#xff0c;我们就来深入剖析一个运用 HTML、CSS 和 jQuery 实现多页输入框验证的精彩实例&#xff0c;带你领略前端开发中表单…...

在CentOS上安装Docker需要注意的事项

文章目录 前言Docker Engine如何设置仓库设置镜像加速器获取镜像加速器地址 写在前面&#xff1a;大家好&#xff01;我是晴空๓。如果博客中有不足或者的错误的地方欢迎在评论区或者私信我指正&#xff0c;感谢大家的不吝赐教。我的唯一博客更新地址是&#xff1a;https://ac-…...

Chrome 135 版本新特性

Chrome 135 版本新特性 一、Chrome 135 版本浏览器更新 ** 1. 第三方托管账户注册迁移到 OIDC 授权码流程** Chrome 135 将账户注册的登录页面从营销网站迁移到动态网站&#xff0c;同时也将 OpenID Connect (OIDC) 的隐式流程迁移到授权码流程。这样做的目的是进一步提升第…...

CMake实战指南一:add_custom_command

CMake 进阶&#xff1a;add_custom_command 用法详解与实战指南 在 CMake 构建系统中&#xff0c;add_custom_command 是一个灵活且强大的工具&#xff0c;允许开发者在构建流程中插入自定义操作。无论是生成中间文件、执行预处理脚本&#xff0c;还是在目标构建前后触发额外逻…...

K8S学习之基础七十五:istio实现灰度发布

istio实现灰度发布 上传镜像到harbor 创建两个版本的pod vi deployment-v1.yaml apiVersion: apps/v1 kind: Deployment metadata:name: appv1labels:app: v1 spec:replicas: 1selector:matchLabels:app: v1apply: canarytemplate:metadata:labels:app: v1apply: canaryspec…...

7-1 列出连通集

作者 陈越 单位 浙江大学 给定一个有 n 个顶点和 m 条边的无向图&#xff0c;请用深度优先遍历&#xff08;DFS&#xff09;和广度优先遍历&#xff08;BFS&#xff09;分别列出其所有的连通集。假设顶点从 0 到 n−1 编号。进行搜索时&#xff0c;假设我们总是从编号最小的顶点…...

XML Schema 指示器

XML Schema 指示器 引言 XML Schema 是一种用于定义 XML 文档结构的语言,它能够确保 XML 文档的合法性。在 XML 文档的解析和应用中,XML Schema 指示器(XML Schema Indicator)扮演着至关重要的角色。本文将详细介绍 XML Schema 指示器的概念、作用、应用场景以及如何使用…...

Linux内核中TCP协议栈的实现:tcp_close函数的深度剖析

引言 TCP(传输控制协议)作为互联网协议族中的核心协议之一,负责在不可靠的网络层之上提供可靠的、面向连接的字节流服务。Linux内核中的TCP协议栈实现了TCP协议的全部功能,包括连接建立、数据传输、流量控制、拥塞控制以及连接关闭等。本文将深入分析Linux内核中tcp_close…...

17-产品经理-创建发布

点击“发布”-“创建发布”。 填写发布名称&#xff0c;选择测试的版本。还可以设置此次发布是否为“里程碑”。 点击“保存”后&#xff0c;进入该发布详情页面。需要为此次发布关联需求、已解决BUG、以及遗留BUG。可以通过设置条件&#xff0c;进行“搜索”&#xff0c;然后批…...

了解Spring的统一功能

目录 一、统一数据返回格式 1.引入统一数据返回格式 2.学习使用统一数据返回格式 support方法 beforeBodyWrite方法 统一数据返回格式具体逻辑 使用统一数据返回格式存在的问题 解决方法&#xff1a; 统一数据返回格式的优点 统一数据返回格式代码实现&#xff08;包含了…...

123213

根据道路在道路网的地位、交通功能、对沿线的服务功能划分可分为快速路、主干路、次干路及支路 快速路完全为交通功能服务, 主干路以交通功能为主, 次干路是城市区域性的交通干道&#xff0c;为区域交通集散服务&#xff0c;兼有服务功能&#xff0c;结合主干路组成干路网 …...

通过 axios 请求回来的 HTML 字符串渲染到 Vue 界面上并添加样式

1. 通过 axios 获取数据 使用 axios 发起请求&#xff0c;获取返回的 HTML 字符串数据。 2. 在 Vue 中处理和渲染数据 由于 HTML 字符串中可能包含一些标签和样式&#xff0c;直接插入到 Vue 的模板中可能会导致样式问题。可以通过以下方式处理&#xff1a; 方法一&#xf…...

P1162 填涂颜色(BFS)

题目描述 由数字 0 组成的方阵中&#xff0c;有一任意形状的由数字 1 构成的闭合圈。现要求把闭合圈内的所有空间都填写成 2。例如&#xff1a;66 的方阵&#xff08;n6&#xff09;&#xff0c;涂色前和涂色后的方阵如下&#xff1a; 如果从某个 0 出发&#xff0c;只向上下…...

【笔记】VS中C#类库项目引用另一个类库项目的方法

VS中C#类库项目引用另一个类库项目的方法 在 C# 开发中&#xff0c;有时我们需要在一个类库项目中引用另一个类库项目&#xff0c;但另一个项目可能尚未编译成 DLL。在这种情况下&#xff0c;我们仍然可以通过 Visual Studio 提供的项目引用功能进行依赖管理。 &#x1f3af; …...

进程内存分布--之smaps呈现memory-layout.cpp内存分布

上一篇介绍了&#xff1a;进程内存分布--之单线程代码来内存分布呈现memory-layout.cpp 这里我们使用smaps将更加形象的的体现内存分布&#xff0c;smaps文件是Linux的proc文件系统提供的一种可以查看内存资源使用情况的方法,Linux系统中运行的库、堆、栈等信息都可在smaps中查…...

再看自适应RAG方法:SEAKR|PIKE-RAG|DeepRAG

当大语言模型开始"怀疑人生":一场关于知识检索的AI内心戏 各位看官,今天我们要聊一个AI界的"哲学难题"——当大语言模型突然意识到自己可能是个"半瓶子醋",会发生什么奇妙反应? 想象一下这个场景:某天深夜,ChatGPT正对着用户提问"如…...

DNS服务(Linux)

DNS 介绍 dns&#xff0c;Domain Name Server&#xff0c;它的作用是将域名解析为 IP 地址&#xff0c;或者将IP地址解析为域名。 这需要运行在三层和四层&#xff0c;也就是说它需要使用 TCP 或 UDP 协议&#xff0c;并且需要绑定端口&#xff0c;53。在使用时先通过 UDP 去…...

探秘PythonJSON解析深度剖析json.loads处理嵌套JSON字符串的奥秘

哈喽,大家好,我是木头左! 在当今数字化时代,数据以各种格式呈现,而JSON(JavaScript Object Notation)作为一种轻量级的数据交换格式,在众多领域广泛应用。Python作为一门强大的编程语言,其内置的json模块为处理JSON数据提供了便捷的方法。然而,当遇到像{"name&q…...

Day7 FIFO与鼠标控制

文章目录 1. harib04a例程&#xff08;获取按键编码&#xff09;2. harib04b例程&#xff08;加快中断处理&#xff09;3. harib04c例程&#xff08;FIFO缓冲区&#xff09;4. harib04d例程&#xff08;改善FIFO缓冲区&#xff09;5. harib04e例程&#xff08;整理FIFO缓冲区&a…...

软件工程第一章习题

第1章软件与软件工程 1.选择题 (1)下列说法中正确的是( &#xff09;o A.20世纪50年代提出了软件工程的概念 B.20世纪60年代提出了软件工程的概念 C.20世纪70年代出现了客户机/服务器技术 D.20世纪80年代软件工程学科达到成熟 (2)软件危机的主要原因是( Do B.软件生产…...

Ollama 手动高速下载Win/Linux/Mac安装包及安装方法

前言 Ollama下载速度太慢&#xff0c;按这个方式&#xff0c;速度嘎嘎的快----下载地址 手动安装 如果要从以前的版本升级&#xff0c;则应删除旧库。比如&#xff1a;sudo rm -rf /usr/lib/ollama 解压 tar -C /usr -xzf ollama-linux-amd64.tgz # 解压到/usr文件夹# 如…...

Jmeter+Jenkins+Ant自动化持续集成环境搭建

一、安装准备 1.JDK:jdk-8u121-windows-x64 2.jmeter工具&#xff1a;apache-jmeter-2.13 3.ANT工具&#xff1a;apache-ant-1.9.7-bin 4.jenkins工具&#xff1a;jenkins-2.32.2 二、软件安装 1.JDK的安装 >双击JDK安装包&#xff0c;选择安装路径&#xff08;本人是…...

【11】Redis快速安装与Golang实战指南

文章目录 1 Redis 基础与安装部署1.1 Redis 核心特性解析1.2 Docker Compose 快速部署1.3 Redis 本地快速部署 2 Golang 与 Redis 集成实战2.1 环境准备与依赖安装2.2 核心操作与数据结构实践2.2.1 基础键值操作2.2.2 哈希结构存储用户信息 3 生产级应用场景实战3.1 分布式锁实…...

ISP算法.红外图像增强

在图像处理领域&#xff0c;常见的图像处理一般都是白光相机&#xff0c;实际红外相机也是常见的一种相机&#xff0c;它可以用来对发热的东西进行成像&#xff0c;也可以作为白光相机夜晚不可见的一种辅助手段&#xff0c;为白光相机赋能夜视能力。 红外相机的成像原理在于辐射…...

Spring Boot中使用RedisTemplate操作Redis的几种数据类型详解

Redis作为高性能的键值存储系统&#xff0c;在现代Java应用中扮演着重要角色。Spring Boot通过RedisTemplate为开发者提供了便捷的Redis操作方式。本文将详细介绍如何使用RedisTemplate操作Redis的五种主要数据类型。 一、RedisTemplate简介 RedisTemplate是Spring Data Redi…...

大数据与人工智能之大数据架构(Hadoop、Spark、Flink)

一、核心特性与架构设计 1. Hadoop&#xff1a;分布式批处理的基石 核心组件&#xff1a; HDFS&#xff1a;分布式文件系统&#xff0c;支持大规模数据存储。MapReduce&#xff1a;基于“分而治之”的批处理模型&#xff0c;适合离线分析。 架构特点&#xff1a; 批处理主导&…...

VSCode中Marp插件

VSCode神级插件Marp&#xff0c;用Markdown来做PPT 优秀教程&#xff1a;https://zhuanlan.zhihu.com/p/582872955...

C++20 数学常数:<numbers> 头文件的革新

文章目录 一、<numbers> 头文件中的数学常数二、使用示例三、优势与应用场景&#xff08;一&#xff09;提高代码可读性&#xff08;二&#xff09;提高精度&#xff08;三&#xff09;适用于多种数据类型&#xff08;四&#xff09;简化数学计算 四、总结 C20 标准引入了…...

OpenCV--图像平滑处理

在数字图像处理领域&#xff0c;图像平滑处理是一项极为重要的技术&#xff0c;广泛应用于计算机视觉、医学影像分析、安防监控等多个领域。在 OpenCV 这一强大的计算机视觉库的助力下&#xff0c;我们能便捷地实现多种图像平滑算法。本文将深入探讨图像平滑的原理&#xff0c;…...

【KMP】P7114 [NOIP2020] 字符串匹配|省选-

本文涉及知识点 较难理解的字符串查找算法KMP P7114 [NOIP2020] 字符串匹配 题目描述 小 C 学习完了字符串匹配的相关内容&#xff0c;现在他正在做一道习题。 对于一个字符串 S S S&#xff0c;题目要求他找到 S S S 的所有具有下列形式的拆分方案数&#xff1a; S A …...

C++20 统一容器擦除:std::erase 和 std::erase_if

文章目录 一、std::erase 的用法1.1 语法1.2 参数1.3 返回值1.4 示例 二、std::erase_if 的用法2.1 语法2.2 参数2.3 返回值2.4 示例 三、优势与应用场景3.1 统一的接口3.2 简化代码3.3 适用范围广 四、总结 C20 引入了两个非常实用的函数模板&#xff1a; std::erase 和 std…...