云原生Kubernetes: 云主機部署K8S 1.30版本 單Master架構

目錄

一、實驗

1.環境

2.Termius連接云主機

3.網絡連通性與安全機制

4.云主機部署docker

5.云主機配置linux內核路由轉發與網橋過濾

6.云主機部署cri-dockerd

7.云主機部署kubelet,kubeadm,kubectl

8.kubernetes集群初始化

9.容器網絡(CNI)部署

10.證書管理

二、問題

1.云主機如何部署阿里云CLI

2.ECS實例如何內網通信

3.?cri-dockerd 安裝失敗

4.kubelet kubeadm kubectl 安裝報錯

5.K8S 初始化報錯


一、實驗

1.環境

(1)主機

表1 云主機

主機系統架構版本IP備注
masterCentOS Stream9K8S master節點1.30.1

172.17.59.254(私有)

8.219.188.219(公)

nodeCentOS Stream9K8S node節點1.30.1

172.17.1.22(私有)

8.219.58.157(公)

(2)查看輕量應用服務器

阿里云查看

2.Termius連接云主機

(1)連接

master

node

(2) 查看系統

cat /etc/os-release

master

node

3.網絡連通性與安全機制

(1)查閱

https://www.alibabacloud.com/help/zh/simple-application-server/product-overview/regions-and-network-connectivity#:~:text=%E5%86%85%E7%BD%91%20%E5%90%8C%E4%B8%80%E8%B4%A6%E5%8F%B7%E5%90%8C%E4%B8%80%E5%9C%B0%E5%9F%9F%E4%B8%8B%EF%BC%8C%E5%A4%9A%E5%8F%B0%E8%BD%BB%E9%87%8F%E5%BA%94%E7%94%A8%E6%9C%8D%E5%8A%A1%E5%99%A8%E7%9A%84%E5%AE%9E%E4%BE%8B%E9%BB%98%E8%AE%A4%E5%A4%84%E4%BA%8E%E5%90%8C%E4%B8%80%E4%B8%AAVPC%E5%86%85%E7%BD%91%E7%8E%AF%E5%A2%83%EF%BC%8C%E5%A4%9A%E5%AE%9E%E4%BE%8B%E9%97%B4%E7%9A%84%E4%BA%92%E8%81%94%E4%BA%92%E9%80%9A%E5%8F%AF%E4%BB%A5%E9%80%9A%E8%BF%87%E5%86%85%E7%BD%91%E5%AE%9E%E7%8E%B0%EF%BC%8C%E4%BD%86%E4%B8%8E%E5%85%B6%E4%BB%96%E4%BA%A7%E5%93%81%E7%9A%84%E5%86%85%E7%BD%91%E9%BB%98%E8%AE%A4%E4%BA%92%E4%B8%8D%E7%9B%B8%E9%80%9A%E3%80%82,%E4%B8%8D%E5%90%8C%E5%9C%B0%E5%9F%9F%E5%86%85%E7%9A%84%E8%BD%BB%E9%87%8F%E5%BA%94%E7%94%A8%E6%9C%8D%E5%8A%A1%E5%99%A8%E5%86%85%E7%BD%91%E4%B9%9F%E4%B8%8D%E4%BA%92%E9%80%9A%E3%80%82%20%E5%A6%82%E6%9E%9C%E9%9C%80%E8%A6%81%E8%BD%BB%E9%87%8F%E5%BA%94%E7%94%A8%E6%9C%8D%E5%8A%A1%E5%99%A8%E4%B8%8E%E4%BA%91%E6%9C%8D%E5%8A%A1%E5%99%A8ECS%E3%80%81%E4%BA%91%E6%95%B0%E6%8D%AE%E5%BA%93%E7%AD%89%E5%85%B6%E4%BB%96%E5%A4%84%E4%BA%8E%E4%B8%93%E6%9C%89%E7%BD%91%E7%BB%9CVPC%E4%B8%AD%E7%9A%84%E9%98%BF%E9%87%8C%E4%BA%91%E4%BA%A7%E5%93%81%E5%86%85%E7%BD%91%E4%BA%92%E9%80%9A%EF%BC%8C%E6%82%A8%E5%8F%AF%E4%BB%A5%E9%80%9A%E8%BF%87%E8%AE%BE%E7%BD%AE%E5%86%85%E7%BD%91%E4%BA%92%E9%80%9A%E5%AE%9E%E7%8E%B0%E4%BA%92%E8%81%94%E4%BA%92%E9%80%9A%E3%80%82

