kubernertes (K8S)部署

參考: https://blog.csdn.net/yu33575/article/details/135387548

二進制安裝k8s: https://blog.csdn.net/qq_73990369/article/details/143217084

K8S二進制安裝與部署 :https://blog.csdn.net/fantuan_sss/article/details/139073366

k8s-(六)在kubernertes上部署運行項目: https://blog.csdn.net/qq_21187515/article/details/112320972

解決logs不能查看的問題: https://blog.51cto.com/shunzi115/2432164

ssh免密登錄

#在每臺服務器上生成RSA密鑰對
ssh-keygen -P '' -f ~/.ssh/id_rsa#將公鑰傳輸給要遠程的服務器(在每臺服務器上,將生成的公鑰復制到其他兩臺服務器上)
ssh-copy-id -i ~/.ssh/id_rsa.pub root@k8s-node1
ssh-copy-id -i ~/.ssh/id_rsa.pub root@devdb
ssh-copy-id -i ~/.ssh/id_rsa.pub root@node

Kubernetes 部署
安裝 kubeadm、kubelet 和 kubectl

kubeadm:用來初始化集群的指令。

kubelet:在集群中的每個節點上用來啟動 Pod 和容器等。

kubectl:用來與集群通信的命令行工具。

kubeadm 安裝

1 安裝 CNI 插件(大多數 Pod 網絡都需要):

CNI_PLUGINS_VERSION="v1.3.0"
ARCH="amd64"
DEST="/opt/cni/bin"
sudo mkdir -p "$DEST"
curl -L "https://github.com/containernetworking/plugins/releases/download/${CNI_PLUGINS_VERSION}/cni-plugins-linux-${ARCH}-${CNI_PLUGINS_VERSION}.tgz" | sudo tar -C "$DEST" -xzcurl -L "https://github.com/containernetworking/plugins/releases/download/v1.3.0/cni-plugins-linux-amd64-v1.3.0.tgz" | sudo tar -C "/opt/cni/bin" -xztar -C "/opt/cni/bin" -xz -f cni-plugins-linux-amd64-v1.3.0.tgz

2 安裝 crictl(kubeadm/kubelet 容器運行時接口(CRI)所需):

DOWNLOAD_DIR="/usr/local/bin"
sudo mkdir -p "$DOWNLOAD_DIR"CRICTL_VERSION="v1.28.0"
ARCH="amd64"
curl -L "https://github.com/kubernetes-sigs/cri-tools/releases/download/${CRICTL_VERSION}/crictl-${CRICTL_VERSION}-linux-${ARCH}.tar.gz" | sudo tar -C $DOWNLOAD_DIR -xzcurl -L "https://github.com/kubernetes-sigs/cri-tools/releases/download/v1.28.0/crictl-v1.28.0-linux-amd64.tar.gz" | sudo tar -C /usr/local/bin -xztar -C /usr/local/bin -xz -f crictl-v1.28.0-linux-amd64.tar.gz

3 安裝 kubeadm、kubelet、kubectl 并添加 kubelet 系統服務:

RELEASE="$(curl -sSL https://dl.k8s.io/release/stable.txt)"
RELEASE="v1.32.0"
ARCH="amd64"
cd $DOWNLOAD_DIR
cd /usr/local/binsudo curl -L --remote-name-all https://dl.k8s.io/release/${RELEASE}/bin/linux/${ARCH}/{kubeadm,kubelet}
sudo curl -L --remote-name-all https://dl.k8s.io/release/v1.32.0/bin/linux/amd64/{kubeadm,kubelet}
sudo chmod +x {kubeadm,kubelet}RELEASE_VERSION="v0.16.2"
curl -sSL "https://raw.githubusercontent.com/kubernetes/release/${RELEASE_VERSION}/cmd/krel/templates/latest/kubelet/kubelet.service" | sed "s:/usr/bin:${DOWNLOAD_DIR}:g" | sudo tee /etc/systemd/system/kubelet.service
curl -sSL "https://raw.githubusercontent.com/kubernetes/release/v0.16.2/cmd/krel/templates/latest/kubelet/kubelet.service" | sed "s:/usr/bin:/usr/local/bin:g" | sudo tee /etc/systemd/system/kubelet.servicesed "s:/usr/bin:/usr/local/bin:g" kubelet.service | tee /etc/systemd/system/kubelet.servicesudo mkdir -p /etc/systemd/system/kubelet.service.d
curl -sSL "https://raw.githubusercontent.com/kubernetes/release/${RELEASE_VERSION}/cmd/krel/templates/latest/kubeadm/10-kubeadm.conf" | sed "s:/usr/bin:${DOWNLOAD_DIR}:g" | sudo tee /etc/systemd/system/kubelet.service.d/10-kubeadm.conf
curl -sSL "https://raw.githubusercontent.com/kubernetes/release/v0.16.2/cmd/krel/templates/latest/kubeadm/10-kubeadm.conf" | sed "s:/usr/bin:/usr/local/bin:g" | sudo tee /etc/systemd/system/kubelet.service.d/10-kubeadm.confsed "s:/usr/bin:/usr/local/bin:g" 10-kubeadm.conf | sudo tee /etc/systemd/system/kubelet.service.d/10-kubeadm.conf


kubelet 安裝

install -o root -g root -m 0755 kubectl /usr/local/bin/kubectl
install -o root -g root -m 0755 kubeadm /usr/local/bin/kubeadm
install -o root -g root -m 0755 kubelet /usr/local/bin/kubelet


kubectl 安裝

https://kubernetes.io/zh-cn/docs/tasks/tools/install-kubectl-linux/

安裝命令

sudo install -o root -g root -m 0755 kubectl /usr/local/bin/kubectl

測試:

kubectl version --client

kubeadm init 用于搭建控制平面節點
kubeadm join 用于搭建工作節點并將其加入到集群中
kubeadm upgrade 用于升級 Kubernetes 集群到新版本
kubeadm config 如果你使用了 v1.7.x 或更低版本的 kubeadm 版本初始化你的集群,則使用 kubeadm upgrade 來配置你的集群
kubeadm token 用于管理 kubeadm join 使用的令牌
kubeadm reset 用于恢復通過 kubeadm init 或者 kubeadm join 命令對節點進行的任何變更
kubeadm certs 用于管理 Kubernetes 證書
kubeadm kubeconfig 用于管理 kubeconfig 文件
kubeadm version 用于打印 kubeadm 的版本信息
kubeadm alpha 用于預覽一組可用于收集社區反饋的特性

二進制安裝K8S:

wget https://pkg.cfssl.org/R1.2/cfssl_linux-amd64 -O /usr/local/bin/cfssl
wget https://pkg.cfssl.org/R1.2/cfssljson_linux-amd64 -O /usr/local/bin/cfssljson
wget https://pkg.cfssl.org/R1.2/cfssl-certinfo_linux-amd64 -O /usr/local/bin/cfssl-certinfochmod +x /usr/local/bin/cfssl*

master節點操作–給api-server創建的證書。 別的服務訪問api-server的時候需要通過證書認證

