kubeadm部署k8s 1.26.0版本高可用集群

news2024/11/25 4:24:26

1.前言

本次搭建使用centos7.9系统,并且使用haproxy+keepalived作为高可用架构软件,haproxy实现k8s集群管理节点apiserver服务的负载均衡以实现集群的高可用功能,keepalived保障了hapxoy的高可用,容器引擎使用docker,需要额外引入cri-docker服务,且使用集群内置的etcd服务,并配置etcd的高可用集群,kubernetes使用版本为1.26.0

2.集群信息

主机名称IPPORTSERVICE
k8s-master0110.1.60.11916443、6443kubeadm、kubectl、kubelet、docker、cri-docker、keepalived、haproxy、etcd
k8s-master0210.1.60.12016443、6443kubeadm、kubectl、kubelet、docker、cri-docker、keepalived、haproxy、etcd
k8s-master0310.1.60.12116443、6443kubeadm、kubectl、kubelet、docker、cri-docker、keepalived、haproxy、etcd
k8s-node0110.1.60.122kubeadm、kubectl、kubelet、docker、cri-docker
k8s-node0210.1.60.123kubeadm、kubectl、kubelet、docker、cri-docker

3.系统基础环境配置(所有主机均要配置)

3.1关闭防火墙

systemctl stop firewalld && systemctl disable firewalld

3.2关闭selinux服务

setenforce 0  #临时关闭

sed -i 's/enforcing/disabled/' /etc/selinux/config #永久关闭

3.3关闭系统交换分区

swapoff -a #临时关闭

sed -ri 's/.*swap.*/#&/' /etc/fstab  #永久关闭

3.4设置主机名称(每台主机名称不一样按照表格上的主机名填)

hostnamectl set-hostname k8s-master01

3.5编辑hosts文件

cat > /etc/hosts << EOF

10.1.60.119 k8s-master01

10.1.60.120 k8s-master01

10.1.60.121 k8s-master01

10.1.60.122 k8s-node01

10.1.60.123 k8s-node02

10.1.60.124 k8s-mastervip

EOF

3.6配置时间同步

yum -y install chrony

systemctl strat chronyd && systemctl enbale chronyd

3.7配置ipvs

cat > /etc/sysconfig/modules/ipvs.modules <<EOF

#!/bin/bash

modprobe -- ip_vs

modprobe -- ip_vs_rr

modprobe -- ip_vs_wrr

modprobe -- ip_vs_sh

modprobe -- nf_conntrack_ipv4

EOF

#授权并生效ipvs配置

chmod 755 /etc/sysconfig/modules/ipvs.modules && bash /etc/sysconfig/modules/ipvs.modules

yum install -y ipset ipvsadm

cat <<EOF | sudo tee /etc/modules-load.d/k8s.conf

overlay

br_netfilter

EOF

sudo modprobe overlay && sudo modprobe br_netfilter

3.8将桥接的IPv4流量传递到iptables

cat > /etc/sysctl.d/k8s.conf << EOF

net.bridge.bridge-nf-call-ip6tables = 1

net.bridge.bridge-nf-call-iptables = 1

net.ipv4.ip_forward = 1

EOF

 sysctl --system  #配置生效

4.安装docker服务

4.1下载docker yum源

wget https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo -O /etc/yum.repos.d/docker-ce.repo

 4.2安装docker服务

yum -y install docker-ce

4.3启用docker并配置开机启动

systemctl start docker && systemctl enable docker

4.4配置docker镜像加速

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

{
  "registry-mirrors": ["https://sudzwtcw.mirror.aliyuncs.com"],

  "exec-opts": ["native.cgroupdriver=systemd"]

}

EOF

4.5重启docker服务

systemctl restart docker

4.6下载cri-dockerd rpm包

 wget https://github.com/Mirantis/cri-dockerd/releases/download/v0.3.1/cri-dockerd-0.3.1-3.el7.x86_64.rpm

4.7安装rpm包

rpm -ivh cri-dockerd-0.3.1-3.el7.x86_64.rpm

4.8配置cri-docker服务依赖镜像地址

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

注释以下配置项
#ExecStart=/usr/bin/cri-dockerd --container-runtime-endpoint fd://
新增以下配置项
ExecStart=/usr/bin/cri-dockerd --container-runtime-endpoint fd:// --pod-infra-container-image=registry.aliyuncs.com/google_containers/pause:3.7

