RockyLinux9.6搭建k8s集群

?

博主介紹:?全網粉絲5W+,全棧開發工程師,從事多年軟件開發,在大廠呆過。持有軟件中級、六級等證書。可提供微服務項目搭建與畢業項目實戰,博主也曾寫過優秀論文,查重率極低,在這方面有豐富的經驗?

博主作品:《Java項目案例》主要基于SpringBoot+MyBatis/MyBatis-plus+MySQL+Vue等前后端分離項目,可以在左邊的分類專欄找到更多項目。《Uniapp項目案例》有幾個有uniapp教程,企業實戰開發。《微服務實戰》專欄是本人的實戰經驗總結,《Spring家族及微服務系列》專注Spring、SpringMVC、SpringBoot、SpringCloud系列、Nacos等源碼解讀、熱門面試題、架構設計等。除此之外還有不少文章等你來細細品味,更多驚喜等著你哦

🍅uniapp微信小程序🍅面試題軟考題免費使用,還可以使用微信支付,掃碼加群。由于維護成本問題得不到解決,可能將停止線上維護。

🍅文末獲取聯系🍅精彩專欄推薦訂閱👇🏻👇🏻 不然下次找不到喲

Java項目案例《100套》
https://blog.csdn.net/qq_57756904/category_12173599.html
uniapp小程序《100套》

https://blog.csdn.net/qq_57756904/category_12173599.html

有需求代碼永遠寫不完,而方法才是破解之道,抖音有實戰視頻課程,某馬某千等培訓都是2萬左右,甚至廣東有本科院校單單一年就得3萬4年就12萬學費,而且還沒有包括吃飯的錢。所以很劃算了。另外博客左側有源碼閱讀專欄,對于求職有很大幫助,當然對于工作也是有指導意義等。在大城市求職,你面試來回一趟多多少少都在12塊左右,而且一般不會一次性就通過,還得面試幾家。而如果你對源碼以及微服務等有深度認識,這無疑給你的面試添磚加瓦更上一層樓。

最后再送一句:最好是學會了,而不是學廢了!!

目錄

Kubernetes介紹

Kubernetes具備的功能

Kubernetes集群角色

Master管理節點組件

Node工作節點組件

非必須的集群插件

Kubernetes集群類型

Kubernetes集群規劃

集群前期環境準備(所有節點執行)

禁用 SELinux

關閉防火墻

禁用 swap

開啟Bridge網橋過濾

安裝Containerd軟件包

安裝 Kubernetes 組件(所有節點執行)

Master 節點初始化

在master節點查看集群所需鏡像文件

使用阿里云的源拉取鏡像

改tag

使用阿里云鏡像

執行初始化命令(使用阿里云鏡像)

初始化成功并按照如圖所示執行相應命令

根據提示將node節點加入集群(在node1和node2執行)

?編輯

加入成功后在master節點驗證


Kubernetes介紹


kubernetes(k8s)是2014年由Google公司基于Go語言編寫的一款開源的容器集群編排系統,用于自動化容器的部署、擴縮容和管理;

kubernetes(k8s)是基于Google內部的Borg系統的特征開發的一個版本,集成了Borg系統大部分優勢;

官方地址:Kubernetes

代碼托管平臺:https://github.com/Kubernetes

Kubernetes具備的功能

  • 自我修復:k8s可以監控容器的運行狀況,并在發現容器出現異常時自動重啟故障實例;
  • 彈性伸縮:k8s可以根據資源的使用情況自動地調整容器的副本數。例如,在高峰時段,k8s可以自動增加容器的副本數以應對更多的流量;而在低峰時段,k8s可以減少應用的副本數,節省資源;
  • 資源限額:k8s允許指定每個容器所需的CPU和內存資源,能夠更好的管理容器的資源使用量;
  • 滾動升級:k8s可以在不中斷服務的情況下滾動升級應用版本,確保在整個過程中仍有足夠的實例在提供服務;
  • 負載均衡:k8s可以根據應用的負載情況自動分配流量,確保各個實例之間的負載均衡,避免某些實例過載導致的性能下降;
  • 服務發現:k8s可以自動發現應用的實例,并為它們分配一個統一的訪問地址。這樣,用戶只需要知道這個統一的地址,就可以訪問到應用的任意實例,而無需關心具體的實例信息;
  • 存儲管理:k8s可以自動管理應用的存儲資源,為應用提供持久化的數據存儲。這樣,在應用實例發生變化時,用戶數據仍能保持一致,確保數據的持久性;
  • 密鑰與配置管理:Kubernetes 允許你存儲和管理敏感信息,例如:密碼、令牌、證書、ssh密鑰等信息進行統一管理,并共享給多個容器復用;

