K8S集群搭建 龍蜥8.9 Dashboard部署(2025年四月最新)

一、版本兼容性和服務器規劃

組件版本/配置信息備注
操作系統Anolis OS 8.9基于 Linux 5.10.134-17.3.an8.x86_64
內核版本Linux 5.10.134-17.3.an8.x86_64與 Kubernetes 1.29 兼容
架構x86-64
Kubernetes 版本v1.29.5最新穩定版,兼容 Linux 5.10 內核
Docker 版本24.0.7需要配置 systemd Cgroup 驅動
Calico 版本v3.27.3支持 Kubernetes 1.29,適配 x86-64 架構
Dashboard 版本v2.7.0最新版本
Master 服務器 IP192.168.153.200主節點
Node1 服務器 IP192.168.153.201工作節點1
Node2 服務器 IP192.168.153.202工作節點2

二、環境準備(所有節點執行)

1、修改hosts文件,設置主機名
(只master節點上執行)
hostnamectl set-hostname master
(只node1節點執行)
hostnamectl set-hostname node1
(只node2節點執行)
hostnamectl set-hostname node22、關閉防火墻和SELinux
sudo systemctl disable --now firewalld
sudo setenforce 0
sudo sed -i 's/^SELINUX=.*/SELINUX=disabled/g' /etc/selinux/config3、禁用Swap
sudo swapoff -a
sudo sed -ri '/swap/s/^/#/' /etc/fstab4、配置內核參數
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
EOF
sudo sysctl --system5、# 配置主機名解析(所有節點)
sudo tee -a /etc/hosts <<EOF
192.168.153.200 k8s-endpoint
192.168.153.200 master
192.168.153.201 node1
192.168.153.202 node2
EOF6、# 時間同步
sudo dnf install chrony -y
sudo systemctl enable --now chronyd7、#給終端配置顏色添加時間(個人習慣)
1.打開 ~/.bashrc 文件:
vim ~/.bashrc
2.找到或添加以下行來設置 PS1 變量(這是定義提示符的變量):
export PS1='\[\e[0;92m\][\u@\h \t]# \[\e[0m\]'
3. 保存并關閉文件。
:wq
4.使更改生效:
source ~/.bashrc

三、安裝Docker(所有節點)

#卸載Podman及相關組件,強制移除所有Podman相關包(容易起沖突)
sudo dnf remove podman buildah skopeo catatonit --nobest -y
# 清理殘留依賴
sudo dnf autoremove
# 清理舊緩存
sudo dnf clean all
# Docker源(阿里云加速)
sudo dnf config-manager --add-repo https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
#安裝docker指定版本
sudo dnf install -y docker-ce-24.0.7 docker-ce-cli-24.0.7 containerd.io# 配置Docker參數
sudo mkdir /etc/docker
cat <<EOF | sudo tee /etc/docker/daemon.json
{"exec-opts": ["native.cgroupdriver=systemd"],"registry-mirrors": ["https://docker.mirrors.ustc.edu.cn/"]
}
EOF#設置開機自啟動
sudo systemctl enable --now docker

四、安裝Kubernetes組件(所有節點)

# 添加Kubernetes源
sudo tee /etc/yum.repos.d/kubernetes.repo <<EOF
[kubernetes]
name=Kubernetes
baseurl=https://mirrors.aliyun.com/kubernetes-new/core/stable/v1.29/rpm/
enabled=1
gpgcheck=1
gpgkey=https://mirrors.aliyun.com/kubernetes-new/core/stable/v1.29/rpm/repodata/repomd.xml.key
EOF# 安裝kubeadm、kubelet、kubectl(指定版本)
sudo dnf install -y kubelet-1.29.5 kubeadm-1.29.5 kubectl-1.29.5# 設置kubelet開機啟動(暫不啟動)
sudo systemctl enable kubelet

五、初始化Master節點(僅Master執行)

