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

二、k8s快速入门之docker+Kubernetes平台搭建

centosmaster192.168.100.10
centosnode1192.168.100.20
centosnode2192.168.100.30

除特殊说明命令都需要在三台都执行

⭐️ k8s 的指令:

  1. kubeadm:用来初始化集群的指令
  2. kubelet: 在集群中的每个节点上用来启动Pod和容器
  3. kubectl: 用来与集群通信的命令行工具

​ ⭐️ kubeadm 不能帮你安装或者管理 kubelet 或 kubectl, 所以你需要确保它们与通过 kubeadm 安装的控制平面的版本相匹配。 如果不这样做,则存在发生版本偏差的风险,可能会导致一些预料之外的错误和问题。 然而,控制平面与 kubelet 之间可以存在一个次要版本的偏差,但 kubelet 的版本不可以超过 API 服务器的版本。 例如,1.7.0 版本的 kubelet 可以完全兼容 1.8.0 版本的 API 服务器,反之则不可以


初始化设置–三台

systemctl stop firewalld 
systemctl disable firewalld 
setenforce 0 ####想要永久关闭请自己设置 
swapoff -a ##想要永久关闭请自己设置 
free 
iptables -F 
iptables -X 
iptables -Z           

修改名字

hostname set-hostname master 
hostname set-hostname node1 
hostname set-hostname node2              

编辑hosts文件

[root@master ~]# cat /etc/hosts
127.0.0.1   localhost localhost.localdomain localhost4 localhost4.localdomain4
::1         localhost localhost.localdomain localhost6 localhost6.localdomain6
192.168.100.10 master
192.168.100.20 node1
192.168.100.30 node2

把源换为阿里源

wget -O /etc/yum.repos.d/CentOS-Base.repo https://mirrors.aliyun.com/repo/Centos-7.repo

下载需要的组件

yum install -y conntrack ipvsadm ipset jq iptables curl sysstat libseccomp wget vim net-tools git 

有些组件非必须

调整内核参数

vim /etc/sysctl.d/kubernetes.conf
##必须 开启ipv4桥接
net.bridge.bridge-nf-call-iptables=1 
##必须 开启ipv6桥接
net.bridge.bridge-nf-call-ip6tables=1
##开启TCP连接中TIME-WAIT sockets的快速回收	
net.ipv4.tcp_tw_recycle=0
#禁止使用swap空间,只有当系统00M时才允许使用它
vm.swappiness=0 
#不检查物理内存是否够用
vm.overcommit_memory=1 #开启00M
vm.panic_on_oom=0
##表示同一用户同时最大可以创建的 inotify(通知) 实例 (每个实例可以有很多 watch(值班))
fs.inotify.max_user_instances=8192 
## 表示同一用户同时可以添加的watch数目(watch一般是针对目录,决定了同时同一用户可以监控的目录数量) 
##默认值 8192 在容器场景下偏小,在某些情况下可能会导致 inotify watch 数量耗尽,
##使得创建 Pod 不成功或者 kubelet 无法启动成功,
fs.inotify.max_user_watches=1048576  
##max-file 表示系统级别的能够打开的文件句柄的数量, 一般如果遇到文件句柄达到上限时,
##会碰到 Too many open files 或者 Socket/File: Can’t open so many files 等错误 
fs.file-max=52706963
##单个进程可分配的最大文件数
fs.nr_open=52706963
##禁用ipv6
net.ipv6.conf.all.disable_ipv6=1
##设置最大查看限制
net.netfilter.nf_conntrack_max=2310720## 载入ip_conntrack模块
[root@master ~]# modprobe ip_conntrack
## 载入桥接模式防火墙                   
[root@master ~]# modprobe br_netfilter
###这里可以直接载入/etc/sysconfig/modules 中
cat > /etc/sysconfig/modules/ipvs.modules <#!/bin/bashmodprobe -- ip_vsmodprobe -- ip_vs_rrmodprobe -- ip_vs_wrrmodprobe -- ip_vs_shmodprobe -- br_netfiltermodprobe -- ip_conntrack
EOF[root@master ~]# sysctl -p /etc/sysctl.d/kubernetes.conf 
net.bridge.bridge-nf-call-iptables = 1
net.bridge.bridge-nf-call-ip6tables = 1
net.ipv4.ip_forward = 1
net.ipv4.tcp_tw_recycle = 0
vm.swappiness = 0
vm.overcommit_memory = 1
vm.panic_on_oom = 0
fs.inotify.max_user_instances = 8192
fs.inotify.max_user_watches = 1048576
fs.file-max = 52706963
fs.nr_open = 52706963
net.ipv6.conf.all.disable_ipv6 = 1
net.netfilter.nf_conntrack_max = 23107120