(2)ping測試

master 連接 node

 ping 172.17.59.254

(3) 關閉防火墻

systemctl stop firewalld.service
systemctl disable firewalld.service

master

node

(4) 關閉交換分區

sudo swapoff -a
free -h

master

node

(5) 關閉安全機制

vim  /etc/selinux/config
SELINUX=disabled

master

node

4.云主機部署docker

(1) master部署docker

獲取官方源

wget -P /etc/yum.repos.d/ https://download.docker.com/linux/centos/docker-ce.repo

安裝

yum install -y docker-ce

配置國內鏡像倉庫

vim /etc/docker/daemon.json

XXXXXXXX為個人的阿里云鏡像加速

{"exec-opts": ["native.cgroupdriver=systemd"], "registry-mirrors": ["https://XXXXXXXX.mirror.aliyuncs.com","http://hub-mirror.c.163.com","https://docker.mirrors.ustc.edu.cn"]
}

啟動docker

systemctl start docker

查看

docker info

(2)node部署docker

?獲取官方源

wget -P /etc/yum.repos.d/ https://download.docker.com/linux/centos/docker-ce.repo

安裝

yum install -y docker-ce

配置國內鏡像倉庫

vim /etc/docker/daemon.json

XXXXXXXX為個人的阿里云鏡像加速

{"exec-opts": ["native.cgroupdriver=systemd"], "registry-mirrors": ["https://XXXXXXXX.mirror.aliyuncs.com","http://hub-mirror.c.163.com","https://docker.mirrors.ustc.edu.cn"]
}

啟動docker

systemctl start docker

?

查看

docker info

5.云主機配置linux內核路由轉發與網橋過濾

(1)修改配置文件并加載

master

vim /etc/sysctl.d/k8s.conf

#加載
modprobe  br_netfilter
#查看
lsmod |grep  br_netfilter
#配置加載
sysctl -p

node

vim /etc/sysctl.d/k8s.conf

#加載
modprobe  br_netfilter
#查看
lsmod |grep  br_netfilter
#配置加載
sysctl -p

(2)安裝配置ipset,ipvsadm

yum install ipset ipvsadm

master

node

6.云主機部署cri-dockerd

(1)查閱

https://github.com/Mirantis/cri-dockerd/releases

最新版為v0.3.14

(2)下載

wget https://github.com/Mirantis/cri-dockerd/releases/download/v0.3.14/cri-dockerd-0.3.14-3.el8.x86_64.rpm

master

node

(3)依賴環境安裝

master

#下載依賴環境
wget http://mirror.centos.org/centos/8-stream/BaseOS/x86_64/os/Packages/libcgroup-0.41-19.el8.x86_64.rpm#安裝
rpm  -ivh  libcgroup-0.41-19.el8.x86_64.rpm

node

(4)部署cri-dockerd

master

rpm  -ivh  cri-dockerd-0.3.14-3.el8.x86_64.rpm

(5) 啟動

systemctl daemon-reload
systemctl enable cri-docker
systemctl start cri-docker
systemctl status cri-docker

master

node

7.云主機部署kubelet,kubeadm,kubectl

(1) 查閱

https://mirrors.aliyun.com/kubernetes-new/core/stable/v1.30/rpm/repodata/?spm=a2c6h.25603864.0.0.2d32281ci7ZyIM

(2)創建源文件

vim /etc/yum.repos.d/kubernetes.repo#成阿里云的源
[kubernetes]
name=Kubernetes
baseurl=https://mirrors.aliyun.com/kubernetes-new/core/stable/v1.30/rpm/
enabled=1
gpgcheck=1
gpgkey=https://mirrors.aliyun.com/kubernetes-new/core/stable/v1.30/rpm/repodata/repomd.xml.key

master

node

(3)更新源

yum clean all && yum makecache

master

node

(3)安裝