#初始化命令
sudo kubeadm init   
--apiserver-advertise-address=192.168.153.200   
--control-plane-endpoint=192.168.153.200   
--image-repository registry.cn-hangzhou.aliyuncs.com/google_containers   
--kubernetes-version v1.29.5   
--service-cidr=10.96.0.0/16   
--pod-network-cidr=172.20.0.0/16# 配置kubectl
mkdir -p $HOME/.kube
sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config
sudo chown $(id -u):$(id -g) $HOME/.kube/config

(如果初始化報錯)檢查并修復 containerd 配置(所有節點)

步驟1、檢查并修復 containerd 配置
#移動配置文件 containerd 默認配置文件(若存在舊配置沖突):
sudo mv /etc/containerd/config.toml /root/config.toml
#重新生成 containerd 配置文件:
containerd config default | sudo tee /etc/containerd/config.toml步驟2、#啟用 CRI 插件: 編輯 /etc/containerd/config.toml,確保以下配置存在:
vim /etc/containerd/config.toml
更換為阿里源:
sandbox_image = "registry.cn-hangzhou.aliyuncs.com/google_containers/pause:3.6"步驟3、重啟 containerd 服務:
sudo systemctl restart containerd步驟4、驗證 containerd 服務狀態
sudo systemctl status containerd
# 輸出應包含 "Active: active (running)"步驟5、Kubernetes 1.29.5 要求 containerd ≥1.6.0 版本。通過以下命令驗證版本:
containerd --version

六、節點加入集群(node1/node2執行)

#使用主節點初始化完成后生成的kubeadm join命令,例如:
kubeadm join k8s-endpoint:6443 --token xxxx.xxxxxxxxxxxx \--discovery-token-ca-cert-hash sha256:xxxxxxxx...#檢查當前的令牌:(在Master執行)
kubeadm token list
#這將列出現有的令牌。如果沒有有效的令牌,或者需要生成新的令牌,可以繼續執行下面的步驟。#生成新的令牌(如果沒有令牌或令牌已過期):(在Master執行)
kubeadm token create --print-join-command

七、部署Calico網絡插件(僅Master執行)

# 使用阿里云鏡像源適配版本
curl -O https://raw.githubusercontent.com/projectcalico/calico/v3.27.3/manifests/calico.yaml# 修改CIDR配置(與kubeadm參數一致)
sed -i 's/192.168.0.0\/16/172.20.0.0\/16/' calico.yaml#切換到阿里云的鏡像源
sed -i 's|docker.io/calico/|registry.aliyuncs.com/calico/|g' calico.yaml#如果阿里云不行,可嘗試這個國內鏡像源swr.cn-north-4.myhuaweicloud.com/ddn-k8s/docker.io/calico
sed -i 's|registry.aliyuncs.com/calico/|swr.cn-north-4.myhuaweicloud.com/ddn-k8s/docker.io/calico/|g' calico.yaml
[root@master 11:36:19]# cat calico.yaml | grep image:image: swr.cn-north-4.myhuaweicloud.com/ddn-k8s/docker.io/calico/cni:v3.27.3image: swr.cn-north-4.myhuaweicloud.com/ddn-k8s/docker.io/calico/cni:v3.27.3image: swr.cn-north-4.myhuaweicloud.com/ddn-k8s/docker.io/calico/node:v3.27.3image: swr.cn-north-4.myhuaweicloud.com/ddn-k8s/docker.io/calico/node:v3.27.3image: swr.cn-north-4.myhuaweicloud.com/ddn-k8s/docker.io/calico/kube-controllers:v3.27.3#執行配置文件
kubectl apply -f calico.yaml# 驗證網絡狀態
[root@master 11:40:14]# kubectl get pods -n kube-system
NAME                                       READY   STATUS    RESTARTS       AGE
calico-kube-controllers-6b44cbc54d-fdxjk   1/1     Running   0              109m
calico-node-7q9pl                          1/1     Running   0              109m
calico-node-kwtrj                          1/1     Running   0              109m
calico-node-vwskq                          1/1     Running   0              109m
coredns-5f98f8d567-5lldq                   1/1     Running   0              123m
coredns-5f98f8d567-j5874                   1/1     Running   0              123m
etcd-master                                1/1     Running   0              123m
kube-apiserver-master                      1/1     Running   0              123m
kube-controller-manager-master             1/1     Running   1 (115m ago)   123m
kube-proxy-96xr5                           1/1     Running   0              123m
kube-proxy-f9wl6                           1/1     Running   0              120m
kube-proxy-sqfrh                           1/1     Running   0              118m
kube-scheduler-master                      1/1     Running   1 (115m ago)   123m
#查看節點狀態
[root@master 11:44:38]# kubectl get nodes
NAME     STATUS   ROLES           AGE    VERSION
master   Ready    control-plane   124m   v1.29.5
node1    Ready    <none>          121m   v1.29.5
node2    Ready    <none>          118m   v1.29.5

