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

k8s 集群搭建详细教程

参考: Kubernetes 文档 / 入门 / 生产环境 / 使用部署工具安装 Kubernetes / 使用 kubeadm 引导集群 / 安装 kubeadm


B. 准备开始

  • 一台兼容的 Linux 主机。Kubernetes 项目为基于 Debian 和 Red Hat 的 Linux 发行版以及一些不提供包管理器的发行版提供通用的指令
  • 每台机器 2 GB 或更多的 RAM (如果少于这个数字将会影响你应用的运行内存)
  • 2 CPU 核或更多
  • 集群中的所有机器的网络彼此均能相互连接(公网和内网都可以)
  • 节点之中不可以有重复的主机名、MAC 地址或 product_uuid。请参见这里了解更多详细信息。
  • 开启机器上的某些端口。请参见这里 了解更多详细信息。
  • 禁用交换分区。为了保证 kubelet 正常工作,你 必须 禁用交换分区

U. 确保每个节点上 MAC 地址和 product_uuid 的唯一性

  • 你可以使用命令 ip linkifconfig -a 来获取网络接口的 MAC 地址
  • 可以使用 sudo cat /sys/class/dmi/id/product_uuid 命令对 product_uuid 校验

一般来讲,硬件设备会拥有唯一的地址,但是有些虚拟机的地址可能会重复。 Kubernetes 使用这些值来唯一确定集群中的节点。 如果这些值在每个节点上不唯一,可能会导致安装 失败。


V. 虚拟机

新建… / 创建自定虚拟机 /
Linux / Ubuntu 64位

  • 设置过程
ID『虚拟机』设置建议配置默认值说明
1处理器-2最低要求
2内存-4096 MB节约内存
3显示器取消复选加速 3D 图形复选节约内存
4网络适配器-nat需上网
5硬盘40GB20 GB保证练习容量
6选择固件类型UEFI传统 BIOSVMware Fusion 支持嵌套虚拟化
  • 设置结果
IDYour computer’s nameCPU 核RAMDISKNIC
1k8s-master4 或更多8 GB或更多40 GBnat
2k8s-worker1同上2 GB或更多同上同上
3k8s-worker2同上同上同上同上

I. 安装 Ubuntu 22.04 LTS

  1. Willkommen! Bienvenue! Welcome! Welkom!

        [ English ]

  2. Installer update available

     [ Continue without updating ]

  3. Keyboard configuration

    [ Done ]

  4. Choose type of install

    (X) Ubuntu Server (minimized)
    / [ Done ]

  5. Network connections

    [ Done ]

  6. Configure proxy

    [ Done ]

  7. Configure Ubuntu archive mirror

    Mirror address: http://mirror.nju.edu.cn/ubuntu
    / [ Done ]

  8. Guided storage configuration

    [ Done ]

  9. Storage configuration

    [ Done ]

  10. Profile setup

                             Your name: kiosk
             Your server 's name: k8s-master
                   Pick a username: kiosk
              Choose a password: ubuntu
        Confirm your password: ubuntu
        / [ Done ]

  11. SSH Setup

    ​ [X] Install OpenSSH server
    ​ / [ Done ]

  12. Featured Server Snaps

    [ Done ]

  13. Install complete!

    🅰️ [ Cancel update and reboot ]

    🅱️ [ Reboot Now ]

  14. 建议(可选)

    关机后,做个快照


P. 准备工作

[kiosk@k8s-master|k8s-worker1|k8s-worker2]$

  1. 设置当前用户sudo免密

    sudo tee /etc/sudoers.d/$USER >/dev/null <<EOF
    $USER ALL=(ALL) NOPASSWD:ALL
    EOF
    
  2. 使用国内镜像仓库

    # 国内镜像仓库
    MIRROR_URL=http://mirror.nju.edu.cn/ubuntu# 生成软件仓库源
    sudo tee /etc/apt/sources.list >/dev/null <<EOF
    deb $MIRROR_URL jammy main restricted universe multiverse
    deb $MIRROR_URL jammy-updates main restricted universe  multiverse
    deb $MIRROR_URL jammy-backports main restricted universe multiverse
    deb $MIRROR_URL jammy-security main restricted universe multiverse
    EOF
    
  3. 安装相关软件

    # 更新
    sudo apt -y update# 安装
    sudo apt install -y openssh-server \vim sshpass nfs-common \bash-completion netcat-openbsd \open-vm-tools
    