Kubernetes集群角色


k8s集群需要建?在多個節點上,將多個節點組建成一個集群,然后進?統?管理,但是在k8s集群內部,這些節點?被劃分成了兩類??:

一類??為管理節點,叫Master,負責集群的所有管理工作;
?類??為?作節點,叫Node,負責運行集群中所有用戶的容器應用 ;


Master管理節點組件


API Server:作為集群的管理入口,處理外部和內部通信,接收用戶請求并處理集群內部組件之間的通信;
Scheduler:作為集群資源調度計算,根據調度策略,負責將待部署的 Pods 分配到合適的 Node 節點上;
Controller Manager:管理集群中的各種控制器,例如 Deployment、ReplicaSet、DaemonSet等,管理集群中的各種資源;
etcd:作為集群的數據存儲,保存集群的配置信息和狀態信息;


Node工作節點組件


Kubelet:負責與 Master 節點通信,并根據 Master 節點的調度決策來創建、更新和刪除 Pod,同時維護 Node 節點上的容器狀態;
容器運行時(如 Docker、containerd 等):負責運行和管理容器,提供容器生命周期管理功能。例如:創建、更新、刪除容器等;
Kube-proxy:負責為集群內的服務實現網絡代理和負載均衡,確保服務的訪問性;


非必須的集群插件


DNS服務:嚴格意義上的必須插件,在k8s中,很多功能都需要用到DNS服務,例如:服務發現、負載均衡、有狀態應用的訪問等;
Dashboard: 是k8s集群的Web管理界面;
資源監控:例如metrics-server監視器,用于監控集群中資源利用率;


Kubernetes集群類型


一主多從集群:由一臺Master管理節點和多臺Node工作節點組成,生產環境下Master節點存在單點故障的風險,適合學習和測試環境使用;
多主多從集群:由多臺Master管理節點和多Node工作節點組成,安全性高,適合生產環境使用;


Kubernetes集群規劃


給這些虛擬機操作,關閉防火墻和selinux,進行時間同步。 ?

主機IP地址角色操作系統硬件配置
master192.168.252.128管理節點Rocky Linux9.62CPU/2G內存/20G
node1192.168.252.129工作節點Rocky Linux9.61CPU/2G內存/20G
node2192.168.252.130工作節點Rocky Linux9.61CPU/2G內存/20G

集群前期環境準備(所有節點執行)


按照集群規劃修改每個節點主機名。hostnamectl執行可以查看是否設置成功,名稱是否對。

# 對192.168.252.128操作
hostnamectl set-hostname master# 對192.168.252.129操作
hostnamectl set-hostname node1# 對192.168.252.130操作
hostnamectl set-hostname node2

配置本地域名解析,配置集群之間本地解析,集群在初始化時需要能夠解析主機名,三臺都要配

# 編輯 hosts 文件
sudo vi /etc/hosts# 添加以下內容(替換為實際IP)
192.168.252.128 k8s-master
192.168.252.129 k8s-node1
192.168.252.130 k8s-node2

禁用 SELinux

sudo setenforce 0sudo sed -i 's/^SELINUX=enforcing$/SELINUX=permissive/' /etc/selinux/config

關閉防火墻

sudo systemctl stop firewalldsudo systemctl disable firewalld

禁用 swap

sudo swapoff -asudo sed -i '/ swap / s/^\(.*\)$/#\1/g' /etc/fstab

開啟Bridge網橋過濾
?

bridge(橋接) 是 Linux 系統中的一種虛擬網絡設備,它充當一個虛擬的交換機,為集群內的容器提供網絡通信功能,容器就可以通過這個 bridge 與其他容器或外部網絡通信了。

# 配置內核參數
cat <<EOF | sudo tee /etc/sysctl.d/k8s.conf
net.bridge.bridge-nf-call-ip6tables = 1
net.bridge.bridge-nf-call-iptables = 1
net.ipv4.ip_forward = 1
EOFsudo sysctl --system