八、Dashboard部署(僅在master執行)

#下載官網yaml文件
wget https://raw.githubusercontent.com/kubernetes/dashboard/v2.7.0/aio/deploy/recommended.yaml#修改Service為NodePort ,指定服務的類型為 NodePort,意味著這個服務可以通過節點的 IP 和指定的端口對外暴露。
#并添加nodePort: 30001 ,這是節點暴露的端口,外部訪問時會通過這個端口。
vim recommended.yaml
[root@master 13:20:28]# grep -A 7 'spec:' recommended.yaml | head -n 8
spec:type: NodePortports:- port: 443targetPort: 8443nodePort: 30001selector:k8s-app: kubernetes-dashboard#image替換為阿里源,registry.cn-hangzhou.aliyuncs.com/google_containers
[root@master 13:09:40]# cat recommended.yaml | grep image:image: registry.cn-hangzhou.aliyuncs.com/google_containers/dashboard:v2.7.0image: registry.cn-hangzhou.aliyuncs.com/google_containers/metrics-scraper:v1.0.8
#如果阿里云不可用 嘗試這個國內鏡像源swr.cn-north-4.myhuaweicloud.com/ddn-k8s/docker.io/kubernetesui
[root@master 11:45:26]# cat recommended.yaml | grep image:image: swr.cn-north-4.myhuaweicloud.com/ddn-k8s/docker.io/kubernetesui/dashboard:v2.7.0image: swr.cn-north-4.myhuaweicloud.com/ddn-k8s/docker.io/kubernetesui/metrics-scraper:v1.0.8# 部署
kubectl apply -f recommended.yaml#查看所有pod 狀態。
[root@master 12:59:29]# kubectl get pods -A
NAMESPACE              NAME                                        READY   STATUS    RESTARTS        AGE
kube-system            calico-kube-controllers-6b44cbc54d-fdxjk    1/1     Running   0               3h4m
kube-system            calico-node-7q9pl                           1/1     Running   0               3h4m
kube-system            calico-node-kwtrj                           1/1     Running   0               3h4m
kube-system            calico-node-vwskq                           1/1     Running   0               3h4m
kube-system            coredns-5f98f8d567-5lldq                    1/1     Running   0               3h18m
kube-system            coredns-5f98f8d567-j5874                    1/1     Running   0               3h18m
kube-system            etcd-master                                 1/1     Running   0               3h18m
kube-system            kube-apiserver-master                       1/1     Running   0               3h18m
kube-system            kube-controller-manager-master              1/1     Running   1 (3h10m ago)   3h18m
kube-system            kube-proxy-96xr5                            1/1     Running   0               3h18m
kube-system            kube-proxy-f9wl6                            1/1     Running   0               3h15m
kube-system            kube-proxy-sqfrh                            1/1     Running   0               3h13m
kube-system            kube-scheduler-master                       1/1     Running   1 (3h10m ago)   3h18m
kubernetes-dashboard   dashboard-metrics-scraper-bd84c9d8b-x2gmj   1/1     Running   0               136m
kubernetes-dashboard   kubernetes-dashboard-5cc694d9b-825gq        1/1     Running   0               136m#查看 kubernetes-dashboard 命名空間下資源狀態
kubectl get pods,svc -n kubernetes-dashboard
[root@master 12:59:29]# kubectl get pods,svc -n kubernetes-dashboard
NAME                                            READY   STATUS    RESTARTS   AGE
pod/dashboard-metrics-scraper-bd84c9d8b-x2gmj   1/1     Running   0          136m
pod/kubernetes-dashboard-5cc694d9b-825gq        1/1     Running   0          136mNAME                                TYPE        CLUSTER-IP      EXTERNAL-IP   PORT(S)         AGE
service/dashboard-metrics-scraper   ClusterIP   10.96.100.159   <none>        8000/TCP        136m
service/kubernetes-dashboard        NodePort    10.96.67.20     <none>        443:30001/TCP   136m1、獲取節點 IP
kubectl get nodes -o wide2、訪問地址,瀏覽器輸入(注意使用 HTTPS):
https://192.168.153.200:30001
#繞過證書警告(開發環境)
Chrome:在頁面任意位置輸入 thisisunsafe(無需回車)。
Firefox:點擊 高級 -> 接受風險并繼續。3、創建管理員賬號(若未提前創建):
kubectl create serviceaccount dashboard-admin -n kubernetes-dashboard
kubectl create clusterrolebinding dashboard-admin --clusterrole=cluster-admin --serviceaccount=kubernetes-dashboard:dashboard-admin4、獲取 Token
kubectl -n kubernetes-dashboard get secret dashboard-admin-token -o go-template='{{.data.token | base64decode}}'