[kiosk@k8s-master]$

  1. 设置静态IP

    # 配置IP
    sudo tee /etc/netplan/00-installer-config.yaml >/dev/null <<EOF
    network:ethernets:ens33:dhcp4: falseaddresses: [192.168.147.128/24]gateway4: 192.168.147.2nameservers:addresses: [8.8.8.8]version: 2
    EOF# dns
    sudo ln -sf /run/systemd/resolve/resolv.conf /etc/resolv.conf# active
    sudo netplan apply
    

[kiosk@k8s-worker1]$

  1. 设置静态IP

    # 配置IP
    sudo tee /etc/netplan/00-installer-config.yaml >/dev/null <<EOF
    network:ethernets:ens33:dhcp4: falseaddresses: [192.168.147.129/24]gateway4: 192.168.147.2nameservers:addresses: [8.8.8.8]version: 2
    EOF# dns
    sudo ln -sf /run/systemd/resolve/resolv.conf /etc/resolv.conf# active
    sudo netplan apply
    

[kiosk@k8s-worker2]$

  1. 设置静态IP

    # 配置IP
    sudo tee /etc/netplan/00-installer-config.yaml >/dev/null <<EOF
    network:ethernets:ens33:dhcp4: falseaddresses: [192.168.147.130/24]gateway4: 192.168.147.2nameservers:addresses: [8.8.8.8]version: 2
    EOF# dns
    sudo ln -sf /run/systemd/resolve/resolv.conf /etc/resolv.conf# active
    sudo netplan apply
    

[kiosk@k8s-master|k8s-worker1|k8s-worker2]$

  1. 编辑 hosts

    sudo tee -a /etc/hosts >/dev/null <<EOF
    192.168.147.128	k8s-master
    192.168.147.129 k8s-worker1
    192.168.147.130 k8s-worker2
    EOF# 设置 root 密码
    (echo ubuntu; echo ubuntu) | sudo passwd root
    echo PermitRootLogin yes | sudo tee -a /etc/ssh/sshd_config
    sudo systemctl restart sshd
    

[kiosk@k8s-master]$

  1. ssh免密

    # 生成 keypair
    ssh-keygen -f ~/.ssh/id_rsa -N ''# 拷贝公钥
    for i in k8s-master k8s-worker1 k8s-worker2; dosshpass -pubuntu ssh-copy-id -o StrictHostKeyChecking=no kiosk@$isshpass -pubuntu ssh-copy-id -o StrictHostKeyChecking=no root@$i
    done
    

[kiosk@k8s-master|k8s-worker1|k8s-worker2]$

  1. 禁用swap

    # 交换文件
    SWAPF=$(awk '/swap/ {print $1}' /etc/fstab)# 立即禁用
    sudo swapoff $SWAPF# 永久禁用
    sudo sed -i '/swap/d' /etc/fstab# 删除交换文件
    sudo rm $SWAPF
    
  2. 扩容

    # 逻辑卷名
    export LVN=$(sudo lvdisplay | awk '/Path/ {print $3}')# 扩容
    sudo lvextend -l 100%PVS $LVN# 立即生效
    sudo resize2fs $LVN# 验证
    df -h /
    
  3. 模块支持

    # 安装
    sudo apt -y install bridge-utils# 立即生效
    sudo modprobe br_netfilter# 内核支持
    sudo tee /etc/sysctl.d/k8s.conf >/dev/null <<EOF
    net.ipv4.ip_forward=1
    vm.swappiness=0
    vm.overcommit_memory=1
    vm.panic_on_oom=0
    EOF# 立即生效
    sudo sysctl -p /etc/sysctl.d/k8s.conf
    
  • docker: k8s-master, k8s-worker1
  • containerd: k8s-worker2