4.9加载配置项服务,并配置cri-docker开机自启

systemctl daemon-reload

systemctl start cri-docker && systemctl enable cri-docker

5.安装k8s管理软件

5.1配置k8s yum源

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

[kubernetes]

name=Kubernetes

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

enabled=1

gpgcheck=0

repo_gpgcheck=0

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

EOF

5.2安装k8s管理软件

yum -y install kubelet-1.26.0 kubeadm-1.26.0 kubectl-1.26.0

systemctl enable kubelet

至此k8s基础环境已经配置完成,以上所有操作每台主机都要执行,也可以配置好一台主机后将环境复制,再更改一下即可

6.配置所有主机互相免密登录

ssh-keygen   #一路按回车键即可

ssh-copy-id -i ~/.ssh/id_rsa.pub 10.1.60.120   #将公钥拷贝到120主机上,实现免密登录

ssh-copy-id -i ~/.ssh/id_rsa.pub 10.1.60.121

ssh-copy-id -i ~/.ssh/id_rsa.pub 10.1.60.122

ssh-copy-id -i ~/.ssh/id_rsa.pub 10.1.60.123

#其余主机也按照上面的免密配置
7.配置haproxy服务(只在三台master主机上执行)

7.1安装haproxy服务

yum -y install haproxy

7.2备份haproxy配置文件

cp /etc/haproxy/haproxy.cfg /etc/haproxy/haproxy.cfg.bak

7.3编辑haproxy配置文件

vi /etc/haproxy/haproxy.cfg

global
    log         127.0.0.1 local2

    chroot      /var/lib/haproxy
    pidfile     /var/run/haproxy.pid
    maxconn     4000
    user        haproxy
    group       haproxy
    daemon

    # turn on stats unix socket
    stats socket /var/lib/haproxy/stats


defaults
    mode                    http
    log                     global
    option                  httplog
    option                  dontlognull
    option http-server-close
    option forwardfor       except 127.0.0.0/8
    option                  redispatch
    retries                 1
    timeout http-request    10s
    timeout queue           20s
    timeout connect         5s
    timeout client          20s
    timeout server          20s
    timeout http-keep-alive 10s
    timeout check           10s
#    maxconn                 3000


#frontend  main *:5000
#    acl url_static       path_beg       -i /static /images /javascript /stylesheets
#    acl url_static       path_end       -i .jpg .gif .png .css .js
#
#    use_backend static          if url_static
#    default_backend             app
#

frontend apiserver
    bind *:16443   #配置负载均衡监听端口
    mode tcp
    option tcplog
    default_backend apiserver   #调用backend配置


backend apiserver
    option httpchk GET /healthz
    http-check expect status 200
    mode tcp
    option ssl-hello-chk
    balance   roundrobin
        server  k8s-master01 10.1.60.119:6443 check   #配置apiserver的端口
        server  k8s-master02 10.1.60.120:6443 check
        server  k8s-master03 10.1.60.121:6443 check

 三台master节点haproxy的配置文件都一样

7.4启动haproxy服务并配置开机启动

systemctl start haproxy && systemctl enable haproxy

7.5查看haproxy配置是否生效

netstat -tlpn

8.配置keepalived服务 (只在三台master主机上执行)

8.1安装keepalived服务

yum -y install keepalived

8.2备份keepalived配置文件

cp /etc/keepalived/keepalived.conf  /etc/keepalived/keepalived.conf.bak

8.3编辑keepalived配置文件

vi /etc/keepalived/keepalived.conf

! Configuration File for keepalived

global_defs {
   script_user root
   enable_script_security
   notification_email {
     acassen@firewall.loc
     failover@firewall.loc
     sysadmin@firewall.loc
   }
   notification_email_from Alexandre.Cassen@firewall.loc
   smtp_server 192.168.200.1
   smtp_connect_timeout 30
   router_id k8s-master01
  #vrrp_skip_check_adv_addr
  #vrrp_strict
  #vrrp_garp_interval 0
  #vrrp_gna_interval 0
}

vrrp_script check_haproxy {
   script "/etc/keepalived/check-haproxy.sh"
   interval 3
   weight -2
}