配置时间同步

⭐️ centos7.5自带了chrony无需下载

1️⃣ master操作

[root@master ~]# vim /etc/chrony.conf
server master iburst ##其余的全部删掉加上这条
allow 192.168.100.0/24 
local stratum 10
systemctl restart chronyd;systemctl enable chronyd

2️⃣ node1node2

vim /etc/chrony.conf
server master iburst ##其余的全部删掉加上这条
systemctl restart chronyd;systemctl enable chronyd

3️⃣ 查看时间同步

 chronyc sources  	

⭐️升级内核版本–三台

rpm -Uvh http://www.elrepo.org/elrepo-release-7.0-3.el7.elrepo.noarch.rpm
yum --enablerepo=elrepo-kernel install -y kernel-lt
grub2-set-default 'CentOS Linux (4.4.189-1.e17.elrepo.x86_64) 7 (Core)'
reboot


安装Docker

⭐️ 由于LVS以及加入到linux内核,所以开启IPVS的前提需要加载内核模块

1️⃣在三个节点都执行,初始化操作

cat > /etc/sysconfig/modules/ipvs.modules <#!/bin/bashmodprobe -- ip_vsmodprobe -- ip_vs_rrmodprobe -- ip_vs_wrrmodprobe -- ip_vs_shEOF
chmod 755 /etc/sysconfig/modules/ipvs.modules && bash /etc/sysconfig/modules/ipvs.modules && lsmod | grep -e ip_vs -e nf_conntrack_ipv4       

2️⃣ 安装docker

⭐️kuberntesv1.15.1 支持18.09版本的docker

# step 1: 安装必要的一些系统工具
sudo yum install -y yum-utils device-mapper-persistent-data lvm2
# Step 2: 添加软件源信息
sudo yum-config-manager --add-repo https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
# Step 3
sudo sed -i 's+download.docker.com+mirrors.aliyun.com/docker-ce+' /etc/yum.repos.d/docker-ce.repo
# Step 4: 更新并安装Docker-CE
sudo yum makecache fast
sudo yum -y install docker-ce
# Step 4: 开启Docker服务
sudo service docker start# 注意:
# 官方软件源默认启用了最新的软件,您可以通过编辑软件源的方式获取各个版本的软件包。例如官方并没有将测试版本的软件源置为可用,您可以通过以下方式开启。同理可以开启各种测试版本等。
# vim /etc/yum.repos.d/docker-ce.repo
#   将[docker-ce-test]下方的enabled=0修改为enabled=1
#
# 安装指定版本的Docker-CE:
# Step 1: 查找Docker-CE的版本:
# yum list docker-ce.x86_64 --showduplicates | sort -r
#   Loading mirror speeds from cached hostfile
#   Loaded plugins: branch, fastestmirror, langpacks
#   docker-ce.x86_64            17.03.1.ce-1.el7.centos            docker-ce-stable
#   docker-ce.x86_64            17.03.1.ce-1.el7.centos            @docker-ce-stable
#   docker-ce.x86_64            17.03.0.ce-1.el7.centos            docker-ce-stable
#   Available Packages
# Step2: 安装指定版本的Docker-CE: (VERSION例如上面的17.03.0.ce.1-1.el7.centos)
# sudo yum -y install docker-ce-[VERSION]

添加daemon.json文件

mkdir /etc/docker
cat > /etc/docker/daemon.json <<EOF
{
"exec-opts": ["native.cgroupdriver-systemd"], ##默认的cgroup组为systemd 默认情况下有两个cgroupFS一个式systemd
"log-driver": "json-file", ##改存储的日志的存储格式
"log-opts": {
"max-size": "100m"
}
}
EOFsystemctl start docker;systemctl enable docker//或者sudo mkdir -p /etc/docker
sudo tee /etc/docker/daemon.json <<-'EOF'
{"exec-opts": ["native.cgroupdriver-systemd"],"registry-mirrors": ["https://89fk096n.mirror.aliyuncs.com"]
}
EOF
sudo systemctl daemon-reload
sudo systemctl restart docker