yum install kubelet kubeadm kubectl

master

node

(4)查看版本

kubectl version
kubeadm version
kubelet --version

master

node

(5)修改配置文件

vim /etc/sysconfig/kubelet#修改
KUBELET_EXTRA_ARGS="--cgroup-driver=systemd"

master

node

(6)啟動

systemctl enable kubelet
systemctl start kubelet

master

node

(5)master下載K8S依賴的鏡像

#阿里云下載
docker pull registry.aliyuncs.com/google_containers/kube-apiserver:v1.30.1
docker pull registry.aliyuncs.com/google_containers/kube-controller-manager:v1.30.1
docker pull registry.aliyuncs.com/google_containers/kube-scheduler:v1.30.1
docker pull registry.aliyuncs.com/google_containers/kube-proxy:v1.30.1
docker pull registry.aliyuncs.com/google_containers/coredns:v1.11.1
docker pull registry.aliyuncs.com/google_containers/pause:3.9
docker pull registry.aliyuncs.com/google_containers/etcd:3.5.12-0

(5) 查看鏡像

master

[root@iZt4nczjliu7lp3kun6m9jZ ~]# docker images
REPOSITORY                                                        TAG        IMAGE ID       CREATED         SIZE
registry.aliyuncs.com/google_containers/kube-apiserver            v1.30.1    91be94080317   12 days ago     117MB
registry.aliyuncs.com/google_containers/kube-scheduler            v1.30.1    a52dc94f0a91   12 days ago     62MB
registry.aliyuncs.com/google_containers/kube-controller-manager   v1.30.1    25a1387cdab8   12 days ago     111MB
registry.aliyuncs.com/google_containers/kube-proxy                v1.30.1    747097150317   12 days ago     84.7MB
registry.aliyuncs.com/google_containers/etcd                      3.5.12-0   3861cfcd7c04   3 months ago    149MB
registry.aliyuncs.com/google_containers/coredns                   v1.11.1    cbb01a7bd410   9 months ago    59.8MB
registry.aliyuncs.com/google_containers/pause                     3.9        e6f181688397   19 months ago   744kB

(7)master鏡像重新打標簽

#配置默認tag
docker tag 91be94080317 registry.k8s.io/kube-apiserver:v1.30.1
docker tag cbb01a7bd410 registry.k8s.io/coredns/coredns:v1.11.1
docker tag e6f181688397  registry.k8s.io/pause:3.9
docker tag 3861cfcd7c04  registry.k8s.io/etcd:3.5.12-0
docker tag 747097150317  registry.k8s.io/kube-proxy:v1.30.1
docker tag 25a1387cdab8  registry.k8s.io/kube-controller-manager:v1.30.1
docker tag a52dc94f0a91  registry.k8s.io/kube-scheduler:v1.30.1

(8) master再次查看鏡像

docker images

8.kubernetes集群初始化

(1) 安裝iproute

yum install iproute-tc

(2)master初始化 (如報錯可以參考后續的問題集)

kubeadm init --kubernetes-version=v1.30.1 --pod-network-cidr=10.244.0.0/16 --apiserver-advertise-address=172.17.59.254  --cri-socket unix:///var/run/cri-dockerd.sock --ignore-preflight-errors=Mem

完成初始化記錄如下:

[root@iZt4nczjliu7lp3kun6m9jZ ~]# kubeadm init --kubernetes-version=v1.30.1 --pod-network-cidr=10.244.0.0/16 --apiserver-advertise-address=172.17.59.254  --cri-socket unix:///var/run/cri-dockerd.sock --ignore-preflight-errors=Mem
[init] Using Kubernetes version: v1.30.1
[preflight] Running pre-flight checks[WARNING Mem]: the system RAM (1689 MB) is less than the minimum 1700 MB
[preflight] Pulling images required for setting up a Kubernetes cluster
[preflight] This might take a minute or two, depending on the speed of your internet connection
[preflight] You can also perform this action in beforehand using 'kubeadm config images pull'
[certs] Using certificateDir folder "/etc/kubernetes/pki"
[certs] Generating "ca" certificate and key
[certs] Generating "apiserver" certificate and key
[certs] apiserver serving cert is signed for DNS names [izt4nczjliu7lp3kun6m9jz kubernetes kubernetes.default kubernetes.default.svc kubernetes.default.svc.cluster.local] and IPs [10.96.0.1 172.17.59.254]
[certs] Generating "apiserver-kubelet-client" certificate and key
[certs] Generating "front-proxy-ca" certificate and key
[certs] Generating "front-proxy-client" certificate and key
[certs] Generating "etcd/ca" certificate and key
[certs] Generating "etcd/server" certificate and key
[certs] etcd/server serving cert is signed for DNS names [izt4nczjliu7lp3kun6m9jz localhost] and IPs [172.17.59.254 127.0.0.1 ::1]
[certs] Generating "etcd/peer" certificate and key
[certs] etcd/peer serving cert is signed for DNS names [izt4nczjliu7lp3kun6m9jz localhost] and IPs [172.17.59.254 127.0.0.1 ::1]
[certs] Generating "etcd/healthcheck-client" certificate and key
[certs] Generating "apiserver-etcd-client" certificate and key
[certs] Generating "sa" key and public key
[kubeconfig] Using kubeconfig folder "/etc/kubernetes"
[kubeconfig] Writing "admin.conf" kubeconfig file
[kubeconfig] Writing "super-admin.conf" kubeconfig file
[kubeconfig] Writing "kubelet.conf" kubeconfig file
[kubeconfig] Writing "controller-manager.conf" kubeconfig file
[kubeconfig] Writing "scheduler.conf" kubeconfig file
[etcd] Creating static Pod manifest for local etcd in "/etc/kubernetes/manifests"
[control-plane] Using manifest folder "/etc/kubernetes/manifests"
[control-plane] Creating static Pod manifest for "kube-apiserver"
[control-plane] Creating static Pod manifest for "kube-controller-manager"
[control-plane] Creating static Pod manifest for "kube-scheduler"
[kubelet-start] Writing kubelet environment file with flags to file "/var/lib/kubelet/kubeadm-flags.env"
[kubelet-start] Writing kubelet configuration to file "/var/lib/kubelet/config.yaml"
[kubelet-start] Starting the kubelet
[wait-control-plane] Waiting for the kubelet to boot up the control plane as static Pods from directory "/etc/kubernetes/manifests"
[kubelet-check] Waiting for a healthy kubelet. This can take up to 4m0s
[kubelet-check] The kubelet is healthy after 503.8172ms
[api-check] Waiting for a healthy API server. This can take up to 4m0s
[api-check] The API server is healthy after 8.001714086s
[upload-config] Storing the configuration used in ConfigMap "kubeadm-config" in the "kube-system" Namespace
[kubelet] Creating a ConfigMap "kubelet-config" in namespace kube-system with the configuration for the kubelets in the cluster
[upload-certs] Skipping phase. Please see --upload-certs
[mark-control-plane] Marking the node izt4nczjliu7lp3kun6m9jz as control-plane by adding the labels: [node-role.kubernetes.io/control-plane node.kubernetes.io/exclude-from-external-load-balancers]
[mark-control-plane] Marking the node izt4nczjliu7lp3kun6m9jz as control-plane by adding the taints [node-role.kubernetes.io/control-plane:NoSchedule]
[bootstrap-token] Using token: m926rd.ejaz92v7hhmgt7p0
[bootstrap-token] Configuring bootstrap tokens, cluster-info ConfigMap, RBAC Roles
[bootstrap-token] Configured RBAC rules to allow Node Bootstrap tokens to get nodes
[bootstrap-token] Configured RBAC rules to allow Node Bootstrap tokens to post CSRs in order for nodes to get long term certificate credentials
[bootstrap-token] Configured RBAC rules to allow the csrapprover controller automatically approve CSRs from a Node Bootstrap Token
[bootstrap-token] Configured RBAC rules to allow certificate rotation for all node client certificates in the cluster
[bootstrap-token] Creating the "cluster-info" ConfigMap in the "kube-public" namespace
[kubelet-finalize] Updating "/etc/kubernetes/kubelet.conf" to point to a rotatable kubelet client certificate and key
[addons] Applied essential addon: CoreDNS
[addons] Applied essential addon: kube-proxyYour 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.confYou 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/Then you can join any number of worker nodes by running the following on each as root:kubeadm join 172.17.59.254:6443 --token m926rd.ejaz92v7hhmgt7p0 \--discovery-token-ca-cert-hash sha256:e108c1809c7e4e0316ff25407d06fed0f60241dc3767524672977d9042312c92 