?參數解釋:

net.bridge.bridge-nf-call-ip6tables = 1 //對網橋上的IPv6數據包通過iptables處理

net.bridge.bridge-nf-call-iptables = 1 //對網橋上的IPv4數據包通過iptables處理

net.ipv4.ip_forward = 1 //開啟IPv4路由轉發,來實現集群中的容器與外部網絡的通信

由于開啟bridge功能,需要加載br_netfilter模塊來允許在bridge設備上的數據包經過iptables防火墻處理

modprobe br_netfilter && lsmod | grep br_netfilter


命令解釋:

modprobe //命令可以加載內核模塊

br_netfilter //模塊模塊允許在bridge設備上的數據包經過iptables防火墻處理

加載配置文件,使上述配置生效

sysctl -p /etc/sysctl.d/k8s.conf


安裝Containerd軟件包

添加阿里云docker-ce倉庫(containerd軟件包在docker倉庫)

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


安裝containerd軟件包

dnf install -y containerd.io#或者帶上版本
dnf install -y containerd.io-1.6.20-3.1.el9.x86_64


生成containerd配置文件

sudo mkdir -p /etc/containerdcontainerd config default | sudo tee /etc/containerd/config.toml


啟用Cgroup用于限制進程的資源使用量,如CPU、內存資源?

sudo sed -i 's/SystemdCgroup = false/SystemdCgroup = true/' /etc/containerd/config.toml


替換文件中pause鏡像的下載地址為阿里云倉庫,3.8是自己的版本在config.toml查找

sed -i 's#sandbox_image = "registry.k8s.io/pause:3.8"#sandbox_image = "registry.aliyuncs.com/google_containers/pause:3.9"#' /etc/containerd/config.toml


?為Containerd配置鏡像加速器,在文件中找到[plugins."io.containerd.grpc.v1.cri".registry.mirrors],在下方添加阿里云鏡像加速器

vi /etc/containerd/config.toml
#...大約帶153行左右[plugins."io.containerd.grpc.v1.cri".registry.mirrors][plugins."io.containerd.grpc.v1.cri".registry.mirrors."docker.io"]endpoint = ["https://docker.rainbond.cc", "https://do.nark.eu.org", "https://dc.j8.work", "https://pilvpemn.mirror.aliyuncs.com", "https://docker.m.daocloud.io", "https://dockerproxy.com", "https://docker.mirrors.ustc.edu.cn", "https://docker.nju.edu.cn"]


指定contaienrd接口文件地址,在k8s環境中,kubelet通過 containerd.sock 文件與containerd進行通信

cat <<EOF | tee /etc/crictl.yaml
runtime-endpoint: unix:///var/run/containerd/containerd.sock
image-endpoint: unix:///var/run/containerd/containerd.sock
timeout: 10
debug: false
EOF


參數解釋:

runtime-endpoint //指定了容器運行時的sock文件位置

image-endpoint //指定了容器鏡像使用的sock文件位置

timeout //容器運行時或容器鏡像服務之間的通信超時時間

debug //指定了crictl工具的調試模式,false表示調試模式未啟用,true則會在輸出中包含更多的調試日志信息,有助于故障排除和問題調試

啟動containerd并設置隨機自啟?

systemctl enable containerd --now


安裝 Kubernetes 組件(所有節點執行)


kubernetes集群有多種部署方式,目前常用的部署方式有如下兩種:

kubeadm部署方式:kubeadm是一個快速搭建kubernetes的集群工具;
二進制包部署方式:從官網下載每個組件的二進制包,依次去安裝,部署麻煩;
其他方式:通過一些開源的工具搭建,例如:sealos;
配置kubeadm倉庫,本實驗使用阿里云YUM源

cat > /etc/yum.repos.d/k8s.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


安裝以下軟件包:

kubeadm:用于初始化集群,并配置集群所需的組件并生成對應的安全證書和令牌;
kubelet:負責與 Master 節點通信,并根據 Master 節點的調度決策來創建、更新和刪除 Pod,同時維護 Node 節點上的容器狀態;
kubectl:用于管理k8集群的一個命令行工具;

yum -y install kubeadm-1.28.2 kubelet-1.28.2 kubectl-1.28.2


kubelet啟用Cgroup控制組,用于限制進程的資源使用量,如CPU、內存