Kubeadm安装配置

1️⃣ 配置好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            
yum install --nogpgcheck -y kubelet-1.15.1 kubeadm-1.15.1 kubectl-1.15.1
systemctl start kubelet
systemctl enable kubelet

2️⃣ 使用工具把kubaedm工具压缩包上传到master节点(这个如果是网络不好拉去镜像慢,可以直接用这个办法,如果没有这个包可以看后面的网络拉取)

[root@master ~]# ls
kubeadm-basic.images.tar.gz
##解压
tar zxvf kubeadm-basic.images.tar.gz         

3️⃣ 然后将这些镜像导入docker,这里我直接写了给脚本导入–master

[root@master ~]# cat docker.sh #!/bin/bash
ls /root/kubeadm-basic.images >> /root/images.txt
cd /root/kubeadm-basic.images
for i in $(cat /root/images.txt)
dodocker load < $i
done
[root@master ~]# chmod +x  docker.sh 

4️⃣执行脚本

[root@master ~]# bash docker.sh      
fe9a8b4f1dcc: Loading layer  43.87MB/43.87MB
d1e1f61ac9f3: Loading layer  164.5MB/164.5MB
Loaded image: k8s.gcr.io/kube-apiserver:v1.15.1
fb61a074724d: Loading layer  479.7kB/479.7kB
c6a5fc8a3f01: Loading layer  40.05MB/40.05MB
Loaded image: k8s.gcr.io/coredns:1.3.1
8a788232037e: Loading layer   1.37MB/1.37MB
30796113fb51: Loading layer    232MB/232MB
6fbfb277289f: Loading layer  24.98MB/24.98MB
Loaded image: k8s.gcr.io/etcd:3.3.10
aa3154aa4a56: Loading layer  116.4MB/116.4MB
Loaded image: k8s.gcr.io/kube-controller-manager:v1.15.1
e17133b79956: Loading layer  744.4kB/744.4kB
Loaded image: k8s.gcr.io/pause:3.1
15c9248be8a9: Loading layer  3.403MB/3.403MB
00bb677df982: Loading layer  36.99MB/36.99MB
Loaded image: k8s.gcr.io/kube-proxy:v1.15.1
e8d95f5a4f50: Loading layer  38.79MB/38.79MB
Loaded image: k8s.gcr.io/kube-scheduler:v1.15.1
Loaded image: k8s.gcr.io/kube-apiserver:v1.15.1
Loaded image: k8s.gcr.io/coredns:1.3.1
Loaded image: k8s.gcr.io/etcd:3.3.10
Loaded image: k8s.gcr.io/kube-controller-manager:v1.15.1
Loaded image: k8s.gcr.io/pause:3.1
Loaded image: k8s.gcr.io/kube-proxy:v1.15.1
Loaded image: k8s.gcr.io/kube-scheduler:v1.15.1 

4️⃣ 查看

[root@master ~]# docker images
REPOSITORY                           TAG       IMAGE ID       CREATED       SIZE
k8s.gcr.io/kube-apiserver            v1.15.1   68c3eb07bfc3   2 years ago   207MB
k8s.gcr.io/kube-controller-manager   v1.15.1   d75082f1d121   2 years ago   159MB
k8s.gcr.io/kube-proxy                v1.15.1   89a062da739d   2 years ago   82.4MB
k8s.gcr.io/kube-scheduler            v1.15.1   b0b3c4c404da   2 years ago   81.1MB
k8s.gcr.io/coredns                   1.3.1     eb516548c180   2 years ago   40.3MB
k8s.gcr.io/etcd                      3.3.10    2c4adeb21b4f   2 years ago   258MB
k8s.gcr.io/pause                     3.1       da86e6ba6ca1   3 years ago   742kB

5️⃣在把脚本和解压后的镜像目录传输到node1,2节点在执行同样操作,我这里就不演示了

6️⃣在master创建kubeadm设置yaml模板

 kubeadm config print init-defaults > kubeadm-config.yaml 

7️⃣ 修改它的配置参数