(3)創建配置目錄

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

(4)生成token

#默認初始化生成token有效期是24小時,所以用自己的生成不過期的token,node節點加入需要用到
kubeadm token create --ttl 0  --print-join-command

(5) node節點加入

1)添加節點需要指定cri-dockerd接口–cri-socket ,這里是使用cri-dockerd
kubeadm join 172.17.59.254:6443 --token 9jvebb.vtuw3utmxfkhrpwf --discovery-token-ca-cert-hash sha256:e108c1809c7e4e0316ff25407d06fed0f60241dc3767524672977d9042312c92 --cri-socket=unix:///var/run/cri-dockerd.sock2)如果是containerd則使用–cri-socket unix:///run/containerd/containerd.sock

(6)K8S master節點查看集群

1)查看node
kubectl get node2)查看node詳細信息
kubectl get node -o wide

狀態為NotReady,因為網絡插件沒有安裝。

9.容器網絡(CNI)部署

(1)下載Calico配置文件

https://github.com/projectcalico/calico/blob/v3.27.3/manifests/calico.yaml

(2)修改里面定義Pod網絡(CALICO_IPV4POOL_CIDR)

vim calico.yaml

① ?修改前:

②修改后:

與前面kubeadm init的 --pod-network-cidr指定的一樣

(3)部署

kubectl apply -f calico.yaml

(4)查看

kubectl get pods -n kube-system

(5) 查看pod(狀態已變更為Ready)

kubectl get node

10.證書管理

(1)查看

openssl x509 -in /etc/kubernetes/pki/apiserver.crt -noout -text | grep Not

kubeadm certs check-expiration

(2)查閱工具

https://github.com/yuyicai/update-kube-cert

(3)下載

wget https://github.com/yuyicai/update-kube-cert/archive/refs/tags/v1.1.0.tar.gz

(4) 解壓

tar zxvf v1.1.0.tar.gz 

(5)執行(延長證書使用時間)

cd update-kube-cert-1.1.0/
./update-kubeadm-cert.sh all

(6)再次查看

openssl x509 -in /etc/kubernetes/pki/apiserver.crt -noout -text | grep Not

kubeadm certs check-expiration

(7)最后查看pod

kubectl get pod -o wide

(8)查看內存使用情況

master

node

二、問題

1.云主機如何部署阿里云CLI

(1)查閱

https://help.aliyun.com/zh/cli/install-cli-on-linux?spm=0.0.0.i2#task-592837

最新版為v3.0.207

下載

1)官網
https://aliyuncli.alicdn.com/aliyun-cli-linux-latest-amd64.tgz2) GitHub
https://github.com/aliyun/aliyun-cli/releases

(2)master部署阿里云CLI

創建目錄

mkdir -p $HOME/aliyun
cd  $HOME/aliyun

下載

wget https://github.com/aliyun/aliyun-cli/releases/download/v3.0.207/aliyun-cli-linux-3.0.207-amd64.tgz

解壓

 tar xzvf aliyun-cli-linux-3.0.207-amd64.tgz 

aliyun程序復制到/usr/local/bin目錄中

sudo cp aliyun /usr/local/bin

(3)node部署阿里云CLI

?創建目錄

mkdir -p $HOME/aliyun
cd  $HOME/aliyun

下載

wget https://github.com/aliyun/aliyun-cli/releases/download/v3.0.207/aliyun-cli-linux-3.0.207-amd64.tgz

解壓

 tar xzvf aliyun-cli-linux-3.0.207-amd64.tgz 

aliyun程序復制到/usr/local/bin目錄中

sudo cp aliyun /usr/local/bin

2.ECS實例如何內網通信

(1)查閱

https://help.aliyun.com/zh/ecs/authorize-internal-network-communication-between-ecs-instances-in-different-accounts-by-using-the-api

(2)策略

