K8S从0完整搭建

article/2025/7/20 18:16:01

介绍

以下搭建的环境使用的是VMware虚拟机。这里大家可以自行选择。K8S每个版本可能都会有差异,请保证相关组件的兼容性。

准备工具

部署版本介绍

名称

版本

描述

centos

7.9

docker

20.10.8

k8s

v1.20.10

calico

v3.20.0

K8S节点规划

3个master,两个worker节点

机器

IP(示例)

描述

master01

10.17.0.119

K8S主节点

master02

10.17.0.120

K8S主节点

master03

10.17.0.121

K8S主节点

worker01

10.17.0.122

工作节点

worker02

10.17.0.123

工作节点

CentOS镜像下载

  • 官方网站

https://www.centos.org/download/

  • 清华大学镜像网站下载

https://mirrors.tuna.tsinghua.edu.cn/centos/

接下来进入到centos系统操作

添加阿里云源

备份一下原数据

  备份 /etc/yum.repos.d/ 内的文件(CentOS 7 及之前为 CentOS-Base.repo,CentOS 8 为

  CentOS-Linux-*.repo)

cp /etc/yum.repos.d/*.repo /etc/yum.repos.d/*.repo.bak
添加阿里云源(可参照下方内容)
vi   /etc/yum.repos.d/CentOS-Base.repo
#
# The mirror system uses the connecting IP address of the client and the
# update status of each mirror to pick mirrors that are updated to and
# geographically close to the client.  You should use this for CentOS updates
# unless you are manually picking other mirrors.
#
# If the mirrorlist= does not work for you, as a fall back you can try the 
# remarked out baseurl= line instead.
#
#[base]
name=CentOS-$releasever - Base - mirrors.aliyun.com
failovermethod=priority
baseurl=http://mirrors.aliyun.com/centos/$releasever/os/$basearch/http://mirrors.aliyuncs.com/centos/$releasever/os/$basearch/http://mirrors.cloud.aliyuncs.com/centos/$releasever/os/$basearch/
gpgcheck=1
gpgkey=http://mirrors.aliyun.com/centos/RPM-GPG-KEY-CentOS-7#released updates 
[updates]
name=CentOS-$releasever - Updates - mirrors.aliyun.com
failovermethod=priority
baseurl=http://mirrors.aliyun.com/centos/$releasever/updates/$basearch/http://mirrors.aliyuncs.com/centos/$releasever/updates/$basearch/http://mirrors.cloud.aliyuncs.com/centos/$releasever/updates/$basearch/
gpgcheck=1
gpgkey=http://mirrors.aliyun.com/centos/RPM-GPG-KEY-CentOS-7#additional packages that may be useful
[extras]
name=CentOS-$releasever - Extras - mirrors.aliyun.com
failovermethod=priority
baseurl=http://mirrors.aliyun.com/centos/$releasever/extras/$basearch/http://mirrors.aliyuncs.com/centos/$releasever/extras/$basearch/http://mirrors.cloud.aliyuncs.com/centos/$releasever/extras/$basearch/
gpgcheck=1
gpgkey=http://mirrors.aliyun.com/centos/RPM-GPG-KEY-CentOS-7#additional packages that extend functionality of existing packages
[centosplus]
name=CentOS-$releasever - Plus - mirrors.aliyun.com
failovermethod=priority
baseurl=http://mirrors.aliyun.com/centos/$releasever/centosplus/$basearch/http://mirrors.aliyuncs.com/centos/$releasever/centosplus/$basearch/http://mirrors.cloud.aliyuncs.com/centos/$releasever/centosplus/$basearch/
gpgcheck=1
enabled=0
gpgkey=http://mirrors.aliyun.com/centos/RPM-GPG-KEY-CentOS-7#contrib - packages by Centos Users
[contrib]
name=CentOS-$releasever - Contrib - mirrors.aliyun.com
failovermethod=priority
baseurl=http://mirrors.aliyun.com/centos/$releasever/contrib/$basearch/http://mirrors.aliyuncs.com/centos/$releasever/contrib/$basearch/http://mirrors.cloud.aliyuncs.com/centos/$releasever/contrib/$basearch/
gpgcheck=1
enabled=0
gpgkey=http://mirrors.aliyun.com/centos/RPM-GPG-KEY-CentOS-7
更新一下yum
yum update

同步服务器时间

安装chrony

yum -y install chrony

添加国内NTP服务器

echo "server ntpl.aliyun.com iburst">> /etc/chrony.conf
echo "server ntp2,aliyun.com iburst">> /etc/chrony.conf
echo "server ntp3.aliyun.com iburst" >> /etc/chrony.conf
echo "server ntp,tuna.tsinghua.edu.cn iburst">> /etc/chrony.conftail -n 4 /etc/chrony.confsystemctl restart chronyd

设置定时任务,每分钟重启chrony服务,进行时间校对

echo "* * * * * /user/bin/systemctl restart chronyd" | tee -a /var/spool/cron/root

K8S环境准备

每个机器配置一下host,方便访问

cat >> /etc/hosts <<OFF
10.17.0.119 master01
10.17.0.120 master02
10.17.0.121 master03
10.17.0.122 worker01
10.17.0.123 worker02
OFF

关闭交换分区SWAP

如果不关闭,默认配置的 kubelet 将无法启动

#仅仅在当前环境关闭,重启后恢复。
swapoff -a#关闭swap放到启动文件中,下次启动自动关闭sed -i 's/.*swap.*/#&/' /etc/fstab