獲取 Token亂碼報錯解決方法:

#步驟 1:確認 ServiceAccount 關聯的 Secret
[root@master 12:59:31]# kubectl -n kubernetes-dashboard describe sa dashboard-admin
Name:                dashboard-admin
Namespace:           kubernetes-dashboard
Labels:              <none>
Annotations:         <none>
Image pull secrets:  <none>
Mountable secrets:   <none>
Tokens:              dashboard-admin-token
Events:              <none>#步驟 2:手動創建 Secret 并關聯 Token(若未生成 Secret,需手動創建:)
kubectl apply -f - <<EOF
apiVersion: v1
kind: Secret
metadata:name: dashboard-admin-tokennamespace: kubernetes-dashboardannotations:kubernetes.io/service-account.name: dashboard-admin
type: kubernetes.io/service-account-token
EOF#步驟 3:驗證 Secret 內容,確保 Secret 包含 token 字段:
kubectl -n kubernetes-dashboard get secret dashboard-admin-token -o jsonpath='{.data.token}'
#若輸出為 null,刪除舊 Secret 并重新創建:
kubectl -n kubernetes-dashboard delete secret dashboard-admin-token
kubectl apply -f <上述 YAML 文件>步驟 4:獲取 Token
kubectl -n kubernetes-dashboard get secret dashboard-admin-token -o go-template='{{.data.token | base64decode}}'
[root@master 12:59:30]# kubectl -n kubernetes-dashboard get secret dashboard-admin-token -o go-template='{{.data.token | base64decode}}'
eyJhbGciOiJSUzI1NiIsImtpZCI6IlBINlNjODNwR1duZWR4TWVfV3pkRWZsTG1UUzJxZGRTb1pyTHBrNkFZRUUifQ.eyJpc3MiOiJrdWJlcm5ldGVzL3NlcnZpY2VhY2NvdW50Iiwia3ViZXJuZXRlcy5pby9zZXJ2aWNlYWNjb3VudC9uYW1lc3BhY2UiOiJrdWJlcm5ldGVzLWRhc2hib2FyZCIsImt1YmVybmV0ZXMuaW8vc2VydmljZWFjY291bnQvc2VjcmV0Lm5hbWUiOiJkYXNoYm9hcmQtYWRtaW4tdG9rZW4iLCJrdWJlcm5ldGVzLmlvL3NlcnZpY2VhY2NvdW50L3NlcnZpY2UtYWNjb3VudC5uYW1lIjoiZGFzaGJvYXJkLWFkbWluIiwia3ViZXJuZXRlcy5pby9zZXJ2aWNlYWNjb3VudC9zZXJ2aWNlLWFjY291bnQudWlkIjoiOWVhMWY0OGUtZDNjYS00ZjViLWEzODAtN2U3MjE3MGRiYTdmIiwic3ViIjoic3lzdGVtOnNlcnZpY2VhY2NvdW50Omt1YmVybmV0ZXMtZGFzaGJvYXJkOmRhc2hib2FyZC1hZG1pbiJ9.tyg0bnwtzbdR7bqGOPZ8ZgkfDvVd9ZpSoeDCX1qbMM4SgUu6mdlbd5UTNdR-Yq6e-F3TzVHfobkSfWvLBumdRjTPj9qvDedzPhl2nB8vdx2VNE4dvkyJ_OlB3MqJdFH9wuzU93ovRbbOULjTnTm2AOUWck1eJFw8YVmbgHmx4xnfLSlcSFOIbeJmhm1rPGZlsRDQgIlcnVAhPkPpuBO21wrLtzQwL0D6aVGxRaNXQMhlj1lqz-duaXd6aK7kkXQvO1M4xJoktmT2Ey-JDf9fygt7AP2saC86KRWK0B3drRkNNkSFeZ9VDhoPPf6KsZ9hG1zVUjUOpZFTED6zDZ0PMw
#確保 Dashboard 服務已正確暴露(如 NodePort 30001),并通過瀏覽器訪問:
[root@master 12:59:31]# kubectl get svc -n kubernetes-dashboard | grep NodePort
kubernetes-dashboard        NodePort    10.96.67.20     <none>        443:30001/TCP   136m