通過CLI調用API增加入方向安全組規則實現實例內網通信。

3.?cri-dockerd 安裝失敗

(1)報錯

(2)原因分析

缺少依賴。

(3)解決方法

查閱

https://centos.pkgs.org/8-stream/centos-baseos-x86_64/libcgroup-0.41-19.el8.x86_64.rpm.html

下載依賴

wget https://github.com/Mirantis/cri-dockerd/releases/download/v0.3.14/cri-dockerd-0.3.14-3.el8.x86_64.rpm

安裝依賴

rpm  -ivh  libcgroup-0.41-19.el8.x86_64.rpm

成功安裝cri-dockerd:

4.kubelet kubeadm kubectl 安裝報錯

(1) 報錯

(2)原因分析

repo源中的?gpgkey地址錯誤。

(3)解決方法

修改配置文件

更新源

yum clean all && yum makecache

成功:

5.K8S 初始化報錯

(1)報錯

(2)原因分析

cpu cgroups由于某些原因被禁用了,需要手動啟用它。

(3)解決方法

1)修改 GRUB 配置
如果發現 CPU cgroups 沒有啟用,你可以通過編輯 GRUB 的啟動參數來啟用它。執行以下命令來編輯 GRUB 配置文件:
sudo vim /etc/default/grub在文件中找到 GRUB_CMDLINE_LINUX 這一行,確保包含以下參數:
cgroup_enable=cpu2)更新
sudo grub2-mkconfig -o /boot/grub2/grub.cfg3)重啟
reboot

停止中:

運行

繼續報錯

卸載cri-docker

rpm -qa | grep -i cri-docker
rpm -e cri-dockerd-0.3.14-3.el8.x86_64

下載并重新安裝(master與node節點都要操作)

1)下載安裝最新版的cri-dockerd
wget https://github.com/Mirantis/cri-dockerd/releases/download/v0.3.14/cri-dockerd-0.3.14.amd64.tgz
tar xf cri-dockerd-0.3.14.amd64.tgz 
mv cri-dockerd/cri-dockerd  /usr/bin/
rm -rf  cri-dockerd  cri-dockerd-0.3.8.amd64.tgz2)配置啟動項
cat > /etc/systemd/system/cri-docker.service<<EOF
[Unit]
Description=CRI Interface for Docker Application Container Engine
Documentation=https://docs.mirantis.com
After=network-online.target firewalld.service docker.service
Wants=network-online.target
Requires=cri-docker.socket
[Service]
Type=notify
# ExecStart=/usr/bin/cri-dockerd --container-runtime-endpoint fd://
# 指定用作 Pod 的基礎容器的容器鏡像(“pause 鏡像”)
ExecStart=/usr/bin/cri-dockerd --pod-infra-container-image=registry.k8s.io/pause:3.9 --container-runtime-endpoint fd:// 
ExecReload=/bin/kill -s HUP $MAINPID
TimeoutSec=0
RestartSec=2
Restart=always
StartLimitBurst=3
StartLimitInterval=60s
LimitNOFILE=infinity
LimitNPROC=infinity
LimitCORE=infinity
TasksMax=infinity
Delegate=yes
KillMode=process
[Install]
WantedBy=multi-user.target
EOFcat > /etc/systemd/system/cri-docker.socket <<EOF
[Unit]
Description=CRI Docker Socket for the API
PartOf=cri-docker.service
[Socket]
ListenStream=%t/cri-dockerd.sock
SocketMode=0660
SocketUser=root
SocketGroup=docker
[Install]
WantedBy=sockets.target
EOF3)重新加載并設置自啟動
systemctl daemon-reload 
systemctl enable cri-docker && systemctl start cri-docker && systemctl status cri-docker

目前還有1個報錯

忽略Mem

kubeadm init --kubernetes-version=v1.30.1 --pod-network-cidr=10.244.0.0/16 --apiserver-advertise-address=172.17.59.254  --cri-socket unix:///var/run/cri-dockerd.sock --ignore-preflight-errors=Mem

成功:

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

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

相關文章

Docker學習筆記 - 創建自己的image