vrrp_instance VI_1 {
    state MASTER
    interface ens160
    virtual_router_id 53
    priority 100
    advert_int 1
    authentication {
        auth_type PASS
        auth_pass 1111
    }
    virtual_ipaddress {
        10.1.60.124/24
    }
    track_script {
        check_haproxy
    }
}

这是119 master节点的配置文件,另外两个文件只需要修改以下内容即可,其余内容都和上面的配置文件一致

另外两个节点中只需要修改上面119 master配置文件中的以下三项即可

120 master

router_id k8s-master02

state BACKUP

priority 90

121 master

router_id k8s-master03

state BACKUP

priority 80

 8.4编辑keepalived配置文件中的监控脚本

vi /etc/keepalived/check-haproxy.sh

#!/bin/bash
a=`netstat -tlpn |grep :16443|grep -v grep|wc -l`
if [ $a -eq 0 ]; then
   systemctl start haproxy
   sleep 3
   if [ $a -eq 0 ]; then
      systemctl stop keepalived
   fi
fi

8.5给脚本授权

chmod +x /etc/keepalived/check-haproxy.sh

8.6启动keepalived服务并配置开机自启

systemctl start keepalived && systemctl enable keepalived

8.7在119 master节点查看虚拟ip是否生效

ip add

9. 初始化k8s集群(只在119节点上执行)

kubeadm init --control-plane-endpoint=10.1.60.124:16443 --image-repository registry.aliyuncs.com/google_containers --kubernetes-version v1.26.0 --service-cidr=10.96.0.0/12 --pod-network-cidr=10.244.0.0/16 --cri-socket=unix:///var/run/cri-dockerd.sock --upload-certs

--control-plane-endpoint: 指定 Kubernetes 控制平面的 IP 地址和端口号,这个 IP 地址是集群中某个节点的 IP 地址,这个节点将会成为 Kubernetes 控制平面的主节点,填写虚拟的vip地址和haproxy的负载均衡端口

--image-repository:指定 Kubernetes 组件镜像所在的仓库地址。这里使用的是阿里云的镜像仓库,这样可以加速 Kubernetes 组件的下载和安装

--kubernetes-version: 指定 Kubernetes 的版本号,这里使用的是 v1.26.0 版本

--service-cidr: 指定 Kubernetes Service 的 IP 地址段。这个 IP 地址段用于分配给 Service,用于 Service 之间的通信

--pod-network-cidr: 指定 Kubernetes Pod 的 IP 地址段。这个 IP 地址段用于分配给 Pod,用于 Pod 之间的通信

--cri-socket: 指定容器运行时的 Socket 文件路径,这里使用的是 Docker 的 CRI

--upload-certs: 上传控制平面证书。这个参数会在初始化控制平面节点时自动生成证书,并将证书上传到 etcd 中,以确保集群的安全性

集群初始化完成后会输出一部分内容需要按照提示执行,我这里忘记截图了,执行的内容为以下步骤,需要执行完后节点才生效

mkdir -p $HOME/.kube

sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config

sudo chown $(id -u):$(id -g) $HOME/.kube/config

export KUBECONFIG=/etc/kubernetes/admin.conf

执行完后查看节点状态

kubectl get nodes

此时已经可以查看到master节点,但是状态还是notready,这是因为还没有安装网络插件

10.将另外两个控制节点加入集群

10.1在120 master节点上新建以下目录

mkdir -p /etc/kubernetes/pki/etcd/

10.2在119 master节点上执行以下命令拷贝证书到120 master节点上

scp /etc/kubernetes/pki/ca.crt root@10.1.60.120:/etc/kubernetes/pki/

scp /etc/kubernetes/pki/ca.key root@10.1.60.120:/etc/kubernetes/pki/

scp /etc/kubernetes/pki/sa.key root@10.1.60.120:/etc/kubernetes/pki/

scp /etc/kubernetes/pki/sa.pub root@10.1.60.120:/etc/kubernetes/pki/

scp /etc/kubernetes/pki/front-proxy-ca.crt root@10.1.60.120:/etc/kubernetes/pki/

scp /etc/kubernetes/pki/front-proxy-ca.key root@10.1.60.120:/etc/kubernetes/pki/

scp /etc/kubernetes/pki/etcd/ca.crt root@10.1.60.120:/etc/kubernetes/pki/etcd/