关闭防火墙

因为K8S涉及很多的端口要启动,需要去官网查哪些端口要开启,如果不熟悉的话,不容易处理。所以这里直接关掉防火墙。假如了解K8S用到的端口,可以选择性开放也行。

#禁用 SELINUX
setenforce 0
sed -i "s/^SELINUX=enforcing/SELINUX=disabled/g" /etc/sysconfig/selinux
sed -i "s/^SELINUX=enforcing/SELINUX=disabled/g" /etc/selinux/config
sed -i "s/^SELINUX=permissive/SELINUX=disabled/g" /etc/sysconfig/selinux
sed -i "s/^SELINUX=permissive/SELINUX=disabled/g" /etc/selinux/config#关闭并设置开机关闭查看服务状态
systemctl stop firewalld.service
systemctl disable firewalld.service
systemctl status firewalld.service

配置ip转发

通常主机不转发ip包,这里设置ipv4和ipv6进行转发

#创建/etc/sysctl.d/k8s.conf 文件,添加如下内容:
cat >>/etc/sysctl.d/k8s.conf<< OFF
net.bridge.bridge-nf-call-ip6tables = 1
net.bridge.bridge-nf-call-iptables = 1
net.ipv4.ip_forward = 1
OFF#执行如下命令使修改生效:
modprobe br_netfilter
sysctl -p /etc/sysctl.d/k8s.conf

加载ipvs模块

这个是K8S在做负载均衡会用到的模块

modprobe -- ip_vs
modprobe -- ip_vs_rr
modprobe -- ip_vs_wrr
modprobe -- ip_vs_sh
modprobe -- nf_conntrack_ipv4
lsmod | grep ip_vs
lsmod | grep nf_conntrack_ipv4

如果需要涉及看K8S负载均衡链路,ipvsadmin和ipset会用到

#安装ipvs管理模块
yum install -y ipvsadm ipset

安装Docker

安装必要的一些系统工具

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

设置stable镜像仓库aliyun

如果网络问题,设置失败,可以单独下载后安装。

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

更新yum软件包索引
 

yum makecache fast

查看Docker版本列表

#从高到低列出 Docker-ce 的版本
yum list docker-ce.x86_64 --showduplicates |sort -r 

安装Docker

如果不指定版本号则默认安装最新的,其中containerd.io安装的目的是让K8S能使用Docker作为虚拟化容器。高版本K8S已经不把Docker作为默认容器了。所以安装的时候需要把它装上