[root@k8s-master1 ~]# mkdir -p /opt/crt/
[root@k8s-master1 ~]# cd /opt/crt/
# vim ca-config.json
{"signing": {"default": {"expiry": "87600h"},"profiles": {"kubernetes": {"expiry": "87600h","usages": ["signing","key encipherment","server auth","client auth"]}}}
}# vim ca-csr.json  定義生產簽名所需要的信息參數
{"CN": "kubernetes","key": {"algo": "rsa","size": 2048},"names": [{"C": "CN","L": "Beijing","ST": "Beijing","O": "k8s","OU": "System"}]
}生產ca證書和私鑰
[root@k8s-master1 crt]# cfssl gencert -initca ca-csr.json | cfssljson -bare ca -生成apiserver證書:
[root@k8s-master1 crt]# vim server-csr.json
# cat server-csr.json
{"CN": "kubernetes","hosts": ["10.0.0.1", //這是后?dns要使用的虛擬網絡的網關,不用改,就用這個切忌"127.0.0.1","10.xxx.xxx.xx1", // master的IP地址。"10.xxx.100.xx2","10.xxx.100.xx3","kubernetes","kubernetes.default","kubernetes.default.svc","kubernetes.default.svc.cluster","kubernetes.default.svc.cluster.local"],"key": {"algo": "rsa","size": 2048},"names": [{"C": "CN","L": "BeiJing","ST": "BeiJing","O": "k8s","OU": "System"}]
}[root@k8s-master1 crt]# cfssl gencert -ca=ca.pem -ca-key=ca-key.pem -config=ca-config.json -profile=kubernetes server-csr.json | cfssljson -bare server[root@139devdb crt]# cfssl gencert -ca=ca.pem -ca-key=ca-key.pem -config=ca-config.json -profile=kubernetes server-csr.json | cfssljson -bare server
invalid character '/' looking for beginning of value
Failed to parse input: unexpected end of JSON input生成kube-proxy證書:
[root@k8s-master1 crt]# vim kube-proxy-csr.json
# cat kube-proxy-csr.json
{"CN": "system:kube-proxy","hosts": [],"key": {"algo": "rsa","size": 2048},"names": [{"C": "CN","L": "BeiJing","ST": "BeiJing","O": "k8s","OU": "System"}]
}
[root@k8s-master1 crt]# cfssl gencert -ca=ca.pem -ca-key=ca-key.pem -config=ca-config.json -profile=kubernetes kube-proxy-csr.json | cfssljson -bare kube-proxy

配置好前面生成的證書,確保能連接etcd

systemd管理apiserver[root@k8s-master1 cfg]# cd /usr/lib/systemd/system
# vim kube-apiserver.service
# cat /usr/lib/systemd/system/kube-apiserver.service
[Unit]
Description=Kubernetes API Server
Documentation=https://github.com/kubernetes/kubernetes[Service]
EnvironmentFile=-/opt/k8s/cfg/kube-apiserver
ExecStart=/opt/k8s/bin/kube-apiserver $KUBE_APISERVER_OPTS
Restart=on-failure[Install]
WantedBy=multi-user.target 啟動:
systemctl daemon-reload
systemctl enable kube-apiserver
systemctl start kube-apiserver
systemctl status kube-apiserver

設置集群參數

# 設置集群參數
[root@k8s-master1 crt]# /opt/k8s/bin/kubectl config set-cluster kubernetes --certificate-authority=ca.pem --embed-certs=true --server=${KUBE_APISERVER}  --kubeconfig=bootstrap.kubeconfig# 設置客戶端認證參數
[root@k8s-master crt]# /opt/k8s/bin/kubectl config set-credentials kubelet-bootstrap --token=${BOOTSTRAP_TOKEN} --kubeconfig=bootstrap.kubeconfig# 設置上下文參數
[root@k8s-master crt]# /opt/k8s/bin/kubectl config set-context default  --cluster=kubernetes  --user=kubelet-bootstrap --kubeconfig=bootstrap.kubeconfig# 設置默認上下文
[root@k8s-master crt]# /opt/k8s/bin/kubectl config use-context default --kubeconfig=bootstrap.kubeconfig# 創建kube-proxy kubeconfig文件[root@k8s-master1 crt]# /opt/k8s/bin/kubectl config set-cluster kubernetes  --certificate-authority=ca.pem  --embed-certs=true  --server=${KUBE_APISERVER}  --kubeconfig=kube-proxy.kubeconfig[root@k8s-master1 crt]# /opt/k8s/bin/kubectl config set-credentials kube-proxy  --client-certificate=kube-proxy.pem  --client-key=kube-proxy-key.pem  --embed-certs=true  --kubeconfig=kube-proxy.kubeconfig[root@k8s-master1 crt]# /opt/k8s/bin/kubectl config set-context default --cluster=kubernetes --user=kube-proxy --kubeconfig=kube-proxy.kubeconfig[root@k8s-master1 crt]# /opt/k8s/bin/kubectl config use-context default --kubeconfig=kube-proxy.kubeconfig// 1 添加kubernetes集群 
kubectl config set-cluster my-cluster \--server=https://10.xxx.100.xxx:6443 \--certificate-authority=/opt/crt/ca.pem// 2 添加用戶
kubectl config set-credentials my-user \--client-certificate=kube-proxy.pem \--client-key=kube-proxy-key.pem// 3 添加上下文
kubectl config set-context my-context \--cluster=my-cluster \--user=my-user \--namespace=default// 4 切換上下文
kubectl config use-context my-contextkubectl config set-credentials system:kube-proxy \--client-certificate=/opt/crt/kube-proxy.pem \--client-key=/opt/crt/kube-proxy-key.pemkubectl config set-context system-context \--cluster=system-cluster \--user=system:kube-proxy \--namespace=system-name 命令: 
kubectl config view   // 查看配置
kubectl config get-contexts  // 上下文
kubectl config use-context system-context  //切換上下文
kubectl get pods

systemd管理kubelet組件:

# vim /usr/lib/systemd/system/kubelet.service[Unit]
Description=Kubernetes Kubelet
After=docker.service
Requires=docker.service
[Service]
EnvironmentFile=/opt/k8s/cfg/kubelet
ExecStart=/opt/k8s/bin/kubelet $KUBELET_OPTS
Restart=on-failure
KillMode=process
[Install]
WantedBy=multi-user.target--
啟動:
systemctl daemon-reload
systemctl enable kubelet
systemctl start kubelet

systemd管理kube-proxy組件:

[root@k8s-node1 ~]# cd /usr/lib/systemd/system
# vim  /usr/lib/systemd/system/kube-proxy.service[Unit]
Description=Kubernetes Proxy
After=network.target
[Service]
EnvironmentFile=-/opt/k8s/cfg/kube-proxy
ExecStart=/opt/k8s/bin/kube-proxy $KUBE_PROXY_OPTS
Restart=on-failure
[Install]
WantedBy=multi-user.target--啟動:
systemctl daemon-reload
systemctl enable kube-proxy
systemctl start kube-proxy

kubernetes部署運行項目

./kubectl get cs
pwd
./kubectl get node
./kubectl get csr
./kubectl get pods--
kubernetes部署運行項目參考: https://blog.csdn.net/qq_21187515/article/details/112320972在k8s中,我們不會單獨創建一個pod資源對象,而是創建Deployment對象,通過Deployment來管理pod。apiVersion: v1   #描述文件遵循v1版本的kubernetes API 
kind: Pod        #我們在描述一個pod
metadata:          name: kubia-manual   #pod的名稱
spec:containers:- image: luksa/kubia   #創建容器所用的鏡像name: kubia 		#容器的名稱ports:- containerPort: 8080  #應用監聽的端口protocol: TCP
--apiVersion: v1
kind: Pod   // k8s資源類型
metadata: // pod元數據name: dnsutil-pod // pod的名稱
spec: // pod規格containers:- image: tutum/dnsutils // 創建容器所用的鏡像name: dnsutil // 容器的名稱command: ["sleep", "infinity"]
--
apiVersion: v1
kind: Service
metadata:name: test-svc
spec:ports:- port: 80 // 該服務的可用端口targetPort: 8080 // 服務將連接轉發到的容器端口selector: // label app=testing的pod屬于該服務app: testing

創建Deployment的YAML描述文件

kubectl create deployment countgame --image=192.xxx.xxx.xxx:5000/countgame:0.91 --dry-run -o yaml  > deploy.yaml

命令:

kubectl config view   // 查看配置
kubectl config get-contexts  // 上下文
kubectl config use-context system-context  //切換上下文
kubectl config use-context my-contextkubectl get csr     // 查看申請加入集群的節點(master)
kubectl certificate approve XXXXID // master審批通過允許加入集群
kubectl get node
kubectl get cs     // 通過kubectl?具查看當前集群組件狀態
kubectl get pods// 創建Deployment對象
kubectl apply -f deploy.yamlkubectl get namespaces // 命名空間

創建管理員賬戶

1 創建一個 ServiceAccount。ServiceAccount 是 Kubernetes 中用于運行 Pod 的賬戶。
admin-user.yaml :apiVersion: v1
kind: ServiceAccount
metadata:name: admin-usernamespace: kube-systemkubectl apply -f admin-user.yamlapiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRole
metadata:name: admin-role
rules:
- apiGroups: ["*"]resources: ["*"]verbs: ["*"]kubectl apply -f admin-role.yamlapiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRoleBinding
metadata:name: admin-role-binding
subjects:
- kind: ServiceAccountname: admin-usernamespace: kube-system
roleRef:kind: ClusterRolename: admin-roleapiGroup: rbac.authorization.k8s.iokubectl apply -f admin-role-binding.yaml/opt/kubernetes/bin/kubectl create clusterrolebinding kubelet-bootstrap --clusterrole=system:node-bootstrapper --user=kubelet-bootstrapkubectl create clusterrolebinding system:anonymous --clusterrole=cluster-admin --user=system:anonymouskubectl -n kube-system get secret $(kubectl -n kube-system get sa admin-user -o jsonpath="{.secrets[0].name}") -o jsonpath="{.data.token}" | base64 --decodekubectl config set-credentials admin-user --token=<TOKEN>
kubectl config set-context admin-context --cluster=<CLUSTER_NAME> --user=admin-user
kubectl config use-context admin-contextkubectl config set-credentials admin-user --token=<TOKEN>
kubectl config set-context admin-context --cluster=admin-cluster  --user=admin-user
kubectl config use-context admin-context驗證權限
kubectl auth can-i create deployments --namespace=default

K8S kubelet logs報錯

設置 
https://blog.51cto.com/shunzi115/24321641.error: You must be logged in to the server (the server has asked for the client to provide credentials ( pods/log nginx-7bb7cd8db5-v756s))
處理方法:
kubelet配置文件配置默認用戶權限如圖:
kubectl create clusterrolebinding system:anonymous --clusterrole=cluster-admin --user=system:anonymous2.Error from server (Forbidden): Forbidden (user=system:anonymous, verb=get, resource=nodes, subresource=proxy) ( pods/log nginx-7bb7cd8db5-v756s)
處理方法:
anonymous用戶綁定一個cluster-admin的權限
kubectl create clusterrolebinding system:anonymous --clusterrole=cluster-admin --user=system:anonymous

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

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

相關文章

LeetCode 簡單JS刷題

目錄 返回數組最后一個元素 2787.將一個數字表示成冪的和的方案數 326.3的冪 1780.判斷一個數字是否可以表示成三的冪的和 342.4的冪 返回數組最后一個元素 1.請你編寫一段代碼實現一個數組方法&#xff0c;使任何數組都可以調用 array.last() 方法&#xff0c;這個方法將…

七大排序算法全解析:從入門到精通

目錄 一.排序的概念 二.常見排序算法的實現 2.1 插入排序 &#xff08;1&#xff09;直接插入排序&#xff1a; 當插入第i(i>1)個元素時&#xff0c;前面的array[0],array[1],…,array[i-1]已經排好序&#xff0c;此時用array[i]的排序碼與array[i-1],array[i-2],…的排序…

20250814在榮品RD-RK3588開發板的Android13下解決卡迪的LCD屏在開機的時候brightness最暗【背光的pwm信號的極性反了】

20250814在榮品RD-RK3588開發板的Android13下解決卡迪的LCD屏在開機的時候brightness最暗【背光的pwm信號的極性反了】 2025/8/14 11:33緣起&#xff1a;在榮品RD-RK3588開發板的Android13下&#xff0c;卡迪的LCD屏在開機的時候很暗&#xff0c;幾乎看不見。 在命令行查看亮度…

Flink的狀態管理

一、狀態的概念Flink的狀態其實你就可以將其想象為中間結果就可以了。在Flink中&#xff0c;算子的任務可以分為無狀態和有狀態兩種情況。無狀態算子任務在計算過程中是不依賴于其他數據的&#xff0c;只根據當前的輸入數據就可以得到結果輸出。比如之前講到的Map、FlatMap、Fi…

GoLand 項目從 0 到 1:第八天 ——GORM 命名策略陷阱與 Go 項目啟動慢問題攻堅

第八天核心任務&#xff1a;解決開發中的兩大技術卡點今天的開發不僅聚焦于代碼層面的數據庫字段映射問題&#xff0c;還遭遇了一個困擾團隊許久的環境難題 ——Go 項目啟動異常緩慢。經過多維度排查&#xff0c;我們不僅理清了 GORM 命名策略的設計邏輯&#xff0c;還找到了影…

在Ubuntu上安裝Google Chrome的詳細教程

步驟 1&#xff1a;下載 Google Chrome 安裝包 打開瀏覽器輸入https://www.google.cn/chrome/&#xff0c;然后進入Chrome瀏覽器官方網站 點擊下載選擇Debian/Ubuntu版本 google-chrome-stable_current_amd64.deb步驟 2&#xff1a;安裝下載的.deb 包 sudo dpkg -i google-chro…

el-table合并相同名稱的行

el-table合并相同名稱的行 <template><el-table:data"tableData":span-method"objectSpanMethod"border><el-table-columnprop"name"label"名稱"width"180"></el-table-column><el-table-column…

解決 VSCode 無法從右鍵菜單“通過 Code 打開”文件夾的問題

&#x1f9e9; 一、問題現象 VSCode 已安裝&#xff0c;但右鍵文件夾/桌面空白處無“通過 Code 打開在 VSCode 中執行 Shell Command: Install ‘Open with Code’ 無反應手動添加后菜單顯示亂碼&#xff08;如 €?? Code ‰“€&#xff09;點擊右鍵菜單無響應或提示“找不到…

服務器數據恢復—服務器硬盤狀態燈變紅,分區數據恢復過程

服務器數據恢復環境&故障&#xff1a; 某公司服務器上有一組由3塊硬盤組建的raid5磁盤陣列。 服務器上1塊硬盤的狀態燈變為紅色&#xff0c;磁盤陣列出現故障&#xff0c;分區無法識別。服務器數據恢復過程&#xff1a; 1、將故障服務器上所有磁盤編號后取出。經過初檢&…

MySQL → SQL → DDL → 表操作 → 數據類型 知識鏈整理成一份系統的內容

1. 知識結構MySQL└── SQL&#xff08;結構化查詢語言&#xff09;├── DDL&#xff08;數據定義語言&#xff09; → 定義結構│ ├── 表操作&#xff08;創建/修改/刪除表&#xff09;│ └── 數據類型&#xff08;列字段類型定義&#xff09;├── DML&…

基于 gRPC 的接口設計、性能優化與生產實踐

gRPC 是一種高性能、跨語言的遠程過程調用&#xff08;RPC&#xff09;框架&#xff0c;由 Google 開發&#xff0c;基于 HTTP/2 協議和 Protocol Buffers&#xff08;Protobuf&#xff09;序列化機制&#xff0c;廣泛應用于微服務架構和分布式系統中。本文將深入解析 gRPC 的底…

如何回答研究過MQ的源碼嗎

?一、核心回答框架&#xff08;由淺入深&#xff09;??1?? ?明確研究對象和深度?“我主要研究過 ??[具體MQ名稱&#xff0c;如RocketMQ/Kafka/RabbitMQ]?? 的核心模塊源碼&#xff0c;重點關注 ??[選1-2個核心方向]?? &#xff0c;比如存儲機制、網絡通信或事務…

20250815給ubuntu22.04.5的系統縮小/home分區

20250815給ubuntu22.04.5的系統縮小/home分區 2025/8/15 9:42緣起&#xff0c;聯想IdeaPad筆記本電腦&#xff0c;換了4TB的SSD固態硬盤。 WIN10和ubuntu22.04.5的雙系統。 WIN10系統&#xff1a; C盤 500GB&#xff1f; D盤 500GB&#xff1f;ubuntu22.04.5 /home分區大概 2.7…

Windows 11 首次開機引導(OOBE 階段)跳過登錄微軟賬戶,創建本地賬戶

今天重裝WIN11系統后&#xff0c;發現在首次開機引導&#xff08;OOBE 階段&#xff09;中&#xff0c;微軟默認強制聯網并登錄微軟賬戶&#xff0c;沒有的讓你注冊什么的就很煩。通過下面方法可以跳過登錄微軟賬戶&#xff0c;直接創建本地賬戶。? 方法一&#xff1a;斷網&am…

IDE:vscode的vue3模板

快捷鍵打開配置選項&#xff1a;ctrl shift p選擇配置文件&#xff1a;Snippet: Configure Snippets{// Place your snippets for vue here. Each snippet is defined under a snippet name and has a prefix, body and // description. The prefix is what is used to trigg…

C++_390_透傳功能中,使用單例模式,管理session透傳會話的生命周期,為每個會話記錄報警讀取狀態,監控會話心跳狀態,后臺線程自動清理超時會話

問題:對接板端,cvms lite 通道管理頁面,無法添加和刪除多目通道 審核:XXX 根因分析:多通道的刪除和添加需要通過eventcheck上告實現,cvms lite云走的透傳沒有eventcheck 解決辦法:云透傳加上eventcheck上告 footer: Closes: #BUG2025052701632 我幫你分兩部分解析:先解…

MIPI-csi調試

調試流程1. 硬件連線檢查數據線&#xff08;MIPI Data Lanes&#xff09; &#xff1a;確認 IMX415 模組的 4 條數據線 1 條時鐘線連接正確。如果是 4-lane 輸出&#xff0c;SoC 的 D-PHY 必須也配置成 4-lane 接收。控制線&#xff1a;原理圖IC SDA/SCL → &i2c8 控制器管…

Mysql——》提取JSON對象和數組

推薦鏈接&#xff1a; 總結——》【Java】 總結——》【Mysql】 總結——》【Redis】 總結——》【Kafka】 總結——》【Spring】 總結——》【SpringBoot】 總結——》【MyBatis、MyBatis-Plus】 總結——》【Linux】 總結——》【MongoD…

JSON值包含引號

目錄背景代碼正則說明背景 很多時候&#xff0c;在無法使用Gson等能處理非標準化JSON的工具時&#xff0c;需要對JSON值中的JSON限定符進行轉義&#xff0c;使用正則比較方便&#xff0c;以對JSON值中的引號做轉義為例 代碼 private static String escapeUnescapedQuotes(St…

後端開發Python篇

書接上回&#xff1a;後端開發技術教學(五) 魔術方法、類、序列化-CSDN博客 必要資源&#xff1a; trae中下載網址: TRAE - The Real AI Engineer phpStudy 2018 : phpStudy - Windows 一鍵部署 PHP 開發環境 小皮出品 python解釋器&#xff1a;Welcome to Python.org 前言…