[kiosk@k8s-master|k8s-worker1]$

  1. 安装运行时

    # 创建文件夹
    sudo mkdir -p /etc/docker# 生成配置文件
    sudo tee /etc/docker/daemon.json >/dev/null <<EOF
    {"exec-opts": ["native.cgroupdriver=systemd"],"log-driver": "json-file","log-opts": {"max-size": "100m","max-file": "10"},"registry-mirrors": ["https://docker.nju.edu.cn/"]
    }
    EOF# 安装 runtime
    sudo apt -y install docker.io# 开机自启
    sudo systemctl enable docker# 立即重启
    sudo systemctl restart docker
    
    # 安装命令 cri-dockerd
    curl -# https://vmcc.xyz:8443/k8s/cri-docker/cri-dockerd-0.2.5.amd64.tgz \-o cri-dockerd-0.2.5.amd64.tgz
    tar -xf cri-dockerd-0.2.5.amd64.tgz
    sudo cp cri-dockerd/cri-dockerd /usr/bin/# 安装服务 cri-docker.service
    sudo curl -s https://vmcc.xyz:8443/k8s/cri-docker/cri-docker.service \-o /usr/lib/systemd/system/cri-docker.service
    sudo sed -i '/ExecStart/s+$+ --network-plugin=cni --pod-infra-container-image=registry.aliyuncs.com/google_containers/pause:3.8+' /usr/lib/systemd/system/cri-docker.service# 安装 cri-docker.socket
    sudo curl -s https://vmcc.xyz:8443/k8s/cri-docker/cri-docker.socket \-o /usr/lib/systemd/system/cri-docker.socket# 启动服务 cri-dockerd
    sudo systemctl daemon-reload
    sudo systemctl enable cri-docker
    sudo systemctl restart cri-docker# 安装 crictl 命令
    curl -# https://vmcc.xyz:8443/k8s/crictl-v1.24.2-linux-amd64.tar.gz \-o crictl-v1.24.2-linux-amd64.tar.gz
    tar -xf crictl-v1.24.2-linux-amd64.tar.gz
    sudo cp crictl /usr/bin/
    # crictl 配置文件
    sudo tee /etc/crictl.yaml >/dev/null <<EOF
    runtime-endpoint: unix:///var/run/cri-dockerd.sock
    image-endpoint: unix:///var/run/cri-dockerd.sock
    timeout: 10
    debug: false
    pull-image-on-create: true
    EOF
    

[kiosk@k8s-worker2]$

  1. 安装运行时

    # 安装 containerd
    sudo apt install -y containerd# 创建目录
    sudo mkdir /etc/containerd# 生成默认配置文件
    containerd config default | \
    sudo tee /etc/containerd/config.toml >/dev/null# 修改配置文件
    sudo sed -i \
    -e '/sandbox_image/s?k8s.gcr.io?registry.aliyuncs.com/google_containers?' \
    -e '/SystemdCgroup/s?false?true?' \
    -e '/registry.mirrors/a\        [plugins."io.containerd.grpc.v1.cri".registry.mirrors."docker.io"]' \
    -e '/registry.mirrors/a\          endpoint = ["https://docker.nju.edu.cn/"]' /etc/containerd/config.toml# 服务重启
    sudo systemctl restart containerd# 安装 crictl 命令
    curl -# https://vmcc.xyz:8443/k8s/crictl-v1.24.2-linux-amd64.tar.gz \-o crictl-v1.24.2-linux-amd64.tar.gz
    tar -xf crictl-v1.24.2-linux-amd64.tar.gz
    sudo cp crictl /usr/bin/
    # crictl 配置文件
    sudo tee /etc/crictl.yaml >/dev/null <<EOF
    runtime-endpoint: unix:///run/containerd/containerd.sock
    image-endpoint: unix:///run/containerd/containerd.sock
    timeout: 10
    debug: false
    pull-image-on-create: true
    EOF