yum install docker-ce-20.10.8 docker-ce-cli-20.10.8 containerd.io-1.4.10 -y –-allowerasing

如果是Centos8,需要卸载Podman

yum remove podman -y

启动Docker,设置开机启动

systemctl start docker
systemctl enable docker --now

查看docker信息

docker info

设置镜像加速

vi /etc/docker/daemon.json{"registry-mirrors":["https://2lqq34jg.mirror.aliyuncs.com"],"exec-opts": ["native.cgroupdriver=systemd"],"live-restore": true
}

重启Docker

systemctl daemon-reloadsystemctl restart docker

Kubeadm, Kubelet, Kubectl 安装 (master and node)

kubeadm 是 kubernetes 的集群安装工具,能够快速安装 kubernetes 集群。能完成下面的拓扑安装

  • 单节点 k8s (1+0)

  • 单 master 和多 node 的 k8s 系统(1+n)

  • Mater HA 和多 node 的 k8s 系统(m*1+n)

kubeadm 在整个 K8S 架构里的位置

添加软件源信息

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=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#更新缓存
yum makecache

查看kubeadm版本信息

yum list kubeadm --showduplicates |sort -r

安装kubeadm

yum install kubeadm-1.20.10 kubectl-1.20.10 kubelet-1.20.10 -y

查看版本

kubeadm version
kubectl version

启动kubelet,设置开机启动

注意这里kubelet的状态还是不可用的,初始化集群时,会变为可用。

systemctl daemon-reload
systemctl enable --now kubelet
systemctl start kubelet.service
systemctl enable kubelet.service
systemctl status kubelet

集群安装

提前拉取镜像

这里网络环境好的,可以略过,也可以提前拉取

kubeadm config images pull --image-repository="registry.aliyuncs.com/google_containers" --kubernetes-version=v1.20.10

命令行初始化集群

pod地址(可选):--pod-network-cidr=172.18.207.0/16

service地址(可选):--service-cidr=10.233.0.0/16

镜像地址(可选):--image-repository registry.aliyuncs.com/google_containers

kubeadm init --image-repository registry.aliyuncs.com/google_containers --kubernetes-version=v1.22.10 --pod-network-cidr=172.18.207.0/16 --service-cidr=10.233.0.0/16 

初始化成功内容:

注意:(1)需要保存第5-7行内容,使用集群。(2)保存19-20行内容,节点执行加入集群要用到

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/.kubesudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/configsudo chown $(id -u):$(id -g) $HOME/.kube/configAlternatively, if you are the root user, you can run:export KUBECONFIG=/etc/kubernetes/admin.confYou 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 10.17.0.119:6443 --token vm59km.0djj6xlhrye4u8ts \--discovery-token-ca-cert-hash sha256:bb70d2d1851de92cc946105141ede212d769a22db119ce4a6d0e62d2fbe1b637 

设置集群访问方式

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

执行kubectl get pod -A正常打印。

NAMESPACE     NAME                                            READY   STATUS    RESTARTS   AGE
kube-system   coredns-59d64cd4d4-s9lwj                        0/1     Pending   0          6m1s
kube-system   coredns-59d64cd4d4-w64jk                        0/1     Pending   0          6m1s
kube-system   etcd-localhost.localdomain                      1/1     Running   0          6m16s
kube-system   kube-apiserver-localhost.localdomain            1/1     Running   0          6m16s
kube-system   kube-controller-manager-localhost.localdomain   1/1     Running   0          6m16s
kube-system   kube-proxy-4sc9n                                1/1     Running   0          6m2s
kube-system   kube-scheduler-localhost.localdomain            1/1     Running   0          6m16s

获取组件信息

kubectl get cs #此时会发现controller-manager和scheduler不健康.

原因:controller-manager和scheduler禁用了非安全端口

解决:屏蔽端口禁用(屏蔽对应文件中此行代码:- --port=0),解决问题,详情参考下方解决方案。