tee > /etc/sysconfig/kubelet <<EOF
KUBELET_EXTRA_ARGS="--cgroup-driver=systemd"
EOF


設置kubelet開機自啟動即可,集群初始化后自動啟動

systemctl enable kubelet

Master 節點初始化



在master節點查看集群所需鏡像文件

[root@master01 ~]# kubeadm config images list
W0813 20:45:03.587714 ? ?2189 version.go:104] could not fetch a Kubernetes version from the internet: unable to get URL "https://dl.k8s.io/release/stable-1.txt": Get "https://cdn.dl.k8s.io/release/stable-1.txt": context deadline exceeded (Client.Timeout exceeded while awaiting headers)
W0813 20:45:03.587821 ? ?2189 version.go:105] falling back to the local client version: v1.28.2
registry.k8s.io/kube-apiserver:v1.28.15
registry.k8s.io/kube-controller-manager:v1.28.15
registry.k8s.io/kube-scheduler:v1.28.15
registry.k8s.io/kube-proxy:v1.28.15
registry.k8s.io/pause:3.9
registry.k8s.io/etcd:3.5.9-0
registry.k8s.io/coredns/coredns:v1.10.1


使用阿里云的源拉取鏡像

ctr image pull registry.cn-hangzhou.aliyuncs.com/google_containers/kube-apiserver:v1.28.15
ctr image pull registry.cn-hangzhou.aliyuncs.com/google_containers/kube-controller-manager:v1.28.15
ctr image pull registry.cn-hangzhou.aliyuncs.com/google_containers/kube-scheduler:v1.28.15
ctr image pull registry.cn-hangzhou.aliyuncs.com/google_containers/kube-proxy:v1.28.15
ctr image pull registry.cn-hangzhou.aliyuncs.com/google_containers/pause:3.9
ctr image pull registry.cn-hangzhou.aliyuncs.com/google_containers/etcd:3.5.9-0
ctr image pull registry.cn-hangzhou.aliyuncs.com/google_containers/coredns:v1.10.1


改tag


ctr image tag registry.cn-hangzhou.aliyuncs.com/google_containers/kube-apiserver:v1.28.15 registry.k8s.io/kube-apiserver:v1.28.15ctr image tag registry.cn-hangzhou.aliyuncs.com/google_containers/kube-controller-manager:v1.28.15 registry.k8s.io/kube-controller-manager:v1.28.15ctr image tag registry.cn-hangzhou.aliyuncs.com/google_containers/kube-scheduler:v1.28.15 registry.k8s.io/kube-scheduler:v1.28.15ctr image tag registry.cn-hangzhou.aliyuncs.com/google_containers/kube-proxy:v1.28.15 registry.k8s.io/kube-proxy:v1.28.15ctr image tag registry.cn-hangzhou.aliyuncs.com/google_containers/pause:3.9 registry.k8s.io/pause:3.9ctr image tag registry.cn-hangzhou.aliyuncs.com/google_containers/etcd:3.5.9-0 registry.k8s.io/etcd:3.5.9-0ctr image tag registry.cn-hangzhou.aliyuncs.com/google_containers/coredns:v1.10.1 registry.k8s.io/coredns/coredns:v1.10.1

使用阿里云鏡像

# 手動拉取鏡像
sudo crictl pull registry.aliyuncs.com/google_containers/pause:3.9# 查看 containerd 鏡像
sudo crictl images

執行初始化命令(使用阿里云鏡像)

sudo kubeadm init \--pod-network-cidr=10.244.0.0/16 \--apiserver-advertise-address=<master_ip> \--image-repository=registry.aliyuncs.com/google_containers \--cri-socket=unix:///var/run/containerd/containerd.sock


初始化成功并按照如圖所示執行相應命令

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

根據提示將node節點加入集群(在node1和node2執行)

kubeadm join 192.168.252.128:6443 --token 5upatr.oghll4vh1pkecs5a \--discovery-token-ca-cert-hash sha256:289b53fd07d2ff1b213f99c221e59329b06c4f369019ad4895498449a69f91d4 

加入成功后在master節點驗證

kubectl get nodes

部署集群網絡Calico

Calico 和 Flannel 是兩種流行的 k8s 網絡插件,它們都為集群中的 Pod 提供網絡功能。然而,它們在實現方式和功能上有一些重要區別:

網絡模型的區別:

Calico 使用 BGP(邊界網關協議)作為其底層網絡模型。它利用 BGP 為每個 Pod 分配一個唯一的 IP 地址,并在集群內部進行路由。Calico 支持網絡策略,可以對流量進行精細控制,允許或拒絕特定的通信。
Flannel 則采用了一個簡化的覆蓋網絡模型。它為每個節點分配一個 IP 地址子網,然后在這些子網之間建立覆蓋網絡。Flannel 將 Pod 的數據包封裝到一個更大的網絡數據包中,并在節點之間進行轉發。Flannel 更注重簡單和易用性,不提供與 Calico 類似的網絡策略功能。
性能的區別:

由于 Calico 使用 BGP 進行路由,其性能通常優于 Flannel。Calico 可以實現直接的 Pod 到 Pod 通信,而無需在節點之間進行額外的封裝和解封裝操作。這使得 Calico 在大型或高度動態的集群中具有更好的性能。
Flannel 的覆蓋網絡模型會導致額外的封裝和解封裝開銷,從而影響網絡性能。對于較小的集群或對性能要求不高的場景,這可能并不是一個嚴重的問題。
master01節點下載Calico文件

wget https://raw.githubusercontent.com/projectcalico/calico/v3.24.1/manifests/calico.yaml


?注意:如果無法下載,就瀏覽器打開該網頁直接復制網頁內容粘貼到master01中即可。

創建calico網絡

kubectl apply -f calico.yaml?


查看Calico Pod狀態是否為Running
?需要耐心等會讓其一個一個啟動,系統配置夠的話大概幾分鐘即可。

驗證集群節點狀態

在master節點查看集群信息

部署Nginx測試集群
NodePort 服務

在master節點部署nginx程序測試

[root@master01 ~]# vim nginx-test.yml
apiVersion: v1
kind: Pod
metadata:name: nginxlabels:app: nginx
spec:containers:- name: nginximage: nginx:1.20.2ports:- containerPort: 80
---
apiVersion: v1
kind: Service
metadata:name: nginx-svc
spec:type: NodePortselector:app: nginxports:- name: httpprotocol: TCPport: 80targetPort: 80nodePort: 30002


將 nginx-test.yml 文件中定義的 Kubernetes 資源應用到集群中。?

kubectl apply -f nginx-test.yml


查看Pod狀態是否為Running

kubectl get pod


查看Service代理信息

kubectl get service


瀏覽器訪問測試:http://192.168.252.128:30002/

部署Kuboard v3

新增一臺虛擬機,關閉防火墻和selinux,進行時間同步。?

安裝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
sudo yum -y install docker-ce
# Step 4: 開啟Docker服務
sudo service docker start# Step 5:配置加速器
sudo mkdir -p /etc/docker
sudo tee /etc/docker/daemon.json <<-'EOF'
{"registry-mirrors": ["https://docker.rainbond.cc" ,"https://do.nark.eu.org","https://dc.j8.work","https://pilvpemn.mirror.aliyuncs.com","https://docker.m.daocloud.io","https://dockerproxy.com","https://docker.mirrors.ustc.edu.cn","https://docker.nju.edu.cn"],"exec-opts": ["native.cgroupdriver=systemd"],"log-driver": "json-file","log-opts": {"max-size": "100m"},"storage-driver": "overlay2"
}
EOF
sudo systemctl daemon-reload
sudo systemctl restart docker

Kuboard v3官方文檔:安裝 Kuboard v3 - kubernetes | Kuboard

安裝 Kuboard v3.x 版本的指令如下:?

sudo docker run -d \--restart=unless-stopped \--name=kuboard \-p 80:80/tcp \-p 10081:10081/tcp \-e KUBOARD_ENDPOINT="http://192.168.252.131:80" \-e KUBOARD_AGENT_SERVER_TCP_PORT="10081" \-v /root/kuboard-data:/data \eipwork/kuboard:v3# 也可以使用鏡像 swr.cn-east-2.myhuaweicloud.com/kuboard/kuboard:v3 ,可以更快地完成鏡像下載。# 請不要使用 127.0.0.1 或者 localhost 作為內網 IP \# Kuboard 不需要和 K8S 在同一個網段,Kuboard Agent 甚至可以通過代理訪問 Kuboard Server \