目錄 基本概念常用命令使用docker compose啟動腳本創建自己的image 使用Docker是現在最為流行的軟件發布方式&#xff0c; 本系列將闡述Docker的基本概念&#xff0c;常用命令&#xff0c;啟動腳本和如何生產自己的docker image。 在我們發布軟件時&#xff0c;往往需要把我…

解析邊緣計算網關的優勢-天拓四方

隨著信息化、智能化浪潮的持續推進&#xff0c;計算技術正以前所未有的速度發展&#xff0c;而邊緣計算網關作為其中的重要一環&#xff0c;以其獨特的優勢正在逐步改變我們的生活方式和工作模式。本文將詳細解析邊緣計算網關的優勢。 首先&#xff0c;邊緣計算網關具有顯著的…

uniapp頁面vue3下拉觸底發送獲取新數據請求實現分頁功能

頁面下拉觸底獲取新數據實現分頁功能實現方式有兩種&#xff0c;根據自己的業務需求來定&#xff0c;不同的方案適用場景不一樣&#xff0c;有的是一整個頁面下拉獲取新數據&#xff0c;有的是部分盒子內容滾動到底部時候實現獲取新數據&#xff0c;下面討論一下兩種方式的區別…

C語言中 一種特殊的 數組或結構體 初始化方法

在C語言中&#xff0c;初始化器&#xff08;Initializer&#xff09;是一種特殊的語法&#xff0c;用于在變量定義時設置初始值。對于不同類型的變量&#xff08;如基本類型、數組、結構體和聯合體&#xff09;&#xff0c;初始化器的用法有所不同。 1. 基本類型 對于基本數據…

JSON-RPC跨域通信:Python服務器端解決方案與Js客戶端 Mozilla擴展程序

問題背景 構建一個 Mozilla 擴展程序&#xff0c;與遠程服務器上的 Python 應用程序進行通信以發送和接收數據。Python 應用程序可以通過 Python 控制臺使用 xml-rpc 調用。嘗試設計一個 JSON-RPC 來聯系同一個應用程序。開發 Python 服務器端&#xff0c;可以通過 python 控制…

CSP十滴水

題目給的容器很多&#xff0c;1e9&#xff0c;我們遍歷肯定會超時。 但是他給的信息是&#xff0c;m只有3e5&#xff0c;且每次滴水都會滴在有水的地方&#xff0c;水滿了之后也只會擴散到左右有水的地方。也就是說&#xff0c;只有有水的地方才是我們會用到的地方。 所以&am…

【高數】重點內容,公式+推導+例題,大學考試必看

目錄 1 隱函數求導1.1 公式1.2 說明1.3 例題 2 無條件極值2.1 運用2.2 求解2.3 例題 3 條件極值3.1 運用3.2 求解3.3 例題 4 二重積分4.1 直角坐標下4.2 極坐標下4.3 例題 5 曲線積分5.1 第一型曲線積分5.2 第二型曲線積分5.3 例題 6 格林公式6.1 公式6.2 說明6.3 例題 &#x…

Postman進階功能-集合分支管理與編寫接口文檔

大家好&#xff0c;在接口測試的領域中&#xff0c;我們不斷追求更高效、更便捷、更強大的方法與工具。而 Postman 作為一款備受青睞的接口測試工具&#xff0c;其進階功能更是為我們打開了新的天地。在這其中&#xff0c;集合分支管理與編寫接口文檔的功能顯得尤為重要。 當面…

作業-day-240527

Cday1思維導圖 定義自己的命名空間my_sapce&#xff0c;在my_sapce中定義string類型的變量s1&#xff0c;再定義一個函數完成對字符串的逆置 #include <iostream>using namespace std;namespace my_space {string s1"abc123";string recover(string s){int i0…

go-zero 實戰(3)