NAME                 STATUS      MESSAGE                                                                                       ERROR
controller-manager   Unhealthy   Get "http://127.0.0.1:10252/healthz": dial tcp 127.0.0.1:10252: connect: connection refused   
scheduler            Unhealthy   Get "http://127.0.0.1:10251/healthz": dial tcp 127.0.0.1:10251: connect: connection refused   
etcd-0               Healthy     {"health":"true"}   

解决方案:

  • 查看文件
ll /etc/kubernetes/manifests-rw------- 1 root root 2221 Oct 27 06:24 etcd.yaml
-rw------- 1 root root 3340 Oct 27 06:24 kube-apiserver.yaml
-rw------- 1 root root 2826 Oct 27 06:24 kube-controller-manager.yaml
-rw------- 1 root root 1413 Oct 27 06:24 kube-scheduler.yaml
  • 将kube-scheduler.yml、kube-controller-manager.yml中的--port=0注释(每个节点都需要修改)

  • 修改kube-proxy的网络模式,默认为空,需要设置为ipvs(1.12以前是iptables,后面有ipvs)

kubectl edit configmap kube-proxy -n kube-system

安装网络插件calico

获取yaml文件

wget --no-check-certificate https://projectcalico.docs.tigera.io/archive/v3.20/manifests/calico.yaml

网络不好的可以用下方的资源

修改calico.yaml

# 在 - name: CLUSTER_TYPE 下方添加如下内容
- name: CLUSTER_TYPEvalue: "k8s,bgp"# 下方为新增内容
- name: NODEIP valueFrom:fieldRef:apiVersion: v1fieldPath: status.hostIP
- name: IP_AUTODETECTION_METHODvalue: can-reach=$(NODEIP)

配置解释

NODEIP 环境变量

  1.         通过 fieldRef 引用,NODEIP 被设置为当前节点的 hostIP,也就是节点的实际 IP 地址。
  2.         status.hostIP 会自动获取当前节点的主机 IP,这在多节点环境中确保每个节点使用自身的 IP 地址。

IP_AUTODETECTION_METHOD

  1.   IP_AUTODETECTION_METHOD 是 Calico 用来检测和选择节点 IP 地址的参数。

  2.   设置为 can-reach=$(NODEIP) 表示 Calico 将尝试连接到该 NODEIP,并根据路由条件找到合适的 IP。这种方式常用于具有多网卡或复杂路由的环境,可以保证 Calico 选择的 IP 地址在集群内部可达。

安装calico

kubectl apply -f calico.yaml

其它master操作

在master02和master03创建证书存放目录

mkdir -pv /etc/kubernetes/pki/etcd && mkdir -pv ~/.kube/

拷贝master01节点的证书到master02、master03

#在master01执行
scp /etc/kubernetes/pki/ca.* /etc/kubernetes/pki/sa.* /etc/kubernetes/pki/front-proxy-ca.*  root@master02:/etc/kubernetes/pki/
scp /etc/kubernetes/pki/etcd/ca.* root@master02:/etc/kubernetes/pki/etcd/scp /etc/kubernetes/pki/ca.* /etc/kubernetes/pki/sa.* /etc/kubernetes/pki/front-proxy-ca.*  root@master03:/etc/kubernetes/pki/
scp /etc/kubernetes/pki/etcd/ca.* root@master03:/etc/kubernetes/pki/etcd/

master01生成集群token(或者初始化时保存的token)

kubeadm token create --print-join-command

master02、master03加入集群

kubeadm join 10.17.0.119:6443 --token eaqaum.22fdpncfy7qheke3     --discovery-token-ca-cert-hash sha256:407f37d2f640cbd48c0dcbd4868a4c49978921d79496b921f34d3fe1c092b9e6 --control-plane

master02、master03配置集群控制信息

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

配置etcd高可用

etcd默认的yaml文件–initial-cluster只指定自己,所以需要修改为指定我们的三台Master节点主机:

  • master01节点操作