[root@master ~]# cat kubeadm-config.yaml 
apiVersion: kubeadm.k8s.io/v1beta2
bootstrapTokens:
- groups:- system:bootstrappers:kubeadm:default-node-tokentoken: abcdef.0123456789abcdefttl: 24h0m0susages:- signing- authentication
kind: InitConfiguration
localAPIEndpoint:advertiseAddress: 192.168.100.10 ##这里修改为本机ipbindPort: 6443
nodeRegistration:criSocket: /var/run/dockershim.sockname: mastertaints:- effect: NoSchedulekey: node-role.kubernetes.io/master
---
apiServer:timeoutForControlPlane: 4m0s
apiVersion: kubeadm.k8s.io/v1beta2
certificatesDir: /etc/kubernetes/pki
clusterName: kubernetes
controllerManager: {}
dns:type: CoreDNS
etcd:local:dataDir: /var/lib/etcd
imageRepository: k8s.gcr.io
kind: ClusterConfiguration
kubernetesVersion: v1.15.1 ##注意
networking:dnsDomain: cluster.localpodSubnet: "10.244.0.0/16" ##这里添加ip地址,因为fannl的网络插件和这个一样serviceSubnet: 10.96.0.0/12
scheduler: {}
##添加以下,把默认的调度改为ipvs
---
apiVersion: kubeproxy.config.k8s.io/v1alpha1
kind: KubeProxyConfiguration
featureGates :SupportIPVSProxyMode: true
mode: ipvs

8️⃣ 初始化kubeadmn

  kubeadm init --config=kubeadm-config.yaml --experimental-upload-certs | tee kubeadm-init.log    

9️⃣ 下面是初始化介绍

**--config :指定文件**--experimental-upload-certs: 自动颁发证书 1.13.8才有这个命令初始化操作主要经历了下面 15 个步骤,每个阶段均输出均使用[步骤名称]作为开头: [init]:指定版本进行初始化操作。[preflight]:初始化前的检查和下载所需要的 Docker 镜像文。。 [kubelet-start]:生成 Kubelet 的配置文件/var/lib/kubelet/config.yaml,没有这个文件 Kubelet 无法启动,所以初始化之前的 Kubelet  实际上启动失败。 [certificates]:生成 Kubernetes 使用的证书,存放在/etc/kubernetes/pki 目录中。 [kubeconfig]:生成 KubeConfig 文件,存放在/etc/kubernetes 目录中,组件之间通信需 要使用对应文件。 [control-plane]:使用/etc/kubernetes/manifest 目录下的 YAML 文件,安装 Master 组件。 [etcd]:使用/etc/kubernetes/manifest/etcd.yaml 安装 Etcd 服务。 [wait-control-plane]:等待 control-plan 部署的 Master 组件启动。 [apiclient]:检查 Master 组件服务状态。 [uploadconfig]:更新配置。 [kubelet]:使用 configMap 配置 Kubelet。[patchnode]:更新 CNI 信息到 Node 上,通过注释的方式记录。[mark-control-plane]:为当前节点打标签,打了角色 Master,和不可调度标签,这样默 认就不会使用 Master 节点来运行 Pod。[bootstrap-token]:生成的 Token 需要记录下来,后面使用 kubeadm join 命令往集群中 添加节点时会用到。[addons]:安装附加组件 CoreDNS 和 kube-proxy。
网络拉取

1️⃣ 配置kubeadm配置文件

[root@master ~]# kubeadm config print init-defaults > kubeadm.yaml  
[root@master ~]# vim kubeadm.yaml 
[root@master ~]# cat kubeadm.yaml 
apiVersion: kubeadm.k8s.io/v1beta2
bootstrapTokens:
- groups:- system:bootstrappers:kubeadm:default-node-tokentoken: abcdef.0123456789abcdefttl: 24h0m0susages:- signing- authentication
kind: InitConfiguration
localAPIEndpoint:advertiseAddress: 192.168.200.10bindPort: 6443
nodeRegistration:criSocket: /var/run/dockershim.sockname: mastertaints:- effect: NoSchedulekey: node-role.kubernetes.io/master
---
apiServer:timeoutForControlPlane: 4m0s
apiVersion: kubeadm.k8s.io/v1beta2
certificatesDir: /etc/kubernetes/pki
clusterName: kubernetes
controllerManager: {}
dns:type: CoreDNS
etcd:local:dataDir: /var/lib/etcd
imageRepository: registry.aliyuncs.com/google_containers ##修改拉取镜像仓库
kind: ClusterConfiguration
##版本号需要修改为15
kubernetesVersion: v1.15.0
networking:dnsDomain: cluster.localserviceSubnet: 10.96.0.0/12podSubnet: "10.244.0.0/16"
scheduler: {}
---
apiVersion: kubeproxy.config.k8s.io/v1alpha1
kind: KubeProxyConfiguration
featureGates :SupportIPVSProxyMode: true
mode: ipvs