K. 安装 k8s

[kiosk@k8s-master|k8s-worker1|k8s-worker2]$

  1. 安装 kubeadm、kubelet 和 kubectl

    # 更新 apt 包索引并安装使用 Kubernetes apt 仓库所需要的包
    sudo apt -y install apt-transport-https ca-certificates curl# 下载 Google Cloud 公开签名秘钥
    curl -s https://mirrors.aliyun.com/kubernetes/apt/doc/apt-key.gpg | sudo apt-key add -# 添加 Kubernetes apt 仓库
    MIRROR_URL=https://mirror.nju.edu.cn/kubernetes/apt/
    sudo tee /etc/apt/sources.list.d/kubernetes.list >/dev/null <<EOF
    deb $MIRROR_URL kubernetes-xenial main
    EOF# 更新 apt 包索引
    sudo cp /etc/apt/trusted.gpg /etc/apt/trusted.gpg.d
    sudo apt update -y
    sudo apt-cache madison kubelet | grep 1.24# 安装 kubelet、kubeadm 和 kubectl 考试版本
    sudo apt install -y kubelet=1.24.1-00 kubeadm=1.24.1-00 kubectl=1.24.1-00# 锁定版本
    sudo apt-mark hold kubelet kubeadm kubectl

[kiosk@k8s-worker2]$

# 增加 k8s 支持sudo sed -i '/ExecStart=\//s|$| --container-runtime=remote --container-runtime-endpoint=unix:///run/containerd/containerd.sock --cgroup-driver=systemd|' /etc/systemd/system/kubelet.service.d/10-kubeadm.conf
# 重启 kubelet 服务
sudo systemctl daemon-reload
sudo systemctl restart kubelet

[kiosk@k8s-master]$

  1. 初始化

    # 生成初始文件
    sudo kubeadm config print init-defaults > kubeadm-config.yaml# 修改文件
    sudo sed -i \-e "/advertiseAddress/s?:.*?: 192.168.147.128?" \-e "/name/s?:.*?: k8s-master?" \-e "/clusterName/s?:.*?: ck8s?" \-e "/imageRepository/s?:.*?: registry.aliyuncs.com/google_containers?" \-e "/criSocket/s+containerd/containerd+cri-dockerd+" kubeadm-config.yaml# 使用初始文件,初始化集群
    sudo kubeadm init --config kubeadm-config.yaml
    

    …输出省略…
    Your Kubernetes control-plane has initialized successfully!

    To start using your cluster, you need to run the following as a regular user:

    mkdir -p $HOME/.kube
    sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config
    sudo chown $(id -u):$(id -g) $HOME/.kube/config
    

    Alternatively, if you are the root user, you can run:

    export KUBECONFIG=/etc/kubernetes/admin.conf
    

    You should now deploy a pod network to the cluster.
    Run “kubectl apply -f [podnetwork].yaml” with one of the options listed at:
    https://kubernetes.io/docs/concepts/cluster-administration/addons/

    Then you can join any number of worker nodes by running the following on each as root:

    kubeadm join 192.168.147.128:6443 --token abcdef.0123456789abcdef \
    --discovery-token-ca-cert-hash sha256:c4781194de65ebb47984fc5e7e64d4897875410825ce4d18df81da1a298afa1f
    
  2. 配置文件

    # 创建目录
    mkdir -p $HOME/.kube# user 复制配置文件
    sudo \cp /etc/kubernetes/admin.conf $HOME/.kube/config
    sudo chown $(id -u):$(id -g) $HOME/.kube/config# root 变量
    sudo tee -a ~root/.bashrc >/dev/null <<EOF
    export KUBECONFIG=/etc/kubernetes/admin.conf
    EOF
    
  3. 创建网络

    kubectl apply -f https://docs.projectcalico.org/manifests/calico.yaml
    
  4. 命令补全

    # 立即生效
    source <(kubectl completion bash)# 永久生效
    mkdir ~/.kube
    kubectl completion bash > ~/.kube/completion.bash.inc
    printf "
    # Kubectl shell completion
    source '$HOME/.kube/completion.bash.inc'
    " >> $HOME/.bash_profile
    source $HOME/.bash_profile
    
  5. 命令别名

    # 永久生效
    tee -a $HOME/.bashrc >/dev/null <<EOF
    alias k='kubectl'
    complete -F __start_kubectl k
    EOF# 立即生效
    source $HOME/.bashrc
    