sed -i 's|--initial-cluster=master01=https://10.17.0.119:2380|--initial-cluster=master01=https://10.17.0.119:2380,master02=https://10.17.0.120:2380,master03=https://10.17.0.121:2380|' /etc/kubernetes/manifests/etcd.yaml

其它两个节点同样将相关的节点添加即可。

检查三个master的–initial-cluster配置项包含三个集群信息。修改完之后完整的信息如下:

  • master01节点

spec:containers:- command:- etcd- --advertise-client-urls=https://10.17.0.119:2379- --cert-file=/etc/kubernetes/pki/etcd/server.crt- --client-cert-auth=true- --data-dir=/var/lib/etcd- --initial-advertise-peer-urls=https://10.17.0.119:2380- --initial-cluster=master01=https://10.17.0.119:2380,master02=https://10.17.0.120:2380,master03=https://10.17.0.121:2380- --key-file=/etc/kubernetes/pki/etcd/server.key- --listen-client-urls=https://127.0.0.1:2379,https://10.17.0.119:2379- --listen-metrics-urls=http://127.0.0.1:2381- --listen-peer-urls=https://10.17.0.119:2380
  • master02节点:

spec:containers:- command:- etcd- --advertise-client-urls=https://10.17.0.120:2379- --cert-file=/etc/kubernetes/pki/etcd/server.crt- --client-cert-auth=true- --data-dir=/var/lib/etcd- --initial-advertise-peer-urls=https://10.17.0.120:2380- --initial-cluster=master02=https://10.17.0.120:2380,master01=https://10.17.0.119:2380,master03=https://10.17.0.121:2380- --initial-cluster-state=existing- --key-file=/etc/kubernetes/pki/etcd/server.key- --listen-client-urls=https://127.0.0.1:2379,https://10.17.0.120:2379- --listen-metrics-urls=http://127.0.0.1:2381- --listen-peer-urls=https://10.17.0.120:2380
  • master03节点

spec:containers:- command:- etcd- --advertise-client-urls=https://10.17.0.121:2379- --cert-file=/etc/kubernetes/pki/etcd/server.crt- --client-cert-auth=true- --data-dir=/var/lib/etcd- --initial-advertise-peer-urls=https://10.17.0.121:2380- --initial-cluster=master03=https://10.17.0.121:2380,master02=https://10.17.0.120:2380,master01=https://10.17.0.119:2380- --initial-cluster-state=existing- --key-file=/etc/kubernetes/pki/etcd/server.key- --listen-client-urls=https://127.0.0.1:2379,https://10.17.0.121:2379- --listen-metrics-urls=http://127.0.0.1:2381- --listen-peer-urls=https://10.17.0.121:2380

master参与工作负载

master默认不参与工作负载,初始化集群时可以去除污点,也可以初始化后按下方操作去除污点。

  1. 查看污点

     kubectl describe node 节点|grep Taint
  2. 去除污点

kubectl taint nodes 节点 node-role.kubernetes.io/master-

worker节点加入集群

执行join脚本

ubeadm join 10.17.0.119:6443 --token vm59km.0djj6xlhrye4u8ts \--discovery-token-ca-cert-hash sha256:bb70d2d1851de92cc946105141ede212d769a22db119ce4

在master节点查看节点列表

kubectl get node


http://www.hkcw.cn/article/YhyTMfejny.shtml

相关文章

【Kubernetes】k8s的helm扩展之监控管理、日志管理、部署efk【elk的升级版】详细说明

部署prometheus【mon节点】 镜像查看【需要先配置好helm源,这里是配置的ali源】【集群必须通外网才能部署啊】helm search repo prometheus-operator 安装prometheushelm install mon ali/prometheus-operator【后面就是上面查询到的helm信息】 下载完毕以后呢就会有一个helm…

最全Linux centos9环境基于k8s(k3s)搭建HomeAssistant,并接入米家官方XiaoMiHome插件