scp /etc/kubernetes/pki/etcd/ca.key root@10.1.60.120:/etc/kubernetes/pki/etcd/

10.3在119 master查看加入集群的token

kubeadm token create --print-join-command

10.4在120 master执行以上输出的token并增加一些参数加入集群

kubeadm join 10.1.60.124:16443 --token zj1hy1.ufpwaj7wxhymdw3a --discovery-token-ca-cert-hash sha256:9636d912ddb2a9b1bdae085906c11f6839bcf060f8b9924132f6d82b8aaefecd --control-plane --cri-socket unix:///var/run/cri-dockerd.sock

--control-plane:是以控制节点的身份加入集群,不增加此参数是以工作节点的身份加入集群

--cri-socket:指定容器引擎

10.5执行加入集群后的目录创建(执行完上一步的命令后会输出提示)

mkdir -p $HOME/.kube

sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config

sudo chown $(id -u):$(id -g) $HOME/.kube/config

export KUBECONFIG=/etc/kubernetes/admin.conf

10.6执行以下命令查看是否加入成功

kubectl get nodes

剩下的121 master节点重复以上的步骤加入集群即可

11.将工作节点加入集群

11.1在任意master节点上执行以下命令查看加入集群的token

kubeadm token create --print-join-command

11.2执行master节点生成的token并增加一些参数加入集群

kubeadm join 10.1.60.124:16443 --token zj1hy1.ufpwaj7wxhymdw3a --discovery-token-ca-cert-hash sha256:9636d912ddb2a9b1bdae085906c11f6839bcf060f8b9924132f6d82b8aaefecd  --cri-socket unix:///var/run/cri-dockerd.sock

可以看到控制节点加入集群和工作节点加入集群的区别就是有无--control-plane参数

11.3在任意master节点上执行以下命令查看集群信息

kubectl get nodes

每个node节点都执行以上步骤即可加入集群

12.安装网络插件

下载flannel的yaml文件

wget https://github.com/coreos/flannel/raw/master/Documentation/kube-flannel.yml

使用此yaml文件

kubectl create -f kube-flannel.yml

等flannel容器都运行,可通过以下命令查看

kubectl get pods -n kube-flannel

flannel都启动后查看集群状态就可以看到都已经是ready了

kubectl get nodes
13.配置etcd为高可用

13.1编辑etcd yaml文件(每台master节点均需执行)

vi /etc/kubernetes/manifests/etcd.yaml

更改以下配置项 
- --initial-cluster=k8s-master01=https://10.1.60.119:2380
更改为以下内容
- --initial-cluster=k8s-master01=https://10.1.60.119:2380,k8s-master02=https://10.1.60.120:2380,k8s-master03=https://10.1.60.121:2380

13.2重启kubelet服务(每台master节点均需执行)

systemctl restart kubelet

13.3运行etcd容器(在任意控制节点执行)

docker run --rm -it --net host -v /etc/kubernetes:/etc/kubernetes registry.cn-hangzhou.aliyuncs.com/google_containers/etcd:3.5.4-0 etcdctl --cert /etc/kubernetes/pki/etcd/peer.crt --key /etc/kubernetes/pki/etcd/peer.key --cacert /etc/kubernetes/pki/etcd/ca.crt member list

13.4查看etcd集群状态

docker run --rm -it --net host -v /etc/kubernetes:/etc/kubernetes registry.cn-hangzhou.aliyuncs.com/google_containers/etcd:3.5.4-0 etcdctl --cert /etc/kubernetes/pki/etcd/peer.crt --key /etc/kubernetes/pki/etcd/peer.key --cacert /etc/kubernetes/pki/etcd/ca.crt --endpoints=https://10.1.60.119:2379,https://10.1.60.120:2379,https://10.1.60.121:2379 endpoint health --cluster

 docker run --rm -it --net host -v /etc/kubernetes:/etc/kubernetes registry.cn-hangzhou.aliyuncs.com/google_containers/etcd:3.5.4-0 etcdctl -w table --cert /etc/kubernetes/pki/etcd/peer.crt --key /etc/kubernetes/pki/etcd/peer.key --cacert /etc/kubernetes/pki/etcd/ca.crt --endpoints=https://10.1.60.119:2379,https://10.1.60.120:2379,https://10.1.60.121:2379 endpoint status --cluster