九、故障運維

#重啟docker
systemctl restart docker
#重啟kubelet 
systemctl restart kubelet
#查看docker 狀態
systemctl status docker
#查看kubelet狀態
systemctl status kubelet
#查看所有pod 狀態
kubectl get pods -A
#查看kubernetes-dashboard信息
kubectl get pods,svc -n kubernetes-dashboard問題1:CoreDNS異常CrashLoopBackOff反復重啟問題
#編輯 Corefile   loop   #將loop直接刪除,避免內部循環
kubectl edit -n kube-system cm coredns 
#修改完CoreDNS后,將coredns的pod重新刪除后就恢復正常
kubectl delete -n kube-system pod coredns-59799fb945-tcjsl
kubectl delete -n kube-system pod coredns-59799fb945-zlqkt問題2:k8s部署calico網絡后,calico-node顯示READY 0/1
#原因是master節點網卡比較多,calico選擇了錯誤的網卡,
#修改calico.yaml,指定正確的網卡名稱即可。
vim calico.yaml
# Auto-detect the BGP IP address.
- name: IP_AUTODETECTION_METHODvalue: "interface=ens160"問題3:節點暴露的端口配置
vim recommended.yaml問題4:Kubernetes Dashboard 不顯示 CPU 和內存數據。
#下載Metrics Server
wget https://github.com/kubernetes-sigs/metrics-server/releases/latest/download/components.yaml
#配置調整添加 TLS 忽略參數(解決證書問題)
vim components.yaml
添加:containers:- args:- --cert-dir=/tmp- --secure-port=10250- --kubelet-insecure-tls #添加此行
#切換到阿里源
sed -i 's|registry.k8s.io/metrics-server/metrics-server|registry.aliyuncs.com/google_containers/metrics-server|g' components.yaml
#部署
kubectl apply -f components.yaml
#檢查 Pod 狀態:
[root@master 13:11:31]# kubectl get pods -A | grep metrics-server
kube-system            metrics-server-85c75cb9b4-8nrqh             1/1     Running   0               76s
#查看節點和 Pod 資源使用情況:
kubectl top nodes  # 顯示所有節點 CPU/內存數據。
kubectl top pods -A  #顯示所有命名空間下 Pod 的資源使用情況(如 CPU 和內存)。
[root@master 13:11:49]# kubectl top nodes
NAME     CPU(cores)   CPU%   MEMORY(bytes)   MEMORY%   
master   211m         7%     1974Mi          54%       
node1    129m         4%     2148Mi          59%       
node2    103m         3%     2100Mi          58%       
[root@master 13:11:55]# kubectl top pods -A
NAMESPACE              NAME                                        CPU(cores)   MEMORY(bytes)   
kube-system            calico-kube-controllers-6b44cbc54d-fdxjk    2m           21Mi            
kube-system            calico-node-7q9pl                           38m          186Mi           
kube-system            calico-node-kwtrj                           38m          192Mi           
kube-system            calico-node-vwskq                           28m          199Mi           
kube-system            coredns-5f98f8d567-5lldq                    3m           21Mi            
kube-system            coredns-5f98f8d567-j5874                    2m           20Mi            
kube-system            etcd-master                                 29m          70Mi            
kube-system            kube-apiserver-master                       55m          319Mi           
kube-system            kube-controller-manager-master              15m          98Mi            
kube-system            kube-proxy-96xr5                            1m           22Mi            
kube-system            kube-proxy-f9wl6                            1m           21Mi            
kube-system            kube-proxy-sqfrh                            1m           18Mi            
kube-system            kube-scheduler-master                       4m           35Mi            
kube-system            metrics-server-85c75cb9b4-8nrqh             4m           16Mi            
kubernetes-dashboard   dashboard-metrics-scraper-bd84c9d8b-x2gmj   1m           15Mi            
kubernetes-dashboard   kubernetes-dashboard-5cc694d9b-825gq        1m           23Mi  問題5:Token有效期時間太短。
方法1:
#打印輸出配置
kubectl -n kubernetes-dashboard get deploy kubernetes-dashboard -o yaml
#編輯,添加- --token-ttl=43200  # 新增參數單位:秒,43200秒=12小時)
kubectl -n kubernetes-dashboard edit deploy kubernetes-dashboard
spec:containers:- args:- --auto-generate-certificates- --namespace=kubernetes-dashboard- --token-ttl=43200  # 新增參數單位:秒,43200秒=12小時)
#驗證修改
[root@master 14:01:34]# kubectl -n kubernetes-dashboard get deploy kubernetes-dashboard -o yaml | grep "token-ttl"- --token-ttl=43200
#若修改導致 Dashboard 無法啟動,可通過以下命令回滾:
kubectl -n kubernetes-dashboard rollout undo deploy kubernetes-dashboard方法2:#直接生成長期有效的 Token
kubectl -n kubernetes-dashboard create token dashboard-admin --duration=720h  # 有效期 720 小時(30 天)

