使用kubeadm安装k8s并部署应用
安装k8s
1. 准备机器
准备三台机器
192.168.136.104 master节点
192.168.136.105 worker节点
192.168.136.106 worker节点
2. 安装前配置
1.基础环境
#########################################################################
#关闭防火墙: 如果是云服务器,需要设置安全组策略放行端口
# https://kubernetes.io/zh/docs/setup/production-environment/tools/kubeadm/install-kubeadm/#check-required-ports
systemctl stop firewalld
systemctl disable firewalld# 修改 hostname
hostnamectl set-hostname k8s-01
# 查看修改结果
hostnamectl status
# 设置 hostname 解析
echo "127.0.0.1 $(hostname)" >> /etc/hosts#关闭 selinux:
sed -i 's/enforcing/disabled/' /etc/selinux/config
setenforce 0#关闭 swap:
swapoff -a
sed -ri 's/.*swap.*/#&/' /etc/fstab #允许 iptables 检查桥接流量
#https://kubernetes.io/zh/docs/setup/production-environment/tools/kubeadm/install-kubeadm/#%E5%85%81%E8%AE%B8-iptables-%E6%A3%80%E6%9F%A5%E6%A1%A5%E6%8E%A5%E6%B5%81%E9%87%8F
## 开启br_netfilter
## sudo modprobe br_netfilter
## 确认下
## lsmod | grep br_netfilter## 修改配置#####这里用这个,不要用课堂上的配置。。。。。。。。。
#将桥接的 IPv4 流量传递到 iptables 的链:
# 修改 /etc/sysctl.conf
# 如果有配置,则修改
sed -i "s#^net.ipv4.ip_forward.*#net.ipv4.ip_forward=1#g" /etc/sysctl.conf
sed -i "s#^net.bridge.bridge-nf-call-ip6tables.*#net.bridge.bridge-nf-call-ip6tables=1#g" /etc/sysctl.conf
sed -i "s#^net.bridge.bridge-nf-call-iptables.*#net.bridge.bridge-nf-call-iptables=1#g" /etc/sysctl.conf
sed -i "s#^net.ipv6.conf.all.disable_ipv6.*#net.ipv6.conf.all.disable_ipv6=1#g" /etc/sysctl.conf
sed -i "s#^net.ipv6.conf.default.disable_ipv6.*#net.ipv6.conf.default.disable_ipv6=1#g" /etc/sysctl.conf
sed -i "s#^net.ipv6.conf.lo.disable_ipv6.*#net.ipv6.conf.lo.disable_ipv6=1#g" /etc/sysctl.conf
sed -i "s#^net.ipv6.conf.all.forwarding.*#net.ipv6.conf.all.forwarding=1#g" /etc/sysctl.conf
# 可能没有,追加
echo "net.ipv4.ip_forward = 1" >> /etc/sysctl.conf
echo "net.bridge.bridge-nf-call-ip6tables = 1" >> /etc/sysctl.conf
echo "net.bridge.bridge-nf-call-iptables = 1" >> /etc/sysctl.conf
echo "net.ipv6.conf.all.disable_ipv6 = 1" >> /etc/sysctl.conf
echo "net.ipv6.conf.default.disable_ipv6 = 1" >> /etc/sysctl.conf
echo "net.ipv6.conf.lo.disable_ipv6 = 1" >> /etc/sysctl.conf
echo "net.ipv6.conf.all.forwarding = 1" >> /etc/sysctl.conf
# 执行命令以应用
sysctl -p#################################################################
2. docker环境
sudo yum remove docker*
sudo yum install -y yum-utils
#配置docker yum 源
sudo yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
# 查找相应的docker版本
yum list docker-ce --showduplicates | sort -r#安装docker 3:26.1.4-1.el7
yum install -y docker-ce-3:26.1.4-1.el7.x86_64 docker-ce-cli-3:26.1.4-1.el7.x86_64 containerd.io#启动服务
systemctl start docker
systemctl enable docker#配置加速 自己申请配置
sudo mkdir -p /etc/docker
sudo tee /etc/docker/daemon.json <<-'EOF'
{"registry-mirrors" : ["https://#############.mirror.swr.myhuaweicloud.com","https://#############.mirror.aliyuncs.com"]
}
EOF
sudo systemctl daemon-reload
sudo systemctl restart docker
3. 安装k8s核心 (都执行)
# 配置K8S的yum源
cat <<EOF > /etc/yum.repos.d/kubernetes.repo
[kubernetes]
name=Kubernetes
baseurl=http://mirrors.aliyun.com/kubernetes/yum/repos/kubernetes-el7-x86_64
enabled=1
gpgcheck=0
repo_gpgcheck=0
gpgkey=http://mirrors.aliyun.com/kubernetes/yum/doc/yum-key.gpghttp://mirrors.aliyun.com/kubernetes/yum/doc/rpm-package-key.gpg
EOF# 卸载旧版本
yum remove -y kubelet kubeadm kubectl# 查看可以安装的版本
yum list kubelet --showduplicates | sort -r# 安装kubelet、kubeadm、kubectl 指定版本
yum install -y kubelet-1.21.0 kubeadm-1.21.0 kubectl-1.21.0# 开机启动kubelet
systemctl enable kubelet && systemctl start kubelet# 此时查看kubelet状态是fail是正常的,因为其他的组件还没完全安装
[root@docker104 ~]#
● kubelet.service - kubelet: The Kubernetes Node AgentLoaded: loaded (/usr/lib/systemd/system/kubelet.service; enabled; vendor preset: disabled)Drop-In: /usr/lib/systemd/system/kubelet.service.d└─10-kubeadm.confActive: activating (auto-restart) (Result: exit-code) since Tue 2024-06-25 20:40:33 PDT; 9s agoDocs: https://kubernetes.io/docs/Process: 24068 ExecStart=/usr/bin/kubelet $KUBELET_KUBECONFIG_ARGS $KUBELET_CONFIG_ARGS $KUBELET_KUBEADM_ARGS $KUBELET_EXTRA_ARGS (code=exited, status=1/FAILURE)Main PID: 24068 (code=exited, status=1/FAILURE)Jun 25 20:40:33 docker104 systemd[1]: kubelet.service: main process exited, code=exited, status=1/FAILURE
Jun 25 20:40:33 docker104 systemd[1]: Unit kubelet.service entered failed state.
Jun 25 20:40:33 docker104 systemd[1]: kubelet.service failed.
4. 初始化k8s master节点(master节点执行)
# 首先查看依赖的镜像
[root@docker104 ~] kubeadm config images list
I0625 20:47:43.820940 24427 version.go:254] remote version is much newer: v1.30.2; falling back to: stable-1.21
k8s.gcr.io/kube-apiserver:v1.21.14
k8s.gcr.io/kube-controller-manager:v1.21.14
k8s.gcr.io/kube-scheduler:v1.21.14
k8s.gcr.io/kube-proxy:v1.21.14
k8s.gcr.io/pause:3.4.1
k8s.gcr.io/etcd:3.4.13-0
k8s.gcr.io/coredns/coredns:v1.8.0#封装成images.sh脚本文件
#!/bin/bash
images=(kube-apiserver:v1.21.0kube-proxy:v1.21.0kube-controller-manager:v1.21.0kube-scheduler:v1.21.0coredns:v1.8.0etcd:3.4.13-0pause:3.4.1
)
for imageName in ${images[@]} ; dodocker pull registry.cn-hangzhou.aliyuncs.com/google_containers/$imageName
done
#脚本结束##注意1.21.0版本的k8s coredns镜像比较特殊,结合阿里云需要特殊处理,重新打标签
docker tag registry.cn-hangzhou.aliyuncs.com/google_containers/coredns:v1.8.0 registry.cn-hangzhou.aliyuncs.com/google_containers/coredns/coredns:v1.8.0# 执行脚本
chmod +x images.sh && ./images.sh########kubeadm init 一个master########################
########kubeadm join 其他worker########################
kubeadm init \
--apiserver-advertise-address=192.168.136.104 \
--image-repository registry.cn-hangzhou.aliyuncs.com/google_containers \
--kubernetes-version v1.21.0 \
--service-cidr=10.96.0.0/16 \
--pod-network-cidr=192.178.0.0/16
## 注意:pod-cidr与service-cidr
# cidr 无类别域间路由(Classless Inter-Domain Routing、CIDR)
# 指定一个网络可达范围 pod的子网范围+service负载均衡网络的子网范围+本机ip的子网范围不能有重复域
# --apiserver-advertise-address apiserver广播地址,为master机器的地址ip
# --image-repository 镜像仓库前缀
# --pod-network-cidr pod网络范围
# --service-cidr 负载均衡网络范围
# 两个网络范围和本地ip范围不能有重复域############初始化后有提示需要执行的语句##############
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.conf# 部署一个pod网络,安装指定的网络插件
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/##############如下:推荐安装calico#####################
kubectl apply -f https://docs.projectcalico.org/manifests/calico.yaml###可能会遇到calico镜像下载失败的情况,直接去官网下载需要的版本号
wget https://docs.projectcalico.org/manifests/calico.yaml
# 查看版本号
[root@docker104 k8s]# cat calico.yaml |grep 'image:'image: docker.io/calico/cni:v3.25.0image: docker.io/calico/cni:v3.25.0image: docker.io/calico/node:v3.25.0image: docker.io/calico/node:v3.25.0image: docker.io/calico/kube-controllers:v3.25.0
# 替换版本号
[root@docker104 k8s]# sed -i 's#docker.io/##g' calico.yaml
# 再次查看
[root@docker104 k8s]# cat calico.yaml |grep 'image:'image: calico/cni:v3.25.0image: calico/cni:v3.25.0image: calico/node:v3.25.0image: calico/node:v3.25.0image: calico/kube-controllers:v3.25.0# 官网地址下载并解压
https://github.com/projectcalico/calico/releases?page=2
tar -vzxf release-v3.25.0.tgz
[root@docker104 release-v3.25.0]# ls
bin images manifests# 进入到images目录,将所需要的进行引入
docker load -i calico-kube-controllers.tar
docker load -i calico-cni.tar
docker load -i calico-node.tar # 重新执行命令
kubectl apply -f calico.yaml### 命令检查
kubectl get pod -A ##获取集群中所有部署好的应用Pod
[root@docker104 images]# kubectl get pod -A
NAMESPACE NAME READY STATUS RESTARTS AGE
kube-system calico-kube-controllers-77959b97b9-pgl2g 1/1 Running 0 25m
kube-system calico-node-h6bsk 1/1 Running 0 25m
kube-system coredns-57d4cbf879-s726m 1/1 Running 0 17h
kube-system coredns-57d4cbf879-trdbs 1/1 Running 0 17h
kube-system etcd-docker104 1/1 Running 0 17h
kube-system kube-apiserver-docker104 1/1 Running 0 17h
kube-system kube-controller-manager-docker104 1/1 Running 0 17h
kube-system kube-proxy-q9g8p 1/1 Running 0 17h
kube-system kube-scheduler-docker104 1/1 Running 0 17hkubectl get nodes ##查看集群所有机器的状态
5. 初始化woker节点
Then you can join any number of worker nodes by running the following on each as root:
# 其他节点执行以下命令加入k8s集群,命令是在kubeadmin init以后给出的
kubeadm join 192.168.136.104:6443 --token tbjrly.cbmgi5g7nb366f1m \--discovery-token-ca-cert-hash sha256:a5f53bc7d06d595ae0e34fd92028e03bdbec8aa62b1041c9765f2739f59877fe #都执行完以后,在k8s master节点执行
kubectl get nodes ##查看集群所有机器的状态
[root@docker104 k8s]# kubectl get nodes
NAME STATUS ROLES AGE VERSION
docker104 Ready control-plane,master 17h v1.21.0
docker105 NotReady <none> 92s v1.21.0
docker106 NotReady <none> 74s v1.21.0# worker节点是not ready状态,可能是这个节点没装网络插件,和master节点同样导入一下网络插件calico的镜像即可自动安装# 具体可以查看日志 tail -100f /var/log/messages
## 日志起始
Jun 26 18:21:08 docker105 kubelet: E0626 18:21:08.870465 91095 pod_workers.go:190] "Error syncing pod, skipping" err="failed to \"StartContainer\" for \"upgrade-ipam\" with ImagePullBackOff: \"Back-off pulling image \\\"calico/cni:v3.25.0\\\"\"" pod="kube-system/calico-node-2zq8d" podUID=78164c8e-8ba0-477e-90d1-76be4fd6965f
Jun 26 18:21:13 docker105 kubelet: I0626 18:21:13.264027 91095 cni.go:239] "Unable to update cni config" err="no networks found in /etc/cni/net.d"
Jun 26 18:21:13 docker105 kubelet: E0626 18:21:13.281034 91095 kubelet.go:2218] "Container runtime network not ready" networkReady="NetworkReady=false reason:NetworkPluginNotReady message:docker: network plugin is not ready: cni config uninitialized"
## 日志结束
# 如上 cni config uninitialized就是未装网络插件的原因docker load -i calico-cni.tar
docker load -i calico-node.tar # 过会在master节点看到状态都是ready了
[root@docker104 k8s]# kubectl get nodes
NAME STATUS ROLES AGE VERSION
docker104 Ready control-plane,master 18h v1.21.0
docker105 Ready <none> 75m v1.21.0
docker106 Ready <none> 75m v1.21.0[root@docker104 k8s]# kubectl get pod -A
NAMESPACE NAME READY STATUS RESTARTS AGE
kube-system calico-kube-controllers-77959b97b9-pgl2g 1/1 Running 0 113m
kube-system calico-node-2zq8d 1/1 Running 0 80m
kube-system calico-node-b94mp 1/1 Running 0 80m
kube-system calico-node-h6bsk 1/1 Running 0 113m
kube-system coredns-57d4cbf879-s726m 1/1 Running 0 18h
kube-system coredns-57d4cbf879-trdbs 1/1 Running 0 18h
kube-system etcd-docker104 1/1 Running 0 18h
kube-system kube-apiserver-docker104 1/1 Running 0 18h
kube-system kube-controller-manager-docker104 1/1 Running 0 18h
kube-system kube-proxy-2djt9 1/1 Running 0 80m
kube-system kube-proxy-j5jkv 1/1 Running 0 80m
kube-system kube-proxy-q9g8p 1/1 Running 0 18h
kube-system kube-scheduler-docker104 1/1 Running 0 18h
7、设置ipvs模式
k8s整个集群为了访问通;默认是用iptables,性能下(kube-proxy在集群之间同步iptables的内容)
#1、查看默认kube-proxy 使用的模式
kubectl logs -n kube-system kube-proxy-28xv4
#2、需要修改 kube-proxy 的配置文件,修改mode 为ipvs。默认iptables,但是集群大了以后就很慢
kubectl edit cm kube-proxy -n kube-system
修改如下ipvs:excludeCIDRs: nullminSyncPeriod: 0sscheduler: ""strictARP: falsesyncPeriod: 30skind: KubeProxyConfigurationmetricsBindAddress: 127.0.0.1:10249mode: "ipvs"###修改了kube-proxy的配置,为了让重新生效,需要杀掉以前的Kube-proxykubectl get pod -A|grep kube-proxykubectl delete pod kube-proxy-pqgnt -n kube-system
### 修改完成后可以重启kube-proxy以生效
8、部署应用
# 测试部署一个Nginx应用
[root@docker104 k8s]# kubectl create deploy my-nginx --image=nginx
deployment.apps/my-nginx created# 查看部署应用的ip
[root@docker104 k8s]# kubectl get pod -A -o wide
NAMESPACE NAME READY STATUS RESTARTS AGE IP NODE NOMINATED NODE READINESS GATES
default my-nginx-6b74b79f57-mg76v 1/1 Running 0 66s 192.178.70.193 docker105 <none> <none># 访问测试nginx
[root@docker104 k8s]# curl 192.178.70.193
<!DOCTYPE html>
<html>
<head>
<title>Welcome to nginx!</title>
<style>
html { color-scheme: light dark; }
body { width: 35em; margin: 0 auto;
font-family: Tahoma, Verdana, Arial, sans-serif; }
</style>
</head>
<body>
<h1>Welcome to nginx!</h1>
<p>If you see this page, the nginx web server is successfully installed and
working. Further configuration is required.</p><p>For online documentation and support please refer to
<a href="http://nginx.org/">nginx.org</a>.<br/>
Commercial support is available at
<a href="http://nginx.com/">nginx.com</a>.</p><p><em>Thank you for using nginx.</em></p>
</body>
</html>
相关文章:
![](https://www.ngui.cc/images/no-images.jpg)
使用kubeadm安装k8s并部署应用
安装k8s 1. 准备机器 准备三台机器 192.168.136.104 master节点 192.168.136.105 worker节点 192.168.136.106 worker节点2. 安装前配置 1.基础环境 ######################################################################### #关闭防火墙: 如果是云服务器&…...
![](https://img-blog.csdnimg.cn/direct/8382e23217f44e8bb1f7138e215b8c73.png)
springMVC学习
概述 Spring MVC(Model-View-Controller,模型-视图-控制器)是Spring框架的一部分,用于构建基于Java的Web应用程序。它遵循MVC设计模式,分离了应用程序的不同方面(输入逻辑、业务逻辑和UI逻辑)&…...
![](https://www.ngui.cc/images/no-images.jpg)
深入探讨光刻技术:半导体制造的关键工艺
前言 光刻(Photolithography)是现代半导体制造过程中不可或缺的一环,它的精度和能力直接决定了芯片的性能和密度。本文将详细介绍光刻技术的基本原理、过程、关键技术及其在半导体制造中的重要性。 光刻技术的基本原理 光刻是一种利用光化…...
![](https://img-blog.csdnimg.cn/direct/4a230f12e3d24b198da8c165a8e13ce0.png)
CesiumJS【Basic】- #042 绘制纹理线(Primitive方式)
文章目录 绘制纹理线(Primitive方式)1 目标2 代码2.1 main.ts3 资源文件绘制纹理线(Primitive方式) 1 目标 使用Primitive方式绘制纹理线 2 代码 2.1 main.ts var start = Cesium.Cartesian3.fromDegrees(-75.59777, 40.03883);var...
![](https://img-blog.csdnimg.cn/direct/4c6107273b0e4f1fb74a39b6851f36f7.png)
代码随想录第38天|动态规划
1049. 最后一块石头的重量 II 参考 备注: 当物体容量也等同于价值时, 01背包问题的含义则是利用好最大的背包容量sum/2, 使得结果尽可能的接近或者小于 sum/2 等价: 尽可能的平分成相同的两堆, 其差则为结果, 比如 (abc)-d, (ac)-(bd) , 最终的结果是一堆减去另外一堆的和, 问…...
![](https://img-blog.csdnimg.cn/direct/9b12c404db9941d892ab77e3467a6d7d.png)
java生成excel,uniapp微信小程序接收excel并打开
java引包,引的是apache.poi <dependency><groupId>org.apache.poi</groupId><artifactId>poi-ooxml</artifactId><version>5.2.3</version></dependency> 写一个测试类,把excel输出到指定路径 public s…...
![](https://www.ngui.cc/images/no-images.jpg)
sam_out 目标检测的应用
缺点参考地址训练验证模型解析 缺点 词表太大量化才可 参考地址 https://aistudio.baidu.com/projectdetail/8103098 训练验证 import os from glob import glob import cv2 import paddle import faiss from out_yolo_model import GPT as GPT13 import pandas as pd imp…...
![](https://img-blog.csdnimg.cn/img_convert/8d9f6025aabd64ce951c6f72ae7b5336.png)
VLAN原理与配置
AUTHOR :闫小雨 DATE:2024-04-28 目录 VLAN的三种端口类型 VLAN原理 什么是VLAN 为什么使用VLAN VLAN的基本原理 VLAN标签 VLAN标签各字段含义如下: VLAN的划分方式 VLAN的划分包括如下5种方法: VLAN的接口链路类型 创建V…...
![](https://www.ngui.cc/images/no-images.jpg)
使用Spring Boot实现RESTful API
使用Spring Boot实现RESTful API 大家好,我是免费搭建查券返利机器人省钱赚佣金就用微赚淘客系统3.0的小编,也是冬天不穿秋裤,天冷也要风度的程序猿!今天我们将深入探讨如何利用Spring Boot框架实现RESTful API,这是现…...
![](https://www.ngui.cc/images/no-images.jpg)
中英双语介绍美国常春藤联盟( Ivy League):八所高校
中文版 常春藤联盟简介 常春藤联盟(Ivy League)是美国东北部八所私立大学组成的高校联盟。虽然最初是因体育联盟而得名,但这些学校以其学术卓越、历史悠久、校友杰出而闻名于世。以下是对常春藤联盟的详细介绍,包括其由来、成员…...
![](https://www.ngui.cc/images/no-images.jpg)
【计算机网络】常见的网络通信协议
目录 1. TCP/IP协议 2. HTTP协议 3. FTP协议 4. SMTP协议 5. POP3协议 6. IMAP协议 7. DNS协议 8. DHCP协议 9. SSH协议 10. SSL/TLS协议 11. SNMP协议 12. NTP协议 13. VoIP协议 14. WebSocket协议 15. BGP协议 16. OSPF协议 17. RIP协议 18. ICMP协议 1…...
![](https://www.ngui.cc/images/no-images.jpg)
java实现http/https请求
在Java中,有多种方式可以实现HTTP或HTTPS请求。以下是使用第三方库Apache HttpClient来实现HTTP/HTTPS请求的工具类。 优势和特点 URIBuilder的优势在于它提供了一种简单而灵活的方式来构造URI,帮助开发人员避免手动拼接URI字符串,并处理参…...
![](https://www.ngui.cc/images/no-images.jpg)
NC204871 求和
链接 思路: 对于一个子树来说,子树的节点就包括在整颗树的dfs序中子树根节点出现的前后之间,所以我们先进行一次dfs,用b数组的0表示区间左端点,1表示区间右端点,同时用a数组来标记dfs序中的值。处理完dfs序…...
![](https://www.ngui.cc/images/no-images.jpg)
git克隆代码warning: could not find UI helper ‘git-credential-manager-ui‘
git克隆代码warning: could not find UI helper ‘git-credential-manager-ui’ 方案 git config --global --unset credential.helpergit-credential-manager configure...
![](https://www.ngui.cc/images/no-images.jpg)
Generator 是怎么样使用的以及各个阶段的变化如何
Generators 是 JavaScript 中一种特殊类型的函数,可以在执行过程中暂停,并且在需要时恢复执行。它们是通过 function* 关键字来定义的。Generator 函数返回的是一个迭代器对象,通过调用该迭代器对象的 next() 方法来控制函数的执行。在调用 n…...
![](https://www.ngui.cc/images/no-images.jpg)
一文了解Java中 Vector、ArrayList、LinkedList 之间的区别
目录 1. 数据结构 Vector 和 ArrayList LinkedList 2. 线程安全 Vector ArrayList 和 LinkedList 3. 性能 插入和删除操作 随机访问 4. 内存使用 ArrayList 和 Vector LinkedList 5. 迭代器行为 ArrayList 和 Vector LinkedList 6. 扩展策略 ArrayList Vecto…...
![](https://img-blog.csdnimg.cn/direct/39ac5a84d9f04ae39075c9ab5c6accce.png)
【论文复现|智能算法改进】基于自适应动态鲸鱼优化算法的路径规划研究
目录 1.算法原理2.改进点3.结果展示4.参考文献5.代码获取 1.算法原理 SCI二区|鲸鱼优化算法(WOA)原理及实现【附完整Matlab代码】 2.改进点 非线性收敛因子 WOA 主要通过控制系数向量 A 来决定鲸鱼是搜索猎物还是捕获猎物,即系数向量 A 可…...
![](https://www.ngui.cc/images/no-images.jpg)
【Win测试】窗口捕获的学习笔记
2 辨析笔记 2.1 mss:捕获屏幕可见区域,不适合捕获后台应用 Claude-3.5-Sonnet: MSS库可以用来捕获屏幕上可见的内容;然而,如果游戏窗口被其他窗口完全遮挡或最小化,MSS将无法捕获到被遮挡的游戏窗口内容,而…...
![](https://img-blog.csdnimg.cn/direct/dc5a0b28ea31428e95e7934db4a0238b.png)
PostgreSQL的学习心得和知识总结(一百四十七)|深入理解PostgreSQL数据库之transaction chain的使用和实现
目录结构 注:提前言明 本文借鉴了以下博主、书籍或网站的内容,其列表如下: 1、参考书籍:《PostgreSQL数据库内核分析》 2、参考书籍:《数据库事务处理的艺术:事务管理与并发控制》 3、PostgreSQL数据库仓库…...
![](https://img-blog.csdnimg.cn/direct/0aa0a27cf5534b95971900d12648a59a.png)
宝塔linux网站迁移步骤
网站迁移到新服务器步骤 1.宝塔网站迁移,有个一键迁移工具,参考官网 宝塔一键迁移API版本 3.0版本教程 - Linux面板 - 宝塔面板论坛 (bt.cn)2 2.修改域名解析为新ip 3.如果网站没有域名,而是用ip访问的,则新宝塔数据库的wp_o…...
![](https://www.ngui.cc/images/no-images.jpg)
电路笔记(三极管器件): MOSFETIGBT
MOSFET vs IGBT MOSFET主要用于低电压和功率系统,而IGBT更适合高电压和功率系统。 1. MOSFET(金属氧化物半导体场效应晶体管) 优势: 高开关速度和响应速度,适合高频应用。(IGBT不适合高频应用,…...
![](https://img-blog.csdnimg.cn/direct/29a51e0b9edb463a9a2612fbe7adfe46.png)
Docker 镜像导出和导入
docker 镜像导出 # 导出 docker 镜像到本地文件 docker save -o [输出文件名.tar] [镜像名称[:标签]] # 示例 docker save -o minio.tar minio/minio:latest-o 或 --output:指定导出文件的路径和名称[镜像名称[:标签]]:导出镜像名称以及可选的标签 dock…...
![](https://img-blog.csdnimg.cn/direct/2a2e8ce6bb5740aebde9cbc08ac221b0.png)
QueryClientProvider is not defined
QueryClientProvider is not defined 运行一个svelte的项目,报错如上,前后查找解决不了,然后没办法, 本来是用yarn 安装的依赖,改用npm install,再次运行就成功了...
![](https://img-blog.csdnimg.cn/direct/1d6b10a76ff14f0db9fe4eac36b13acc.png)
HTTPS是什么?原理是什么?用公钥加密为什么不能用公钥解密?
HTTPS(HyperText Transfer Protocol Secure)是HTTP的安全版本,它通过在HTTP协议之上加入SSL/TLS协议来实现数据加密传输,确保数据在客户端和服务器之间的传输过程中不会被窃取或篡改。 HTTPS 的工作原理 客户端发起HTTPS请求&…...
![](https://www.ngui.cc/images/no-images.jpg)
系统中非功能性需求的思考
概要 设计系统时不仅要考虑功能性需求,还要考虑一些非功能性需求,比如: 扩展性可靠性和冗余安全和隐私服务依赖SLA要求 下面对这5项需要考虑的事项做个简单的说明 1. 可扩展性 数据量增长如何扩展? 流量增长如何扩展…...
![](https://www.ngui.cc/images/no-images.jpg)
力扣第215题“数组中的第K个最大元素”
在本篇文章中,我们将详细解读力扣第215题“数组中的第K个最大元素”。通过学习本篇文章,读者将掌握如何使用快速选择算法和堆排序来解决这一问题,并了解相关的复杂度分析和模拟面试问答。每种方法都将配以详细的解释,以便于理解。…...
![](https://www.ngui.cc/images/no-images.jpg)
java.util.function实现原理和Java使用场景【Function、Predicate集合转换过滤,BiConsumer事件处理】
简介 java.util.function 是 Java 8 引入的一个功能包,它包含了多种函数式接口的定义,使得在 Java 中进行函数式编程变得更为方便。下面我将分别介绍 java.util.function 的作用、实现原理、常用 Java 使用场景以及代码示例。 作用 java.util.function 的主要作用是为 Jav…...
![](https://www.ngui.cc/images/no-images.jpg)
《每天5分钟用Flask搭建一个管理系统》 第6章:数据库集成
第6章:数据库集成 6.1 数据库的选择和配置 在Flask中集成数据库,首先需要选择一个数据库系统。常见的选择包括SQLite、MySQL、PostgreSQL等。选择后,需要配置数据库连接字符串。 示例代码:配置数据库 from flask import Flask…...
![](https://www.ngui.cc/images/no-images.jpg)
pandas读取和处理Excel文件的基础应用1
Pandas如何读取Excel文件并处理数据 引言: Pandas是一种常用的数据处理和分析工具,它提供了丰富的函数和方法,方便用户对数据进行清洗、转换和分析。在实际工作中,我们经常需要处理Excel格式的数据文件,本文将介绍如何…...
![](https://www.ngui.cc/images/no-images.jpg)
electron vite react 创建一个项目
要使用 Electron、Vite 和 React 创建一个项目,你可以按照以下步骤操作: 1. 安装 Node.js 和 npm 首先,确保你的计算机上安装了 Node.js 和 npm(Node Package Manager)。你可以从 Node.js 官网 下载并安装。 2. 初始化一个新的项目 在你的工作目录下,创建一个新的文件…...
![](https://www.ngui.cc/images/no-images.jpg)
鸿蒙使用 @Builder扩展出来的布局数据更新没法更新UI
由于业务的复杂,所以我们把相关UI抽离出来。但是数据变化了,没法更新UI Builder MyGridLayout() { } 通过日志打印发现数据的确是更新了,但是UI就没没办法,如何解决呢 Entry Component struct Page35 {// State sArray: bool…...
![](https://img-blog.csdnimg.cn/direct/04ca292ff1494af1a3b4f491bc240ea2.jpeg#pic_center)
湖南省教育网络协会莅临麒麟信安调研教育网络数字化建设及教育信创发展情况
6月28日下午,湖南省教育网络协会理事长张智勇、秘书长刘志勇、副理事长黄旭、胡洪波、周中伟等协会相关负责人一行莅临麒麟信安,就湖南省教育网络数字化建设、教育信创工作等主题进行深入调研。麒麟信安副总裁王攀热情接待。 协会成员一行来到麒麟信安展…...
![](https://img-blog.csdnimg.cn/img_convert/3422d4b79d44c46e8712a1d0dcb126af.webp?x-oss-process=image/format,png)
论文阅读_优化RAG系统的检索
英文名称: The Power of Noise: Redefining Retrieval for RAG Systems 中文名称: 噪声的力量:重新定义RAG系统的检索 链接: https://arxiv.org/pdf/2401.14887.pdf 作者: Florin Cuconasu, Giovanni Trappolini, Federico Siciliano, Simone Filice, Cesare Campag…...
![](https://img-blog.csdnimg.cn/direct/51c48e03ad3142a88ac6862cd76df1a1.png)
STC8/32 软硬件I2C通讯方式扫描I2C设备地址
STC8/32 软硬件I2C通讯方式扫描I2C设备地址 📄主要用于检测挂载在I2C总线上的设备。在驱动I2C设备之前,如果能扫描到该设备,说明通讯设备可以连接的上,在提前未知I2C地址的情况下,可以方便后面的驱动代码的完善。 🔬扫描测试效果:(测试mpu6050以及ssd1306 i2c oled )…...
![](https://img-blog.csdnimg.cn/direct/a2aee408f00341f8b70988ab1d50d237.png)
Linux——数据流和重定向,制作镜像
1. 数据流 标准输入( standard input ,简称 stdin ):默认情况下,标准输入指从键盘获取的输入 标准输出( standard output ,简称 stdout ):默认情况下,命令…...
![](https://img-blog.csdnimg.cn/img_convert/4e335a5c591f08b612c288d51bfecf67.png)
Windows 11的市场份额越来越大了,推荐你升级!
7月1日,系统之家发布最新数据,显示Windows 11操作系统的市场份额正在稳步上升。自2021年10月Windows 11发布以来,Windows 10一直占据着市场主导地位,当时其市场份额高达81.44%。然而,随着时间的推移,Window…...
![](https://www.ngui.cc/images/no-images.jpg)
微服务架构中的调试难题与分布式事务解决方案
微服务架构作为现代软件开发的一种主要趋势,因其灵活性、高可维护性和易于扩展的特点,得到了广泛的应用。然而,在享受微服务架构带来的诸多优点的同时,开发者也面临着一些新的挑战。调试的复杂性和分布式事务的处理是其中两个较为…...
![](https://www.ngui.cc/images/no-images.jpg)
银行家算法-操作系统中避免死锁的最著名算法
背景 有很多文章都会介绍银行家算法。在百度和CSDN上搜一搜能搜出很多来。很多同学会觉得这个算法很深奥,有些文章写的又很复杂,其实真的很简单。这里简单记录一下基本原理,然后大家再配合其他文章看,就能加深理解。 算法原理 …...
![](https://img-blog.csdnimg.cn/direct/d53f826b843d49e5a26cfcbe86d047e6.png)
PCL 基于点云RGB颜色的区域生长算法
RGB颜色的区域生长算法 一、概述1.1 算法定义1.2 算法特点1.3 算法实现二、代码示例三、运行结果🙋 结果预览 一、概述 1.1 算法定义 点云RGB区域生长算法: 是一个基于RGB颜色信息的区域生长算法,用于点云分割。该算法利用了点云中相邻点之间的颜色相似性来将点云分割成…...
![](https://img-blog.csdnimg.cn/direct/e72e651d964449a2942c62a5838ccc66.png)
cube-studio开源一站式机器学习平台,在线ide,jupyter,vscode,matlab,rstudio,ssh远程连接,tensorboard
全栈工程师开发手册 (作者:栾鹏) 一站式云原生机器学习平台 前言 开源地址:https://github.com/tencentmusic/cube-studio cube studio 腾讯开源的国内最热门的一站式机器学习mlops/大模型训练平台,支持多租户&…...
![](https://img-blog.csdnimg.cn/direct/e42a5c66b4844ba49663039fde171a5f.png)
1976 ssm 营地管理系统开发mysql数据库web结构java编程计算机网页源码Myeclipse项目
一、源码特点 ssm 营地管理系统是一套完善的信息系统,结合springMVC框架完成本系统,对理解JSP java编程开发语言有帮助系统采用SSM框架(MVC模式开发),系统具有完整的源代码和数据库,系统主要采用B/S模式开…...
![](https://img-blog.csdnimg.cn/img_convert/32d4007e42fe1ca98923779e80944141.png)
技术派全局异常处理
前言 全局的异常处理是Java后端不可或缺的一部分,可以提高代码的健壮性和可维护性。 在我们的开发中,总是难免会碰到一些未经处理的异常,假如没有做全局异常处理,那么我们返回给用户的信息应该是不友好的,很抽象的&am…...
![](https://www.ngui.cc/images/no-images.jpg)
对于mysql 故障的定位和排查
故障表现 他的执行时间超过规定的限制(比如1000ms)CPU使用率高大量业务失败,数据连接异常执行sql越来越慢,失败越来越多 解决方案 定位 应急 故障恢复 定位 查询慢sql的日志查看mysql 的performance schena(里面…...
![](https://img-blog.csdnimg.cn/36ff13f2a7b74ff6a85325f62280482f.jpg)
什么是电航空插头插座连接器有什么作用
航空插头概述 定义与功能 航空插头,又称航空连接器,是一种专门用于航空领域的电连接器,因其最初在航空领域得到广泛应用而得名。航空插头的主要功能是实现电源或信号的连接,尤其适用于芯数较多、结构复杂的线束连接,…...
![](https://img-blog.csdnimg.cn/direct/9d7f81d9c809468a9c79641d93c17f9d.png)
数据挖掘常见算法(分类算法)
K-近邻算法(KNN) K-近邻分类法的基本思想:通过计算每个训练数据到待分类元组Zu的距离,取和待分类元组距离最近的K个训练数据,K个数据中哪个类别的训练数据占多数,则待分类元组Zu就属于哪个类别…...
![](https://img-blog.csdnimg.cn/direct/5bf1b70bf0174cafbc79ee27586362f5.png)
【深度学习】调整加/减模型用于体育运动评估
摘要 一种基于因果关系的创新模型,名为调整加/减模型,用于精准量化个人在团队运动中的贡献。该模型基于明确的因果逻辑,将个体运动员的价值定义为:在假设情景下,用一名价值为零的球员替换该球员后,预期比赛…...
![](https://img-blog.csdnimg.cn/direct/5f9730fd547a4f6aa0c88d881c1e4506.png)
重生之算法刷题之路之链表初探(三)
算法刷题之路之链表初探(三) 今天来学习的算法题是leecode2链表相加,是一道简单的入门题,但是原子在做的时候其实是有些抓耳挠腮,看了官解之后才恍然大悟! 条件 项目解释 有题目可以知道,我们需…...
![](https://img-blog.csdnimg.cn/img_convert/2f3d0d5f8ceb09c5c15fc6eb2bdf4b08.jpeg)
哪吒汽车,正在等待“太乙真人”的拯救
文丨刘俊宏 在360创始人、哪吒汽车股东周鸿祎近日连续且着急的“督战”中,哪吒汽车(下简称哪吒)终究还是顶不住了。 6月26日,哪吒通过母公司合众新能源在港交所提交了IPO文件,急迫地希望成为第五家登陆港股的造车新势力…...
![](https://img-blog.csdnimg.cn/direct/77fb55146944499cb013f092bd75e2bc.jpeg)
HDC Cloud 2024 | CodeArts加速软件智能化开发,携手HarmonyOS重塑企业应用创新体验
2024年6月21~23日,华为开发者大会HDC 2024在东莞溪流背坡村隆重举行。期间华为云主办了以“CodeArts加速软件智能化开发,携手HarmonyOS重塑企业应用创新体验”为主题的分论坛。论坛汇聚了各行各业的专家学者、技术领袖和开发者,共同探讨Harmo…...
![](https://img-blog.csdnimg.cn/img_convert/018d47b8c4870bb8f3c5190562a7582a.png)
基于隐马尔可夫模型的股票预测【HMM】
基于机器学习方法的股票预测系列文章目录 一、基于强化学习DQN的股票预测【股票交易】 二、基于CNN的股票预测方法【卷积神经网络】 三、基于隐马尔可夫模型的股票预测【HMM】 文章目录 基于机器学习方法的股票预测系列文章目录一、HMM模型简介(1)前向后…...
![](https://img-blog.csdnimg.cn/direct/e8bf4b22215942e9bf39c7e5aed6e770.jpeg)
环回接口处理 IP 数据报的过程及 Loopback 接口的主要作用
环回接口处理 IP 数据报的过程 IPv4 中 传给环回地址(127.0.0.1)的任何数据均作为 IP 输入,直接送到环回接口(环回:IP 输入队列)。 传给广播地址或多播地址的数据报,会复制一份传给环回接口&…...
![](https://www.ngui.cc/images/no-images.jpg)
重保期间的网站安全防护:网站整站锁的应用与实践
标题:重保期间的网站安全防护:网站整站锁的应用与实践 一、引言 在重大活动或事件(通常被称为“重保”)期间,网站的安全问题尤为突出。由于此时网站的访问量和关注度可能达到高峰,因此也成为了黑客攻击的…...
![](https://www.ngui.cc/images/no-images.jpg)
SPI通信精粹:STM32微控制器驱动W25Q64存储器实战技巧
摘要 在嵌入式开发中,SPI通信是一种高效、灵活的串行通信方式,广泛应用于微控制器与外设之间的数据交换。W25Q64作为一种高性能的SPI Flash存储器,提供了8Mbit的存储容量,非常适合STM32微控制器使用。本文将分享使用STM32微控制器…...
![](https://www.ngui.cc/images/no-images.jpg)
C++ //练习 14.27 为你的StrBlobPtr类添加递增和递减运算符。
C Primer(第5版) 练习 14.27 练习 14.27 为你的StrBlobPtr类添加递增和递减运算符。 环境:Linux Ubuntu(云服务器) 工具:vim 代码块 class StrBlobPtr{public:StrBlobPtr(): curr(0) {}StrBlobPtr(StrB…...
![](https://www.ngui.cc/images/no-images.jpg)
记录一次有关layui的bug修复,监听table内的input的动态变化并且修改表格
1.场景: 今天发现一个离职同事留下的bug,table的删除逻辑有问题。仔细一看,同事是通过获取table的行data的name数据的来配合删除的。但由于他在table内实现的input是动态变化的且没有实时修改表格的data,在此记录一下修改方案。 …...
![](https://www.ngui.cc/images/no-images.jpg)
详细阐述 Spring Boot 的核心概念、优势、开发流程、常见配置以及最佳实践
Spring Boot 是一种基于 Java 的框架,它简化了基于 Spring 的应用开发。通过自动配置和嵌入式服务器等技术,Spring Boot 使得开发者可以快速搭建并运行 Spring 应用。下面,我将详细阐述 Spring Boot 的核心概念、优势、开发流程、常见配置以及…...
![](https://www.ngui.cc/images/no-images.jpg)
年轻化的新一代迈腾,颜值并不丑,三大屏高通8155
年轻化的新一代迈腾,颜值并不丑,三大屏高通8155,像新势力中国汽车市场的竞争是越来越激烈,要想脱颖而出,即便是合资品牌旗下的主力常青树车型,现在也要拥抱变化了。就拿大众迈腾这款车来说,长期以来已经形成了一套固定的印象标签,无非就是中规中矩的沉稳商务风格。但全…...
![](https://www.ngui.cc/images/no-images.jpg)
2141.4km!星纪元ET全球上市,18.98万元起
5月9日,星纪元ET正式全球上市,共推出8个版型,分别为增程系列:Plus 18.98万元、Pro 20.58万元、Pro+22.58万元,以及纯电系列:Pro22.98万元、Pro四驱23.98万元、Pro城市智驾24.98万元、Max 27.98万元、Ultra 31.98万元。官方还同步公布置换礼、金融礼等多重上市权益豪礼,并将…...
![](https://www.ngui.cc/images/no-images.jpg)
入境游复苏拉动旅游消费,免税、餐饮、酒店等行业迎来利好
随着疫情防控常态化,中国入境旅游市场正逐步回暖,跨境游消费呈现复苏态势。有分析预测,入境游景气复苏将与消费内生增长动力恢复形成合力,对服务消费相关的多业态产生正向辐射效应。免税、餐饮、酒店作为旅游消费三大支柱行业,有望受益于入境游复苏带来的红利。免税行业迎…...
![](https://www.ngui.cc/images/no-images.jpg)
Java基础学习:深入解析Java中的位运算符
在Java中,位运算符用于对整数类型的值进行位运算。以下是Java中的位运算符: 位与(&):两位都为1时,结果为1,否则为0。 位或(|):两位中有1个为1,结果为1。 位非(~):位的反&#…...
![](https://www.ngui.cc/images/no-images.jpg)
Open3D-Geometry-2:Mesh网格的一些基础操作示例
0. 引言 Open3D 有一个名为 的 3D 三角形网格数据结构TriangleMesh。下面的代码显示了如何从ply文件中读取三角形网格并打印其顶点和三角形。 import open3d as o3d import numpy as npprint("Testing mesh in Open3D...") armadillo_mesh = o3d.data.ArmadilloMes…...
![](https://img-blog.csdnimg.cn/img_convert/53a9b157865b410084c5031b26902b4a.png)
Python--List列表
list列表⭐⭐ 1高级数据类型 Python中的数据类型可以分为:数字型(基本数据类型)和非数字型(高级数据类型) ●数字型包含:整型int、浮点型float、布尔型bool、复数型complex ●非数字型包含:字符…...