瀏覽器訪問:http://192.168.252.131/

默認用戶名:admin? ? 初始化密碼:Kuboard123

3

所以我需要復制這個命令如下,然后拿到master主機執行。

然后執行成功后,查看狀態

4

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/diannao/86068.shtml
繁體地址,請注明出處:http://hk.pswp.cn/diannao/86068.shtml
英文地址,請注明出處:http://en.pswp.cn/diannao/86068.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

鏈游技術破壁:NFT資產確權與Play-to-Earn經濟模型實戰

鏈游技術破壁&#xff1a;NFT資產確權與Play-to-Earn經濟模型實戰 ——從「投機泡沫」到「可持續生態」的技術重構 一、NFT確權技術革新&#xff1a;從鏈上存證到動態賦權 跨鏈確權架構 全鏈互操作協議&#xff1a;采用LayerZero協議實現以太坊裝備與Solana土地的跨鏈組合&…

Java下載文件(特殊字符編碼處理)

當你在這個問題上花費了數小時而解決不了&#xff0c;你才會知道這篇文章對你的幫助 import org.springframework.beans.factory.annotation.Autowired; import org.springframework.core.io.Resource; import org.springframework.http.HttpEntity; import org.springframewo…

TDengine 高級功能——讀緩存

簡介 在物聯網&#xff08;IoT&#xff09;和工業互聯網&#xff08;IIoT&#xff09;大數據應用場景中&#xff0c;實時數據的價值往往遠超歷史數據。企業不僅需要數據處理系統具備高效的實時寫入能力&#xff0c;更需要能快速獲取設備的最新狀態&#xff0c;或者對最新數據進…

YOLO在C#中的完整訓練、驗證與部署方案

YOLO在C#中的完整訓練、驗證與部署方案 C# 在 YOLO 部署上優勢明顯&#xff08;高性能、易集成&#xff09;&#xff0c;但訓練能力較弱&#xff0c;通常需結合 Python 實現。若項目對開發效率要求高且不依賴 C# 生態&#xff0c;建議全程使用 Python&#xff1b;若需深度集成…

pikachu靶場通關筆記17 CSRF關卡03-CSRF(Token)

目錄 一、CSRF原理 二、CSRF Token 三、源碼分析 四、CSRF Token tracker插件 1、插件簡介 2、插件安裝 五、滲透實戰 1、用戶登錄 2、修改個人信息 3、bp攔截報文 4、bp改報文探測 5、配置CSRF-Token-Tracer 6、bp改包成功 7、查看CSRF Token Tracker配置 本系…

C#面試問題81-100

85. What are anonymous types? 匿名類型是在需要的地方直接定義的類型&#xff0c;甚至都 不給它命名。它非常適合我們這種用例——類型小且臨時&#xff0c;而且我們無意在其 他地方使用它 匿名類型是直接從 System.Object 派生的類對象。它們不能轉換為任何 其他類型。●…

【Ragflow】25.Ragflow-plus開發日志:excel文件解析新思路/公式解析適配

引言 RagflowPlus v0.3.0 版本中&#xff0c;增加了對excel文件的解析支持&#xff0c;但收到反饋&#xff0c;說效果并不佳。 以下測試文件內容來自群友反饋提供&#xff0c;數據已脫敏處理。 經系統解析后&#xff0c;分塊效果如下&#xff1a; 可以看到&#xff0c;由于該…

VS2022下C++ Boost庫安裝與使用使用

一.Boost概述 1.簡介 Boost 是一個廣泛使用的 C 庫集合&#xff0c;提供了許多高質量、可移植、高效的工具和組件&#xff0c;被視為 C 標準庫的延伸。自 1998 年成立以來&#xff0c;Boost 已成為 C 社區的核心資源&#xff0c;許多 Boost 庫通過實踐驗證后被納入 C 標準&am…

內嵌式mqtt server

添加moquette依賴 <dependency><groupId>io.moquette</groupId><artifactId>moquette-broker</artifactId><version>0.17</version><exclusions><exclusion><groupId>org.slf4j</groupId><artifactId>…

php執行后報502,無錯誤提示的排查和解決