2️⃣ 初始化kubeadmn

 kubeadm init  --config kubeadm.yaml            

3️⃣ 假如初始化失败就用下面方法(加入节点失败也通用)

kubeadm reset
ifconfig cni0 down
ip link delete cni0
ifconfig flannel.1 down 
ip link delete flannel.1
rm -rf /var/lib/cni/

后序操作

1️⃣ 按照提示复制创建kubelet和api的缓存文件(执行完成kubeadm init操作后面会有这个直接复制即可)

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

2️⃣ 查看节点, 如果是NotReady 因为网络没有创建

[root@master ~]# kubectl get node
NAME     STATUS     ROLES    AGE    VERSION
master   NotReady   master   3m6s   v1.15.1

3️⃣ 布置flannel

[root@master ~]# mkdir flannel
[root@master ~]# cd flannel
[root@master ~]# kubectl apply -f https://raw.githubusercontent.com/coreos/flannel/master/Documentation/kube-flannel.yml
podsecuritypolicy.policy/psp.flannel.unprivileged created
clusterrole.rbac.authorization.k8s.io/flannel created
clusterrolebinding.rbac.authorization.k8s.io/flannel created
serviceaccount/flannel created
configmap/kube-flannel-cfg created
daemonset.apps/kube-flannel-ds created

4️⃣ 查看flannel组件

[root@master ~]# kubectl get pod  -n kube-system
NAME                             READY   STATUS              RESTARTS   AGE
coredns-5c98db65d4-kvkbl         0/1     ContainerCreating   0          46m
coredns-5c98db65d4-qjhm2         0/1     ContainerCreating   0          46m
etcd-master                      1/1     Running             0          45m
kube-apiserver-master            1/1     Running             0          45m
kube-controller-manager-master   1/1     Running             0          45m
kube-flannel-ds-bfw2x            1/1     Running             0          37m
kube-proxy-tvbgm                 1/1     Running             0          46m
kube-scheduler-master            1/1     Running 

5️⃣ 看网卡

ifconfig
flannel.1: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1450inet 10.244.0.0  netmask 255.255.255.255  broadcast 10.244.0.0ether 02:eb:0e:38:30:4e  txqueuelen 0  (Ethernet)RX packets 0  bytes 0 (0.0 B)RX errors 0  dropped 0  overruns 0  frame 0TX packets 0  bytes 0 (0.0 B)TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

查看移除master节点污点

⭐️ 移除后就可以在master节点启动pod和存储镜像了

1️⃣ 查看
kubectl describe node  master
Taints:             node-role.kubernetes.io/master:NoSchedule ##NoSchedule就代表不可调度

NoSchedule :表示 k8s 将不会将 Pod 调度到具有该污点的 Node 上 PreferNoSchedule :表示 k8s 将尽量避免将 Pod 调度到具有该污点的 Node 上 NoExecute :表示 k8s 将不会将 Pod 调度到具有该污点的 Node 上,同时会将 Node 上已经存在的 Pod 驱逐出去

2️⃣ 修改
[root@master ~]# kubectl edit node master
spec:podCIDR: 10.244.0.0/24taints:- effect: PreferNoSchedule ##原来是NoSchedulekey: node-role.kubernetes.io/master    
3️⃣ 再次查看
kubectl describe node  master
Taints:             node-role.kubernetes.io/master:PreferNoSchedule

子节点加入

1️⃣ 查看加入命令,在各个node中使用
[root@master ~]# kubeadm token create --print-join-command
kubeadm join 192.168.100.10:6443 --token 9nx4cb.2zjgaeo5ju98fnq3     --discovery-token-ca-cert-hash sha256:4d4eb15f1f4c36f1283b0a319f74b8e79110d263830d41d82c82b3c2dbe326b2
2️⃣ 查看
[root@master ~]# kubectl get node
NAME     STATUS     ROLES    AGE   VERSION
master   Ready      master   65m   v1.15.1
node1    NotReady   <none>   13s   v1.15.1
node2    NotReady   <none>   5s    v1.15.1
3️⃣ 移除node
kubectl delete node [node名]
4️⃣ 查看加入节点命令
kubeadm token create --print-join-command