背景 环境 1、linux centos 9&#xff08;该环境的ip可以被你的其他设备访问到&#xff0c;例如你可以用windows访问到家里的服务器&#xff09; 2、k3s集群已完成部署&#xff0c;参考:国内k3s环境搭建-CSDN博客 3、HA部署方式采用容器化部署 概念 1、k3s&#xff1a;k8…

Git 使用全指南

Git 使用全指南 第一部分&#xff1a;核心概念 什么是 Git&#xff1f; 一个分布式版本控制系统 (DVCS)。目标&#xff1a; 跟踪文件变化、协作开发、回溯历史、管理不同开发线&#xff08;分支&#xff09;。核心思想&#xff1a; 每个开发者都有完整的仓库副本&#xff08;包…

Leetcode 269. 火星词典

1.题目基本信息 1.1.题目描述 现有一种使用英语字母的外星文语言&#xff0c;这门语言的字母顺序与英语顺序不同。 给定一个字符串列表 words &#xff0c;作为这门语言的词典&#xff0c;words 中的字符串已经 按这门新语言的字母顺序进行了排序 。 请你根据该词典还原出此…

若依框架-Feign的应用

代码资料链接&#xff1a;https://download.csdn.net/download/ly1h1/90945836 1.背景 若依的微服务框架&#xff0c;少不了各微服务之间的接口调用&#xff0c;以下是采用feign来进行微服务之间的方法调用。 2.案例说明 在system模块下的某个接口&#xff0c;调用factory&am…

印度奥迪沙邦一巴士翻车 50余人被困 紧急救援展开

6月2日,一辆巴士在印度东部奥迪沙邦的山路上发生翻车事故,车内50多名乘客被困。事故发生在当天清晨,巴士在下坡过程中于弯道上失去平衡,导致车辆失控。事故发生后,当地村民和紧急救援人员迅速展开救援行动,当地政府也派出救援队赶往现场。目前,官方尚未公布具体的伤亡情…

从4小时到20分钟 青岛港科技升级货物“秒通关”

作为中国北方重要的国际航运枢纽,青岛港的航线通达全球700多个港口,一季度集装箱吞吐量同比增速达到了7.4%。在当下复杂多变的国际贸易形势下,这座港口如何找准方向为外贸企业“保驾护航”?港口“流量”剧增折射外贸新机遇在山东港口青岛港前湾港区,这艘前往美国东部的集装…

Flannel MAC地址冲突导致Pod 跨节点通信异常

问题背景 客户在扩容 Kubernetes 节点后&#xff0c;发现部分服务 Pod 跨节点通信异常&#xff0c;表现为&#xff1a; • Pod 间通信间歇性失败&#xff1b; • 某些业务服务异常或响应慢&#xff1b; • 怀疑是网络问题引起的。 问题排查 1️⃣ 初步排查网络路由信息 我们…

[前端计算机网络]资源加载过程的详细性能信息浏览器加载资源的全过程

资源加载过程的详细性能信息 基于 PerformanceResourceTiming 对象对页面中某个资源加载过程的详细性能信息进行采集与封装&#xff0c;并结合了计算机网络中的请求生命周期进行度量。 export function observeEvent():void{const type"resource";const entryHand…

德布劳内将接受那不勒斯体检 加盟在即

据报道,德布劳内将加盟那不勒斯。预计他将在比利时国家队比赛结束后接受那不勒斯的体检。上月公布的比利时世预赛名单中包括了德布劳内。比利时队将在世预赛中先后对阵北马其顿和威尔士,其中与威尔士的比赛将于本月10日北京时间2点45分开球。现年33岁的德布劳内在今夏合同到期…

《在人间》是2025最难看懂的剧吗 烧脑剧情挑战观众

《在人间》这部剧集让艺绽君感到难以评价。这种“难评”并非贬义,而是因为观剧过程中真实地感受到了大脑爆炸、脑细胞死了不少,只能用一个相对中立的词汇来形容这部“神剧”。《在人间》共8集,隶属于爱奇艺的微尘剧场,这一剧场以短小精悍的作品著称。主创团队中有知名导演兼…