[kiosk@k8s-worker1]$

  1. 加入集群

    sudo kubeadm join 192.168.147.128:6443 \--token abcdef.0123456789abcdef \--discovery-token-ca-cert-hash sha256:c4781194de65ebb47984fc5e7e64d4897875410825ce4d18df81da1a298afa1f \--cri-socket unix://var/run/cri-dockerd.sock
    

[kiosk@k8s-worker2]$

  1. 加入集群

    sudo kubeadm join 192.168.147.128:6443 \--token abcdef.0123456789abcdef \--discovery-token-ca-cert-hash sha256:c4781194de65ebb47984fc5e7e64d4897875410825ce4d18df81da1a298afa1f
    

C. 确认环境正常

[kiosk@k8s-master]

$ kubectl get componentstatuses
Warning: v1 ComponentStatus is deprecated in v1.19+
NAME                 STATUS    MESSAGE                         ERROR
scheduler           `Healthy`  ok
controller-manager  `Healthy`  ok
etcd-0              `Healthy`  {"health":"true","reason":""}$ kubectl get nodes
NAME          STATUS   ROLES                  AGE     VERSION
k8s-worker1  `Ready`  <none>                 4m4s    `v1.24.1`
k8s-worker2  `Ready`  <none>                 4m44s   `v1.24.1`
k8s-master   `Ready`  control-plane,master   13m     `v1.24.1`$ kubectl -n kube-system get pod -w
NAME                                       READY   STATUS    RESTARTS   AGE
calico-kube-controllers-555bc4b957-8ccgh   1/1     Running   0          27m
calico-node-5qqcq                          1/1     Running   0          9m29s
calico-node-7qclz                          1/1     Running   0          27m
calico-node-kcvt5                          1/1     Running   0          9m29s
coredns-74586cf9b6-69fn7                   1/1     Running   0          156m
coredns-74586cf9b6-8mgl9                   1/1     Running   0          156m
etcd-k8s-master                            1/1     Running   0          156m
kube-apiserver-k8s-master                  1/1     Running   0          156m
kube-controller-manager-k8s-master         1/1     Running   0          156m
kube-proxy-8j248                           1/1     Running   0          9m29s
kube-proxy-g7r55                           1/1     Running   0          9m29s
kube-proxy-rbdcp                           1/1     Running   0          156m
kube-scheduler-k8s-master                  1/1     Running   0          156m
<Ctrl-C>

相关文章:

k8s 集群搭建详细教程

参考&#xff1a; Kubernetes 文档 / 入门 / 生产环境 / 使用部署工具安装 Kubernetes / 使用 kubeadm 引导集群 / 安装 kubeadm B. 准备开始 一台兼容的 Linux 主机。Kubernetes 项目为基于 Debian 和 Red Hat 的 Linux 发行版以及一些不提供包管理器的发行版提供通用的指令每…...

国有行面试:掌握这11个测评要素

银行笔试期一结束&#xff0c;面试也接连不断。大家做好拿下offer的准备了吗&#xff1f;回顾过往银行面试&#xff0c;半结构化和无领导题型备受考官喜爱&#xff0c;“有备无患&#xff0c;方能走向远方”&#xff0c;银行面试备考&#xff0c;了解掌握面试本质测评要素&…...