至此k8s高可用集群配置完成 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/555177.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

迁移iceberg:一.查看所需要的资源。

一&#xff1a;内存&#xff0c;CPU&#xff0c;核数&#xff0c;线程&#xff0c;硬盘。 1. cpu&#xff0c;核素&#xff0c;线程。 cpu cpu就相当于人类的大脑&#xff0c;是处理数据的地方。 cpu由以下三个组成。 控制器。由控制单元、指令译码器、指令寄存器组成。运算…

戴尔 dell Inspiron3670电脑 Hackintosh 黑苹果efi引导文件

原文来源于黑果魏叔官网&#xff0c;转载需注明出处。&#xff08;下载请直接百度黑果魏叔&#xff09; 硬件型号驱动情况 主板B360 处理器i5-9400已驱动 内存8GB已驱动 硬盘KBG40ZNS256G NVMe KIOXIA 256GB ST1000DM010 1TB已驱动 显卡UHD630(1.05GHZ)已驱动 声卡Realte…

Node模拟慢接口

为了快速搭建一个后台服务&#xff0c;并模拟慢接口&#xff0c;我们选择 Koa 这个轻量的 Node 框架。 快速开始 Koa 使用起来非常方便&#xff0c;只需要&#xff1a; 新建项目文件夹&#xff1a;mkdir koa-server创建 package.json&#xff1a;npm init -y安装 Koa&#x…

夏季门店做好这3点,销量翻一番!

现在正值5月末&#xff0c;天气开始炎热起来。在酷热的夏日&#xff0c;很多人都只想呆在家里吹空调刷手机&#xff0c;外出消费的人数开始变少。 面对越来越炎热的天气&#xff0c;我们这些做实体店生意的该如何应对呢&#xff1f;想要在夏季客流不减反增&#xff0c;销量翻倍…

【高分论文密码】大尺度空间模拟预测和数字制图技术和不确定性分析

目录 专题一 R语言空间数据介绍及数据挖掘关键技术 专题二 R语言空间数据高级处理技术 专题三 R语言多维时空数据处理技术、数据清洗整合和时间序列分析 专题四 R语言地统计与空间自相关、空间插值方法 专题五 R语言机器学习与空间模型预测及不确定性评估 专题六 R语言空…

【DRF配置管理】如何使用序列化:验证码、注册和登录

原文作者&#xff1a;我辈李想 版权声明&#xff1a;文章原创&#xff0c;转载时请务必加上原文超链接、作者信息和本声明。 DRF应用和管理 【DRF配置管理】Django安装DRF框架并生成openapi风格文档 【DRF配置管理】如何实现JWT身份验证 【DRF配置管理】如何使用序列化:验证码…

如何设计正确的SpringBoot接口访问频率?

最近在基于SpringBoot做一个面向普通用户的系统&#xff0c;为了保证系统的稳定性&#xff0c;防止被恶意攻击&#xff0c;我想控制用户访问每个接口的频率。为了实现这个功能&#xff0c;可以设计一个annotation&#xff0c;然后借助AOP在调用方法之前检查当前ip的访问频率&am…

SpringBoot——对于属性中的时间和文件的单位进行设置

简单介绍&#xff1a; 在之前我们编写配置文件的时候&#xff0c;有时候多种技术的配置的属性值的默认属性的单位不同&#xff0c;比如在Tomcat中&#xff0c;对于最大连接时间就是以毫秒为单位&#xff0c;但是对于session的过期时间就是以分钟为单位&#xff0c;像这种单位不…

java线程池ThreadPoolExecutor使用

文章目录 一、简介1. 背景2. Executor接口介绍 二、使用Executors工厂创建线程池1. 简介2. 使用newCachedThreadPool()方法创建无界线程池3. 验证newCachedThreadPool()方法创建的线程池和线程复用特性4. 使用newCachedThreadPool(ThreadFactory)定制线程工厂5. 使用newCachedT…

怎么把音乐的伴奏提取出来?分享几个音乐伴奏提取的方法!

在这个数字时代&#xff0c;人人都有机会成为视频创作者。如果你也想发布自己剪辑的短视频&#xff0c;就需要了解视频编辑的相关操作。其中一个重要的操作是提取人声&#xff0c;将音频中人物的声音从杂音中分离出来&#xff0c;使声音更加清晰。那么&#xff0c;如何从音频中…