問題1:

問題2:

問題3:

問題4:



?問題5:

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

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

相關文章

項目6——前后端互通的點餐項目

一、項目介紹 1、有哪些需求需要連接后臺完成功能? 前臺傳給后臺 后臺返回給前臺 注冊: 用戶名 密碼 操作是否成功 登錄: 用戶名 密碼 操作是否成功 下單: 用戶名 菜名 操作是否成功 Request : 前端發送給后臺的所有數據的載體 Res…

Go和Golang語言簡介

李升偉 整理 Go 和 Golang 實際上指的是同一種編程語言&#xff0c;只是名稱不同。 Go 名稱&#xff1a;Go 是該編程語言的正式名稱。 起源&#xff1a;由 Google 的 Robert Griesemer、Rob Pike 和 Ken Thompson 于 2007 年開始設計&#xff0c;2009 年正式發布。 設計目…

GitHub二次驗證登錄2FA(Enable two-factor authentication )

不用下載app&#xff0c;點擊二維碼下面的setup key獲取到secret并且保存好 接下來幾行代碼就可以解析了。 添加依賴 <dependency><groupId>com.amdelamar</groupId><artifactId>jotp</artifactId><version>1.3.0</version> </d…

RabbitMQ技術方案分析

方案分析 在上一篇文檔中&#xff0c;詳細講述了如何通過CanalMQ實現對分庫分表的數據庫和數據表進行數據同步&#xff0c;而在這個方案中&#xff0c;還有一個關鍵點是需要注意的&#xff1a;首先&#xff0c;數據增刪改的信息是保證寫入binlog的&#xff0c;Canal解析出增刪…