相关文章:

二、k8s快速入门之docker+Kubernetes平台搭建

centosmaster192.168.100.10centosnode1192.168.100.20centosnode2192.168.100.30 除特殊说明命令都需要在三台都执行 ⭐️ k8s 的指令&#xff1a; kubeadm&#xff1a;用来初始化集群的指令kubelet: 在集群中的每个节点上用来启动Pod和容器kubectl: 用来与集群通信的命令行…...

k8s的发展历史

Kubernetes&#xff08;通常缩写为 K8s&#xff09;是一个开源的容器编排平台&#xff0c;用于自动化应用程序的部署、扩展和管理。它的发展历史可以追溯到多个关键的里程碑&#xff1a; 1. 起源&#xff08;2013 年&#xff09; Kubernetes 的起源可以追溯到 Google 的内部项…...

Pytorch lightning多机多卡训练通讯问题(NCCL error)排查

一、问题 单机多卡可以正常训练模型&#xff0c;多机多卡数据加载完成后卡住不动&#xff0c;排查两台机器可以ping通&#xff0c;表明网络没有问题&#xff0c;查看bug信息是NCCL通信问题。报错信息大致如下: torch.distributed.DistBackendError: NCCL error in: …/torch/c…...

React如何实现Vue的keepAlive功能

前言 在React中&#xff0c;默认情况下组件在被卸载后会销毁状态&#xff0c;这与Vue的keep-alive功能不同。在Vue中&#xff0c;keep-alive组件可以缓存组件状态&#xff0c;在路由切换时重新挂载。实现这一功能在React中并不简单&#xff0c;但我们可以借助一个第三方库——…...

在 Ubuntu 22.04 LTS 上安装 NVM (Node Version Manager) 管理和切换不同版本的 Node.js npm

安装 nvm curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.40.1/install.sh | bash# nvm --version 0.40.1安装 Node.js 的不同版本 列出所有可用的 Node.js 远程版本 nvm ls-remotenvm install v18.20.4# node --version v18.20.4# nvm current v18.20.4npm 是 …...

如何搭建题库管理小序❓

土著刷题小&#x1f34a;序不仅能够作为组织考试的利器&#xff0c;它同样可以帮助教育培训机构构建一个强大且高效的题库管理系统。 下面跟随我们的指导&#xff0c;一起来看看如何利用土著刷题小&#x1f34a;序轻松快捷地建立起自己的题库&#xff0c;并享受其所带来的诸多好…...

Spring Boot框架下校园社团信息管理的创新实践

2相关技术 2.1 MYSQL数据库 MySQL是一个真正的多用户、多线程SQL数据库服务器。 是基于SQL的客户/服务器模式的关系数据库管理系统&#xff0c;它的有点有有功能强大、使用简单、管理方便、安全可靠性高、运行速度快、多线程、跨平台性、完全网络化、稳定性等&#xff0c;非常…...

vscode clangd for cuda 插件配置

这里写目录标题 1. 下载插件clangd,并且安装server到host2. 配置3. 安装调试插件 1. 下载插件clangd,并且安装server到host 步骤 extension下载 altshiftp, 下服务&#xff0c;如果下不下来请考虑用&#x1fa9c; 下载好后check一下&#xff0c;检查是否正常 正常的标志 注意…...

软件测试学习笔记丨SeleniumPO模式

本文转自测试人社区&#xff0c;原文链接&#xff1a;https://ceshiren.com/t/topic/22525 本文为霍格沃兹测试开发学社的学习经历分享&#xff0c;写出来分享给大家&#xff0c;希望有志同道合的小伙伴可以一起交流技术&#xff0c;一起进步~ 说明&#xff1a;本篇博客基于sel…...

研发效能DevOps: Vite 使用 Vue Router

目录 一、实验 1.环境 2.初始化前端项目 3.安装vue-router 4.Vite 使用 Vue Router 二、问题 1.运行出现空页面 2.Vue Router如何禁止页面回退 一、实验 1.环境 &#xff08;1&#xff09;主机 表1 主机 系统 软件版本备注Windows11VS Code1.94.2Node.jsv18.20.4(LT…...