云视如何实现流量转化

云视如何实现流量转化 大家好我是小鱼 小伙伴很好奇 云视除了直播带货 打赏&#xff0c;广告 还有哪些方式 可以实现流量转化 今天我和大家分享一下这个话题 接下来我们要讲讲 我们要用的工具 优惠券 适用于刺激消费回流&#xff0c;构建闭环消费圈。 课程赠送 趣味推广营销&am…...

Metersphere+jar+beanshell+连接linux

Meterspherejarbeanshell连接linux java编写连接linux代码 使用jsch连接linux&#xff0c;下载jsch包或者使用maven <dependencies><dependency><groupId>com.jcraft</groupId><artifactId>jsch</artifactId><version>0.1.55<…...

前端开发工程师如何提升个人审美

✨求关注~ &#x1f600;博客&#xff1a;www.protaos.com 作为前端开发工程师&#xff0c;提升个人审美能力对于设计和开发出高质量的用户界面至关重要。个人审美是指对于颜色、布局、字体、图形等视觉元素的理解和判断能力。通过提升个人审美&#xff0c;前端开发工程师能够设…...

【软件测试】Python自动化软件测试算是程序员吗?

今天早上一觉醒来&#xff0c;突然萌生一个念头&#xff0c;【软件测试】软件测试算是程序员吗&#xff1f;左思右想&#xff0c;总感觉哪里不对。做了这么久的软件测试&#xff0c;还真没深究过这个问题。 基于&#xff0c;内事问百度的准则&#xff1a; 结果…… 我刚发出软…...

react函数组件常用的几个钩子函数

react框架 react框架包括包括两大类&#xff1a;类组件函数组件。 类组件构成&#xff1a;constructor自定义方法。调用方法通过this.方法名()。constructor(superstate)构造器里面必有super字段。render()方法里面写页面布局。 函数组件构成&#xff1a;各种钩子函数return()方…...

如何进行大数据测试

大数据解决方案 大数据解决方案包括一系列工具和技术&#xff0c;用于收集、存储、处理和分析大量的数据。以下是一些常用的大数据解决方案&#xff1a; Apache Hadoop&#xff1a;Hadoop是一个开源的大数据处理框架&#xff0c;可以在商用硬件上处理大规模数据集。它包括HDFS…...

java版本企业电子招标采购系统源码Spring Cloud + Spring Boot +二次开发

一、立项管理 1、招标立项申请 功能点&#xff1a;招标类项目立项申请入口&#xff0c;用户可以保存为草稿&#xff0c;提交。 2、非招标立项申请 功能点&#xff1a;非招标立项申请入口、用户可以保存为草稿、提交。 3、采购立项列表 功能点&#xff1a;对草稿进行编辑&#x…...

Redis哨兵集群搭建及其原理

Redis哨兵集群搭建及其原理 1.Redis哨兵1.1.哨兵原理1.1.1.集群结构和作用1.1.2.集群监控原理1.1.3.集群故障恢复原理1.1.4.小结 2.搭建哨兵集群2.1.集群结构2.2.准备实例和配置2.3.启动2.4.测试 3.RedisTemplate3.1.引入依赖3.2.配置Redis地址3.3.配置读写分离 1.Redis哨兵 R…...

读书笔记--读数学之美有感

大概是在10年前&#xff0c;无意间读到吴军老师撰写得数学之美&#xff0c;感觉吴老师对数学与信息论的结合讲述的太好了&#xff0c;吴老师结合自身的多年工作经历将信息技术中用到的数学&#xff0c;特别是数学里面的很多概率论、线性代数、模型算法、编解码规则等&#xff0…...

[PyTorch][chapter 33][卷积神经网络]