node.js版本管理

概述 遇到了版本升級后&#xff0c;以前項目不兼容的問題。 下載一個node.js的版本管理工具&#xff0c;官網下載地址&#xff0c;可以選擇版本下載&#xff0c;我選擇的1.11.1版本的。下載完成后點擊安裝&#xff0c;分別選擇nvm安裝目錄和nodejs的安裝目錄&#xff0c;點擊安…

leetcode-熱題100(3)

leetcode-74-搜索二維矩陣 矩陣最后一列升序排序&#xff0c;在最后一列中查找第一個大于等于target的元素 然后在該元素所在行進行二分查找 bool searchMatrix(int** matrix, int matrixSize, int* matrixColSize, int target) {int n matrixSize;int m matrixColSize[0];in…

在HarmonyOS NEXT 開發中,如何指定一個號碼,拉起系統撥號頁面

大家好&#xff0c;我是 V 哥。 《鴻蒙 HarmonyOS 開發之路 卷1 ArkTS篇》已經出版上市了哈&#xff0c;有需要的朋友可以關注一下&#xff0c;卷2應用開發篇也馬上要出版了&#xff0c;V 哥正在緊鑼密鼓的寫鴻蒙開發實戰卷3的教材&#xff0c;卷3主要以項目實戰為主&#xff0…

音視頻入門基礎:MPEG2-TS專題(26)——通過FFmpeg命令使用RTP發送TS流

音視頻入門基礎&#xff1a;MPEG2-TS專題系列文章&#xff1a; 音視頻入門基礎&#xff1a;MPEG2-TS專題&#xff08;1&#xff09;——MPEG2-TS官方文檔下載 音視頻入門基礎&#xff1a;MPEG2-TS專題&#xff08;2&#xff09;——使用FFmpeg命令生成ts文件 音視頻入門基礎…

(六)窗口表面

這節主要三部分 一&#xff0c;窗口表面的創建和銷毀 二&#xff0c;呈現隊列 三&#xff0c;與以前實現的圖形能力隊列的兼容 一&#xff0c;窗口表面 1&#xff0c;創建 VkSurfaceKHR surface; //創建窗口表面 glfwCreateWindowSurface(instance, //vkInstance對象window, …

【零基礎入門unity游戲開發——2D篇】SpriteEditor圖片編輯器

考慮到每個人基礎可能不一樣,且并不是所有人都有同時做2D、3D開發的需求,所以我把 【零基礎入門unity游戲開發】 分為成了C#篇、unity通用篇、unity3D篇、unity2D篇。 【C#篇】:主要講解C#的基礎語法,包括變量、數據類型、運算符、流程控制、面向對象等,適合沒有編程基礎的…

云巔之上:數字文明的重構與超越