记第一次本地编译seatunnel源码

拉取代码 git clone https://github.com/apache/seatunnel.git 使用版本 我们生产环境用的是2.3.5版本&#xff0c;所以基于2.3.5-release分支代码进行编译。 maven package过程 遇到的第一个问题&#xff1a;‘com.sun.tools.javac.tree.JCTree com.sun.tools.javac.tree…...

《云主机配置全攻略》

《云主机配置全攻略》 一、云主机配置的重要性二、配置云主机的关键要素&#xff08;一&#xff09;CPU 的选择&#xff08;二&#xff09;内存的考量&#xff08;三&#xff09;硬盘的抉择&#xff08;四&#xff09;带宽的确定&#xff08;五&#xff09;机房线路的考虑&…...

RHCE nginx架构和安装

nginx架构和安装 nginx架构和安装1.1 nginx架构1.2 安装nginx1.1.1 本地安装1.1.2 官网安装1.1.3 源码安装 1.3 控制服务1.4 页面自定义 nginx架构和安装 nginx是多进程组织模式&#xff0c;而且是一个由 Master 主进程和 Worker 工作进程组成 1.1 nginx架构 1.2 安装nginx …...

Jmeter自动化实战

一、前言 由于系统业务流程很复杂,在不同的阶段需要不同的数据,且数据无法重复使用,每次造新的数据特别繁琐,故想着能不能使用jmeter一键造数据 二、创建录制模板 可参考:jmeter录制接口 首先创建一个录制模板 因为会有各种请求头,cookies,签名,认证信息等原因,导致手动复制…...

构建高效的Java SOCKS5代理:从零开始的网络转发实现

✅作者简介&#xff1a;2022年博客新星 第八。热爱国学的Java后端开发者&#xff0c;修心和技术同步精进。 &#x1f34e;个人主页&#xff1a;Java Fans的博客 &#x1f34a;个人信条&#xff1a;不迁怒&#xff0c;不贰过。小知识&#xff0c;大智慧。 &#x1f49e;当前专栏…...

spring-boot(绑定配置文件及应用)

配置文件 SpringBoot使用一个全局的配置文件&#xff0c;配置文件名是固定的&#xff1b; application.properties application.yml 配置文件的作用&#xff1a;修改SpringBoot自动配置的默认值&#xff1b;SpringBoot在底层都给我们自动配置好&#xff1b; YAML&#x…...

Mac OS 搭建MySQL开发环境

Mac OS 搭建MySQL开发环境 文章目录 Mac OS 搭建MySQL开发环境一、安装Mysql&#xff1a;二、配置环境变量三、安装Navicat 本地环境&#xff1a; Mac OS Sequoia15.0.1&#xff08;M3 Max) 目标状态&#xff1a; 下载安装Mysql&#xff0c;配置相关环境。 一、安装Mysql&…...

windows下安装python库wordCloud报错

换电脑安装wordcloud半天安装失败&#xff0c;记录一下遇到的坑&#xff0c;也给大家节省点时间。 方法1&#xff1a; 错误呢就是下面这个&#xff0c;说没c编译器&#xff0c;要不就去他给的地址上安装一下&#xff0c;我安装了一下好像没什么用&#xff0c;也没太敢勾选&am…...

Spring IOC 自动装配(注入)

注解⽅式注⼊ Bean 对于 bean 的注⼊&#xff0c;除了使⽤ xml 配置以外&#xff0c;可以使⽤注解配置。注解的配置&#xff0c;可以简化配置⽂件&#xff0c; 提⾼开发的速度&#xff0c;使程序看上去更简洁。对于注解的解释&#xff0c;Spring对于注解有专⻔的解释器&#…...

Go使用SIMD指令——以string转为整数为例

本文Go使用SIMD指令采用如下方式&#xff1a; C编写对应的程序clang编译成汇编c2goasm将上述生成的汇编转为go的汇编 准备工具 clang。直接使用apt-get install clang安装即可c2goasm。 go get -u github.com/minio/c2goasm来进行安装asm2plan9s。 go get -u github.com/min…...

基于FPGA的PID算法学习———实现PID比例控制算法