警方辟谣北京有人高空撒一千万:不是故意的,系工人施工碰倒钱箱 干活不慎掉落

5月29日,北京昌平区住总万科天地一带发生了一起撒钱事件。有市民发帖称,有人在楼上撒了一千万元。视频画面显示,空中飘着几张纸币,一些市民在楼下接钱。次日,北京七里渠派出所工作人员表示,当事人是因为工作时不小心掉落了钱,并提醒市民不要听信网络谣言。至于掉落的金钱…

96岁老兵走失找回 曾为陈毅元帅送信 抗战英雄平安归家

6月2日,山东省济宁市一救援队成功找回了走失的96岁高龄抗战老兵吕企荣老人,老人身体无碍。吕企荣家住泗水县济河街道何家庄村。5月31日早晨7时许,老人从家中步行到村北侧的小公园遛弯,直到中午都没有回家。家属通过监控发现,老人沿着城区北侧万象城附近道路一直向北走,直…

地磁暴雷暴大风与暴雨交织登场 双预警齐发

6月2日6时,中央气象台发布暴雨蓝色预警和强对流天气蓝色预警,覆盖福建、广东、广西等十余省份。中国气象局国家空间天气监测预警中心指出,6月1日至3日可能连续发生地磁暴,6月2日左右,我国北部有机会出现较为明显的极光,部分地区甚至有出现红绿复合极光的可能。预计6月2日…

6月1日起 新疆伊尔克什坦口岸试行24小时货运通关

6月1日,新疆伊尔克什坦口岸货运通道正式启动为期6个月的24小时通关试行。随着首批出入境货车有序通关,该口岸成为中国首个面向吉尔吉斯斯坦实行24小时货运通关的公路口岸。伊尔克什坦口岸位于新疆克孜勒苏柯尔克孜自治州乌恰县,是我国最西端的陆路口岸。口岸主要出口日用百货…

美防长炒作中国威胁论难获东盟支持 东盟强调战略自主

在新加坡举行的第22届香格里拉对话会上,美国国防部长赫格塞思极力渲染所谓的“中国威胁”,以迫使盟国增加军费开支。然而,东盟国家的国防部长们强调了“战略自主”的概念。菲律宾国防部长吉尔伯特特奥多罗表示,菲律宾作为美国的条约盟友,并非没有战略自主的棋子。他虽然仍…

Python 训练营打卡 Day 32-官方文档的阅读

我们已经掌握了相当多的机器学习和python基础知识&#xff0c;现在面对一个全新的官方库&#xff0c;看看是否可以借助官方文档的写法了解其如何使用 我们以pdpbox这个机器学习解释性库来介绍如何使用官方文档 以鸢尾花三分类项目来演示如何查看官方文档 import pandas as pd…

USB子系统和type-c接口快速理解

USB子系统 USB硬件基础 在了解LINUX 的USB驱动之前&#xff0c;我们肯定是要了解相关硬件内容的&#xff0c;如下给出了三种常用的USB接口。 特性 Type A (2.0) Type A 3.0 Type C 接口形状 长方形&#xff0c;单向插入 与 Type A 2.0 相同 椭圆形&#xff0c;可双…

DQN和DDQN(进阶版)

来源&#xff1a; *《第五章 深度强化学习 Q网络》.ppt --周炜星、谢文杰 一、前言 Q表格、Q网络与策略函数 Q表格是有限的离散的&#xff0c;而神经网络可以是无限的。 对于动作有限的智能体来说&#xff0c;使用Q网络获得当下状态的对于每个动作的 状态-动作值 。那么 a…

新视讯影视官网入口,影视动漫在线播放网站

新视讯影视是一个免费为广大追剧迷提供在线播放服务的影视平台&#xff0c;深受众多影视爱好者的喜爱。它涵盖了大量免费的VIP电视剧资源、最新上映的大片、好看的综艺节目以及动漫视频&#xff0c;是一个播放速度快、资源多的免费影视网站。用户无需注册或登录&#xff0c;即可…