引入 Redis 在之前的 user 微服務中引入 redis。 1. 修改 user/internal/config/config.go package configimport ("github.com/zeromicro/go-zero/core/stores/cache""github.com/zeromicro/go-zero/zrpc" )type Config struct {zrpc.RpcServerConfMys…

拖線無人機技術

拖線無人機技術是一種獨特且高效的無人機應用技術&#xff0c;其設計理念源于風箏。這種無人機不僅能夠在空中穩定飛行&#xff0c;而且具備極強的抗干擾能力&#xff0c;使其在各種復雜環境下都能保持通信暢通和任務執行的高效。 拖線無人機技術的核心在于其拖線系統。與傳統…

Overall Accuracy(OA)、Average Accuracy(AAcc)計算公式

以二分類為例&#xff1a;1.總體精度(Overall Accuracy, OA)&#xff1a;樣本中正確分類的總數除以樣本總數。 OA(TPTN)/(TPFNFPTN)2.平均精度(Average Accuracy, AA)&#xff1a;每一類別中預測正確的數目除以該類總數&#xff0c;記為該類的精度&#xff0c;最后求每類精度的…

2022全國大學生數學建模競賽ABC題(論文+代碼)

文章目錄 &#xff08;1&#xff09;2022A波浪能最大輸出功率&#xff08;2&#xff09;2022B無人機定位&#xff08;3&#xff09;2022C古代玻璃制品成分分析&#xff08;4&#xff09;論文和代碼鏈接 &#xff08;1&#xff09;2022A波浪能最大輸出功率 &#xff08;2&#x…

檢測 CSS 中的 JavaScript 支持

最近&#xff0c;我驚喜地發現了一個CSS媒體特性——scripting&#xff0c;它能夠在所有現代瀏覽器中使用。這意味著&#xff0c;我們可以根據用戶瀏覽器是否支持JavaScript來提供不同的CSS規則&#xff0c;從而減少未樣式化內容的閃爍或不受歡迎的布局偏移。 使用方法 使用這…

su模型轉3d模型不夠平滑怎么辦?---模大獅

當將SU模型轉換為3D模型時&#xff0c;可能會遇到模型不夠平滑的情況&#xff0c;這會影響到最終的渲染效果和視覺體驗。本文將探討在此情況下應該如何解決&#xff0c;幫助讀者更好地處理這一常見的問題。 一、檢查SU模型細分程度 首先要檢查的是原始的SU模型的細分程度。在S…

go語言之map

1.map認識 哈希表是一種巧妙并且實用的數據結構。它是一個無序的key/value對的集合&#xff0c;其中所有的key都是不同的&#xff0c;然后通過給定的key可以在常數時間復雜度內檢索、更新或者刪除對用的value。 在Go語言中&#xff0c;一個map就是一個哈希表的引用&…

XSKY CTO 在英特爾存儲技術峰會的演講:LLM 存儲,架構至關重要

5 月 17 日&#xff0c;英特爾存儲技術峰會在北京順利舉辦。作為英特爾長期的合作伙伴&#xff0c;星辰天合受邀參加了此次峰會。星辰天合 CTO 王豪邁作為特邀嘉賓之一&#xff0c;作了主題為《LLM 存儲&#xff1a;架構至關重要》的演講&#xff0c;分享了大語言模型&#xff…

2024年中國金融行業網絡安全案例集

隨著科技的飛速發展,金融行業與信息技術的融合日益加深,網絡安全已成為金融行業發展的生命線。金融行業作為國家經濟的核心支柱&#xff0c;正在面臨著日益復雜嚴峻的網絡安全挑戰。因此&#xff0c;深入研究和探討金融行業的網絡安全問題&#xff0c;不僅關乎金融行業的穩健運…

Jtti:如何在Linux服務器上查看系統日志?

在美國的Linux服務器上查看系統日志是系統管理員常見的任務之一。系統日志可以幫助你診斷和解決服務器上的問題。以下是如何在Linux服務器上查看系統日志的詳細教程&#xff1a; 1. 連接到服務器 首先&#xff0c;通過SSH連接到你的Linux服務器。如果你在本地終端使用SSH&#…

MIPI豎屏解決方案,普立晶POL8901升級POL8903 兩PORT LVDS橋接到MIPI,加旋轉

POL8903描述&#xff1a; 系統&#xff1a; ?采用高性能MIPS 32位CPU內核&#xff1b; ?高性能DSP內核圖像處理單元&#xff1b; ?16 KB指令Cache&#xff1b;16 KB數據Cache&#xff1b; ?96 KB SRAM&#xff1b;內置DDR 3控制器&#xff1b; LVDS輸入&#xff1a; …