基于FPGA的PID算法学习 前言一、PID算法分析二、PID仿真分析1. PID代码2.PI代码3.P代码4.顶层5.测试文件6.仿真波形 总结 前言 学习内容&#xff1a;参考网站&#xff1a; PID算法控制 PID即&#xff1a;Proportional&#xff08;比例&#xff09;、Integral&#xff08;积分&…...

VB.net复制Ntag213卡写入UID

本示例使用的发卡器&#xff1a;https://item.taobao.com/item.htm?ftt&id615391857885 一、读取旧Ntag卡的UID和数据 Private Sub Button15_Click(sender As Object, e As EventArgs) Handles Button15.Click轻松读卡技术支持:网站:Dim i, j As IntegerDim cardidhex, …...

mongodb源码分析session执行handleRequest命令find过程

mongo/transport/service_state_machine.cpp已经分析startSession创建ASIOSession过程&#xff0c;并且验证connection是否超过限制ASIOSession和connection是循环接受客户端命令&#xff0c;把数据流转换成Message&#xff0c;状态转变流程是&#xff1a;State::Created 》 St…...

Vue2 第一节_Vue2上手_插值表达式{{}}_访问数据和修改数据_Vue开发者工具

文章目录 1.Vue2上手-如何创建一个Vue实例,进行初始化渲染2. 插值表达式{{}}3. 访问数据和修改数据4. vue响应式5. Vue开发者工具--方便调试 1.Vue2上手-如何创建一个Vue实例,进行初始化渲染 准备容器引包创建Vue实例 new Vue()指定配置项 ->渲染数据 准备一个容器,例如: …...

Maven 概述、安装、配置、仓库、私服详解

目录 1、Maven 概述 1.1 Maven 的定义 1.2 Maven 解决的问题 1.3 Maven 的核心特性与优势 2、Maven 安装 2.1 下载 Maven 2.2 安装配置 Maven 2.3 测试安装 2.4 修改 Maven 本地仓库的默认路径 3、Maven 配置 3.1 配置本地仓库 3.2 配置 JDK 3.3 IDEA 配置本地 Ma…...

Python ROS2【机器人中间件框架】 简介

销量过万TEEIS德国护膝夏天用薄款 优惠券冠生园 百花蜂蜜428g 挤压瓶纯蜂蜜巨奇严选 鞋子除臭剂360ml 多芬身体磨砂膏280g健70%-75%酒精消毒棉片湿巾1418cm 80片/袋3袋大包清洁食品用消毒 优惠券AIMORNY52朵红玫瑰永生香皂花同城配送非鲜花七夕情人节生日礼物送女友 热卖妙洁棉…...

AI病理诊断七剑下天山,医疗未来触手可及

一、病理诊断困局&#xff1a;刀尖上的医学艺术 1.1 金标准背后的隐痛 病理诊断被誉为"诊断的诊断"&#xff0c;医生需通过显微镜观察组织切片&#xff0c;在细胞迷宫中捕捉癌变信号。某省病理质控报告显示&#xff0c;基层医院误诊率达12%-15%&#xff0c;专家会诊…...

Java求职者面试指南:计算机基础与源码原理深度解析

Java求职者面试指南&#xff1a;计算机基础与源码原理深度解析 第一轮提问&#xff1a;基础概念问题 1. 请解释什么是进程和线程的区别&#xff1f; 面试官&#xff1a;进程是程序的一次执行过程&#xff0c;是系统进行资源分配和调度的基本单位&#xff1b;而线程是进程中的…...

NPOI操作EXCEL文件 ——CAD C# 二次开发

缺点:dll.版本容易加载错误。CAD加载插件时&#xff0c;没有加载所有类库。插件运行过程中用到某个类库&#xff0c;会从CAD的安装目录找&#xff0c;找不到就报错了。 【方案2】让CAD在加载过程中把类库加载到内存 【方案3】是发现缺少了哪个库&#xff0c;就用插件程序加载进…...

C语言中提供的第三方库之哈希表实现

一. 简介 前面一篇文章简单学习了C语言中第三方库&#xff08;uthash库&#xff09;提供对哈希表的操作&#xff0c;文章如下&#xff1a; C语言中提供的第三方库uthash常用接口-CSDN博客 本文简单学习一下第三方库 uthash库对哈希表的操作。 二. uthash库哈希表操作示例 u…...