序章&#xff1a;算力新紀元 2024年初春&#xff0c;當SpaceX的星艦將首批云計算節點送入近地軌道時&#xff0c;地球上的數字原住民們正通過云端AI助手規劃著一天的行程。這場靜默的革命已悄然進入新階段——云計算不再只是工具&#xff0c;而是成為數字文明的"第六元素…

【面試篇】多線程

基礎概念 線程的生命周期有哪些狀態&#xff1f;它們是如何轉換的&#xff1f; 答案&#xff1a;線程的生命周期有以下六種狀態&#xff1a; 新建&#xff08;New&#xff09;&#xff1a;線程被創建但尚未啟動&#xff0c;此時線程對象已被分配內存空間&#xff0c;相關屬性已…

unity運行中場景指定模型回放功能(模型是地形并且可以加載預制體進行回放)

回放和加載腳本 using System.Collections.Generic; using UnityEngine;public class TerrainRecorder : MonoBehaviour {[Header("基本設置")]public Terrain targetTerrain;public bool isRecording false;public bool isPlayingBack false;[Range(0.02f, 1f)] …

基于SpringBoot的河道水情大數據可視化分析平臺設計與實現(源碼+論文+部署講解等)

需要資料&#xff0c;請文末聯系 一、平臺介紹 水情監測數據大屏 - 平臺首頁 日均水位 日均水速 二、論文內容 摘要&#xff08;中文&#xff09; 本文針對河道水情監測領域的數據管理和可視化分析需求&#xff0c;設計并實現了一套河道水情大數據可視化分析平臺。該平臺基…

Knife4j文檔請求異常 空指針

打開swagger文檔報空指針異常 java.lang.NullPointerException: nullat springfox.documentation.oas.mappers.SchemaMapper.model(SchemaMapper.java:97)at springfox.documentation.oas.mappers.SchemaMapper.mapModel(SchemaMapper.java:85)at springfox.documentation.oas…

車輛選擇解決方案

車輛選擇解決方案 /* * Purpose: 添加車輛選擇的功能 -> 用戶在選擇不同的車輛時&#xff0c;重新初始化系統狀態&#xff0c;清除之前的定時器&#xff0c;并根據新選擇的車輛設置新的定時器&#xff0c;以實現對新車輛狀態的實時加載。 * File Name: 車輛選擇解決方案 * …

魔塔社區使用llamafactory微調AI閱卷試題系統

啟動 LLaMA-Factory 1. 安裝 LLaMA-Factory 執行安裝指令 git clone --depth 1 https://github.com/hiyouga/LLaMA-Factory.git cd LLaMA-Factory pip install -e ".[torch,metrics]"解決依賴沖突 如果遇到依賴沖突&#xff0c;可使用以下命令安裝&#xff0c;不…

程序化廣告行業(51/89):Cookie映射與移動設備ID映射解析

程序化廣告行業&#xff08;51/89&#xff09;&#xff1a;Cookie映射與移動設備ID映射解析 在當今數字化營銷的浪潮中&#xff0c;程序化廣告已經成為企業精準觸達目標客戶的重要手段。作為一名對程序化廣告充滿興趣的學習者&#xff0c;我希望通過這篇博客和大家一起深入探索…

內網服務器centos7安裝jdk17

1. 下載 JDK 17 安裝包&#xff08;在外網環境操作&#xff09; 在可聯網的機器上下載 JDK 17 的壓縮包&#xff08;推薦使用 OpenJDK&#xff09;&#xff1a; OpenJDK 官方源&#xff1a; Adoptium Eclipse Temurin Azul Zulu 直接下載命令示例&#xff08;在外網機器上執行…

【學Rust寫CAD】21 2D 點(point.rs)

源碼 //matrix/point.rs use std::ops::Mul; use super::algebraic_units::{Zero, One}; use super::generic::Matrix;/// 點坐標結構體 #[derive(Debug, Clone, Copy, PartialEq)] pub struct Point<X, Y>(Matrix<X, Y, One, Zero, Zero, One>);impl<X, Y>…