GPT时代,最令人担心的其实是“塔斯马尼亚效应”

目录 教育到底教什么&#xff1f; 过度依赖GPT可能导致文明退化 GPT可以帮助人类破解“学海无涯极限”悖论 春季学期伊始&#xff0c;全球各地的老师们如临大敌&#xff0c;因为学生们带着ChatGPT杀过来了。Study.com的调研显示&#xff0c;每10个学生中就有超过9个知道Chat…

基于FPGA的超声波测距——数码管显示

文章目录 前言一、超声波模块介绍1、产品特点2、超声波模块的时序图 二、系统设计1、系统框图2、源码3、RTL视图4、效果 三、总结四、参考资料 前言 环境&#xff1a; 1、Quartus18.1 2、vscode 3、板子型号&#xff1a;EP4CE6F17C8N 4、超声波模块&#xff1a;HC_SR04 要求&am…

【持续集成CI/持续部署CD】二、Docker安装Maven私服Nexus

本文是关于通过 Docker 进行安装部署 Nexus3 私服的快速入门和简单使用案例。 一、安装 1. 通过 docker 获取最新版本的 nexus3 镜像 docker pull sonatype/nexus3创建 docker 镜像到宿主机的磁盘映射目录Linux:mkdir -p /home/nexus/datachmod 777 -R /home/nexus/dataWind…

ThingsBoard的Actor系统如何初始化

1、概述 大家都知道ThingsBoard中使用了Actor,使用这个可以避免多线程并发问题,上一篇我查询资料总结了一下关于Actor的内容,actor不是通过new 一个对象来创建,而是通过一个ActorSystem来创建,下面我将带领大家来学习ThingsBoard启动时Actor如何创建。 2、ThingsBoard的…

【建议收藏】|某大型金融集团内部数据治理实战总结

对于你喜欢的事想去做的事,你必须付出百分之一千的努力你知道这一路可能会有很多困难&#xff0c;会有坚持不下去想要放弃的时候也有时候&#xff0c;你不一定会得到你想要的结果,但你—定要相信。 公众号&#xff1a;857Hub 转发领取PDF全集一份~~~ 数据治理 数字转型&…

传输层协议

目录 传输层 端口号 端口号范围划分 认识知名端口号(Well-Know Port Number) netstat pidof UDP协议UDP协议端格式​编辑 UDP的特点 面向数据报 UDP的缓冲区 UDP使用注意事项 基于UDP的应用层协议 TCP协议 TCP协议段格式 确认应答(ACK)机制 超时重传机制 连…

LDR6020 Type-C PD显示器方案简介

笔记本的视频输出接口一般有VGA、HDMI、DP、Type-C四种。 自从战66一代之后&#xff0c;VGA就基本上已经销声匿迹了&#xff0c;所以目前还是以HDMI和DP接口更为常见。 如果你的笔记本只支持HDMI1.4&#xff0c;那么你外接显示器的上限就只能是2K60或者是1080P144&#xff0c;…

20230522-win11删除文件失败-需要SYSTEM提供的权限

20230522-win11删除文件失败-需要SYSTEM提供的权限 一、软件环境 标签&#xff1a;win11 SYSTEM权限分栏&#xff1a;windows编译器&#xff1a;VS2019 二、问题描述 删除D:\WindowsApps\36186RuoFan.USB_5.8.1.0_x64__q3e6crc0w375t目录下的文件时&#xff0c;提示【文件访…

网络安全合规-数据分类分级具体操作

数据的安全防护&#xff0c;前提在于数据的分级分类。不同类别&#xff0c;不同安全等级的数据&#xff0c;防护手段和要求也是不尽相同的。 数据分类分级整体工作内容&#xff1a; 基础数据资产盘点 通过业务调研及技术探测&#xff0c;对企业的数据库进行全面扫描&#xff0c…

【leetcode】989.数组形式的整数加法

在刷题过程中&#xff0c;遇到此题&#xff0c;自己水平有限做不出来&#xff0c;查看众多题解&#xff0c;找到一个通俗易懂的思路&#xff0c;在此我将分享给大家这个解题过程&#xff01; 题目描述&#xff1a; 整数的 数组形式 num 是按照从左到右的顺序表示其数字的数组…