前言 参考&#xff1a; 《数字图像处理与机器视觉》 第五章 空间域图像增强&#xff0c; 图像卷积&#xff1a; 空间域图像增强 图像增强是根据特定需要突出一副图像中的某些信息&#xff0c;同时削弱或去除 某些不需要信息的处理方法,其主要目的是是的处理后的图像对某种特定的…...

Lift, Splat, Shoot 论文学习

1. 解决了什么问题&#xff1f; LSS 在工业界具有非常重要的地位。自从 Tesla AI Day 上提出了 BEV 感知后&#xff0c;不少公司都进行了 BEV 工程化的探索。当前 BEV 下的感知方法大致分为两类&#xff1a; 自下而上&#xff1a;利用 transformer 的 query 机制&#xff0c;…...

【密码产品篇】动态口令系统密钥体系结构(SM3、SM4)

【密码产品篇】动态口令系统密钥体系结构&#xff08;SM3、SM4&#xff09; 动态口令是一种一次性口令机制&#xff0c;用户无须记忆口令&#xff0c;也无须手工更改口令。口令通过用户持有的客户端器件生成&#xff0c;并基于一定的算法与服务端形成同步&#xff0c;从而作为…...

PDF工具Adobe Arcrobat Pro DC下载安装教程

wx供重浩&#xff1a;创享日记 对话框发送&#xff1a;adobe 免费获取Adobe Arcrobat Pro DC安装包 Acrobat是一款PDF&#xff08;Portable Document Format&#xff0c;便携式文档格式&#xff09;编辑软件。借助它&#xff0c;您可以以PDF格式制作和保存你的文档 &#xff0c…...

大量从IT培训班出来的程序员们最后都怎样了?

在当今信息时代&#xff0c;IT行业越来越受到人们的关注。越来越多的年轻人选择进入IT行业学习编程技术&#xff0c;而IT培训班也因此应运而生。据统计&#xff0c;在中国&#xff0c;每年约有100万人通过各种途径进入IT行业。其中&#xff0c;通过IT培训班获得技能认证的人数也…...

【论文阅读笔记】Federated Unlearning with Knowledge Distillation

个人阅读笔记&#xff0c;如有错误欢迎指出 Arxiv 2022 [2201.09441] Federated Unlearning with Knowledge Distillation (arxiv.org) 问题&#xff1a; 法律要求客户端有随时要求将其贡献从训练中消除的权利 让全局模型忘记特定客户的贡献的一种简单方法是从头开始对模型进…...

常用MQ介绍与区别

RabbitMQ RabbitMQ是实现AMQP协议(0.9.1) 的消息中间件的一种&#xff0c;由RabbitMQ Technologies Ltd开发并且提供商业支持的&#xff0c;最初起源于金融系统&#xff0c;服务器端用Erlang语言编写&#xff0c;用于在分布式系统中存储转发消息&#xff0c;在易用性、扩展性、…...

今天面试招了个20K的人,从腾讯出来的果然都有两把刷子···

现在找个会自动化测试的人真是难呀&#xff0c;10个里面有8个写了会自动化&#xff0c;但一问就是三不知 公司前段时间缺人&#xff0c;也面了不少测试&#xff0c;前面一开始瞄准的就是中级的水准&#xff0c;也没指望来大牛&#xff0c;提供的薪资在15-20k&#xff0c;面试的…...

加速度传感器的量程估算

下面推导过程中包含一个重要的错误&#xff1a;sinx/x1没有错&#xff0c;但是这里的x是 t&#xff0c;当x t时&#xff0c;位移并非sin(t)&#xff0c;而是n*sin(t)&#xff0c;我稍後修訂。 在测震动和噪声的场合&#xff0c;现有的加速度传感器&#xff0c;需要客户提供加…...

Cloudflare 从 Nginx 到 Pingora:性能、效率与安全的全面升级