文章目錄 一、闡述問題二、開始排查1.執行代碼展示2.PHP層面排查問題3.系統層面排查問題1. 分析系統日志2. core dump 分析2.1 core dump 是什么2.2 core dump 配置 并 生成 core 文件2.3 gdb 解析 core 文件 4. 問題解決 三、贈送內容四、總結 一、闡述問題 這個問題花了我起…

MySQL 核心知識點解析

最近正在復習Java八股&#xff0c;所以會將一些熱門的八股問題&#xff0c;結合ai與自身理解寫成博客便于記憶 InnoDB 和 MyISAM 的區別 特性InnoDBMyISAM事務支持支持ACID事務不支持事務鎖機制行級鎖表級鎖外鍵支持支持不支持崩潰恢復有crash-safe能力無存儲結構聚簇索引非…

CppCon 2015 學習:Comparison is not simple, but it can be simpler.

What is comparison? 這段文字是從計算機科學、編譯器設計或系統優化的角度來定義和評價“比較&#xff08;comparison&#xff09;”這個操作&#xff1a; 1. Pervasive&#xff08;無處不在&#xff09; 比較操作在編程中極為常見&#xff0c;存在于&#xff1a; 分支語句&…

RocketMQ入門5.3.2版本(基于java、SpringBoot操作)

一、RocketMQ概述 RocketMQ是一款由阿里巴巴于2012年開源的分布式消息中間件&#xff0c;旨在提供高吞吐量、高可靠性的消息傳遞服務。主要特點有&#xff1a; 靈活的可擴展性 海量消息堆積能力 支持順序消息 支持多種消息過濾方式 支持事務消息 支持回溯消費 支持延時消…

VR線上展廳特點分析與優勢

VR線上展廳&#xff1a;特點、優勢與實際應用 VR線上展廳&#xff0c;作為虛擬現實&#xff08;VR&#xff09;技術在展示行業的創新應用&#xff0c;正逐步改變著傳統的展覽方式。通過模擬真實的物理環境&#xff0c;為參觀者提供身臨其境的展覽體驗&#xff0c;成為展示行業…

QT 5.9.2+VTK8.0實現等高線繪制

項目下載鏈接&#xff1a;QT5.9.2VTK8.0實現等高線繪制資源-CSDN文庫 示例如下&#xff1a; 主要代碼如下&#xff1a; #include "vtkRenderer.h" #include "vtkRenderWindow.h" #include "vtkRenderWindowInteractor.h" #include "vtkPo…

MySQL:忘記root密碼

修改配置文件&#xff1a; vi /etc/my.cnf## 修改配置文件 ##[mysqld] skip - grant - tables## 重啟 ##/etc/init.d/mysqld restart ## 或service mysqld restart## 登錄mysqld -u root -p -h 127.0.0.1USE mysql; UPDATE user SET Password password(123456) WHERE User r…

JSP、HTML和Tomcat

9x9上三角乘法表 乘法表的實現 <% page contentType"text/html;charsetUTF-8" language"java" %> <!DOCTYPE html> <html> <head><title>99 上三角乘法表</title><style>body {font-family: monospace;padding…

常用枚舉技巧:基礎(一)

文章目錄 常用枚舉技巧&#xff1a;基礎&#xff08;一&#xff09;LeetCode 1. 兩數之和思路Golang 代碼 LeetCode 2441. 與對應負數同時存在的最大正整數思路Golang 代碼 LeetCode 1512. 好數對的數目思路Golang 代碼 LeetCode 2001. 可互換矩形的對數思路Golang 代碼 LeetCo…

從混亂到秩序:探索管理系統如何徹底改變工作流程

內容摘要 在許多企業與組織中&#xff0c;工作流程混亂是阻礙發展的“絆腳石”。員工們常常被繁瑣的步驟、模糊的職責和溝通不暢等問題搞得焦頭爛額&#xff0c;工作效率低下&#xff0c;錯誤頻發。而與之形成鮮明對比的是&#xff0c;一些引入了先進管理系統的團隊&#xff0…

使用SSE解決獲取狀態不一致問題

使用SSE解決獲取狀態不一致問題 1. 問題描述2. SSE介紹2.1 SSE 的工作原理2.2 SSE 的事件格式規范2.3 SSE與其他技術對比2.4 SSE 的優缺點 3. 實戰代碼 1. 問題描述 目前做的一個功能是上傳多個文件&#xff0c;這個上傳文件是整體功能的一部分&#xff0c;文件在上傳的過程中…