在互联网的快速发展中&#xff0c;高性能、高效率和高安全性的网络服务成为了各大互联网基础设施提供商的核心追求。Cloudflare 作为全球领先的互联网安全和基础设施公司&#xff0c;近期做出了一个重大技术决策&#xff1a;弃用长期使用的 Nginx&#xff0c;转而采用其内部开发…...

AI,如何重构理解、匹配与决策?

AI 时代&#xff0c;我们如何理解消费&#xff1f; 作者&#xff5c;王彬 封面&#xff5c;Unplash 人们通过信息理解世界。 曾几何时&#xff0c;PC 与移动互联网重塑了人们的购物路径&#xff1a;信息变得唾手可得&#xff0c;商品决策变得高度依赖内容。 但 AI 时代的来…...

面向无人机海岸带生态系统监测的语义分割基准数据集

描述&#xff1a;海岸带生态系统的监测是维护生态平衡和可持续发展的重要任务。语义分割技术在遥感影像中的应用为海岸带生态系统的精准监测提供了有效手段。然而&#xff0c;目前该领域仍面临一个挑战&#xff0c;即缺乏公开的专门面向海岸带生态系统的语义分割基准数据集。受…...

怎么让Comfyui导出的图像不包含工作流信息,

为了数据安全&#xff0c;让Comfyui导出的图像不包含工作流信息&#xff0c;导出的图像就不会拖到comfyui中加载出来工作流。 ComfyUI的目录下node.py 直接移除 pnginfo&#xff08;推荐&#xff09;​​ 在 save_images 方法中&#xff0c;​​删除或注释掉所有与 metadata …...

Caliper 配置文件解析:fisco-bcos.json

config.yaml 文件 config.yaml 是 Caliper 的主配置文件,通常包含以下内容: test:name: fisco-bcos-test # 测试名称description: Performance test of FISCO-BCOS # 测试描述workers:type: local # 工作进程类型number: 5 # 工作进程数量monitor:type: - docker- pro…...

PHP 8.5 即将发布:管道操作符、强力调试

前不久&#xff0c;PHP宣布了即将在 2025 年 11 月 20 日 正式发布的 PHP 8.5&#xff01;作为 PHP 语言的又一次重要迭代&#xff0c;PHP 8.5 承诺带来一系列旨在提升代码可读性、健壮性以及开发者效率的改进。而更令人兴奋的是&#xff0c;借助强大的本地开发环境 ServBay&am…...

libfmt: 现代C++的格式化工具库介绍与酷炫功能

libfmt: 现代C的格式化工具库介绍与酷炫功能 libfmt 是一个开源的C格式化库&#xff0c;提供了高效、安全的文本格式化功能&#xff0c;是C20中引入的std::format的基础实现。它比传统的printf和iostream更安全、更灵活、性能更好。 基本介绍 主要特点 类型安全&#xff1a…...

【Kafka】Kafka从入门到实战:构建高吞吐量分布式消息系统

Kafka从入门到实战:构建高吞吐量分布式消息系统 一、Kafka概述 Apache Kafka是一个分布式流处理平台,最初由LinkedIn开发,后成为Apache顶级项目。它被设计用于高吞吐量、低延迟的消息处理,能够处理来自多个生产者的海量数据,并将这些数据实时传递给消费者。 Kafka核心特…...

ui框架-文件列表展示

ui框架-文件列表展示 介绍 UI框架的文件列表展示组件&#xff0c;可以展示文件夹&#xff0c;支持列表展示和图标展示模式。组件提供了丰富的功能和可配置选项&#xff0c;适用于文件管理、文件上传等场景。 功能特性 支持列表模式和网格模式的切换展示支持文件和文件夹的层…...

Java数组Arrays操作全攻略

Arrays类的概述 Java中的Arrays类位于java.util包中&#xff0c;提供了一系列静态方法用于操作数组&#xff08;如排序、搜索、填充、比较等&#xff09;。这些方法适用于基本类型数组和对象数组。 常用成员方法及代码示例 排序&#xff08;sort&#xff09; 对数组进行升序…...