android 安卓 failed to connect to /192.168.0.135 (port 8080) after 1000ms

本文提供了两种解决设备连接问题的方法:一是关闭目标电脑的防火墙;二是确保手机与电脑处于同一局域网或连接同一WiFi,以实现设备间的正常通信。

解决方式有两种:

                    1. 关闭你要连接电脑的防火墙。

                      如果还是不行,那一定是你的手机和电脑没在同一个局域网

                     2.让你的电脑和你的手机连接同一个局域网或者wifi。

原文:https://blog.youkuaiyun.com/loli_kong/article/details/81323838
 

nvidia@nvidia-desktop:~$ sudo systemctl status docker cri-dockerd # 确保cri-dockerd已安装(Kubernetes 1.24+必需) if ! command -v cri-dockerd &> /dev/null; then Unit cri-dockerd.service could not be found. ● docker.service - Docker Application Container Engine Loaded: loaded (/lib/systemd/system/docker.service; enabled; vendor preset: enabled) Active: active (running) since Mon 2025-12-08 14:21:01 CST; 10s ago TriggeredBy: ● docker.socket Docs: https://docs.docker.com Main PID: 307670 (dockerd) Tasks: 12 Memory: 32.0M CGroup: /system.slice/docker.service └─307670 /usr/bin/dockerd -H fd:// --containerd=/run/containerd/containerd.sock 12月 08 14:21:00 nvidia-desktop dockerd[307670]: time="2025-12-08T14:21:00.905384514+08:00" level=info msg="Starting up" 12月 08 14:21:00 nvidia-desktop dockerd[307670]: time="2025-12-08T14:21:00.907450939+08:00" level=info msg="detected 127.0.0.53 nameserver, assuming system> 12月 08 14:21:00 nvidia-desktop dockerd[307670]: time="2025-12-08T14:21:00.933499466+08:00" level=info msg="[graphdriver] trying configured driver: overlay> 12月 08 14:21:00 nvidia-desktop dockerd[307670]: time="2025-12-08T14:21:00.950999544+08:00" level=info msg="Loading containers: start." 12月 08 14:21:01 nvidia-desktop dockerd[307670]: time="2025-12-08T14:21:01.068395372+08:00" level=info msg="Default bridge (docker0) is assigned with an IP> 12月 08 14:21:01 nvidia-desktop dockerd[307670]: time="2025-12-08T14:21:01.119938208+08:00" level=info msg="Loading containers: done." 12月 08 14:21:01 nvidia-desktop dockerd[307670]: time="2025-12-08T14:21:01.136753856+08:00" level=info msg="Docker daemon" commit="26.1.3-0ubuntu1~20.04.1"> 12月 08 14:21:01 nvidia-desktop dockerd[307670]: time="2025-12-08T14:21:01.136876237+08:00" level=info msg="Daemon has completed initialization" 12月 08 14:21:01 nvidia-desktop dockerd[307670]: time="2025-12-08T14:21:01.175939143+08:00" level=info msg="API listen on /run/docker.sock" 12月 08 14:21:01 nvidia-desktop systemd[1]: Started Docker Application Container Engine. ...skipping... Unit cri-dockerd.service could not be found. ● docker.service - Docker Application Container Engine Loaded: loaded (/lib/systemd/system/docker.service; enabled; vendor preset: enabled) Active: active (running) since Mon 2025-12-08 14:21:01 CST; 10s ago TriggeredBy: ● docker.socket Docs: https://docs.docker.com Main PID: 307670 (dockerd) Tasks: 12 Memory: 32.0M CGroup: /system.slice/docker.service └─307670 /usr/bin/dockerd -H fd:// --containerd=/run/containerd/containerd.sock 12月 08 14:21:00 nvidia-desktop dockerd[307670]: time="2025-12-08T14:21:00.905384514+08:00" level=info msg="Starting up" 12月 08 14:21:00 nvidia-desktop dockerd[307670]: time="2025-12-08T14:21:00.907450939+08:00" level=info msg="detected 127.0.0.53 nameserver, assuming system> 12月 08 14:21:00 nvidia-desktop dockerd[307670]: time="2025-12-08T14:21:00.933499466+08:00" level=info msg="[graphdriver] trying configured driver: overlay> 12月 08 14:21:00 nvidia-desktop dockerd[307670]: time="2025-12-08T14:21:00.950999544+08:00" level=info msg="Loading containers: start." 12月 08 14:21:01 nvidia-desktop dockerd[307670]: time="2025-12-08T14:21:01.068395372+08:00" level=info msg="Default bridge (docker0) is assigned with an IP> 12月 08 14:21:01 nvidia-desktop dockerd[307670]: time="2025-12-08T14:21:01.119938208+08:00" level=info msg="Loading containers: done." 12月 08 14:21:01 nvidia-desktop dockerd[307670]: time="2025-12-08T14:21:01.136753856+08:00" level=info msg="Docker daemon" commit="26.1.3-0ubuntu1~20.04.1"> 12月 08 14:21:01 nvidia-desktop dockerd[307670]: time="2025-12-08T14:21:01.136876237+08:00" level=info msg="Daemon has completed initialization" 12月 08 14:21:01 nvidia-desktop dockerd[307670]: time="2025-12-08T14:21:01.175939143+08:00" level=info msg="API listen on /run/docker.sock" 12月 08 14:21:01 nvidia-desktop systemd[1]: Started Docker Application Container Engine. ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ...skipping... ~ Unit cri-dockerd.service could not be found. ● docker.service - Docker Application Container Engine Loaded: loaded (/lib/systemd/system/docker.service; enabled; vendor preset: enabled) Active: active (running) since Mon 2025-12-08 14:21:01 CST; 10s ago TriggeredBy: ● docker.socket Docs: https://docs.docker.com Main PID: 307670 (dockerd) Tasks: 12 Memory: 32.0M CGroup: /system.slice/docker.service └─307670 /usr/bin/dockerd -H fd:// --containerd=/run/containerd/containerd.sock 12月 08 14:21:00 nvidia-desktop dockerd[307670]: time="2025-12-08T14:21:00.905384514+08:00" level=info msg="Starting up" 12月 08 14:21:00 nvidia-desktop dockerd[307670]: time="2025-12-08T14:21:00.907450939+08:00" level=info msg="detected 127.0.0.53 nameserver, assuming system> 12月 08 14:21:00 nvidia-desktop dockerd[307670]: time="2025-12-08T14:21:00.933499466+08:00" level=info msg="[graphdriver] trying configured driver: overlay> 12月 08 14:21:00 nvidia-desktop dockerd[307670]: time="2025-12-08T14:21:00.950999544+08:00" level=info msg="Loading containers: start." 12月 08 14:21:01 nvidia-desktop dockerd[307670]: time="2025-12-08T14:21:01.068395372+08:00" level=info msg="Default bridge (docker0) is assigned with an IP> 12月 08 14:21:01 nvidia-desktop dockerd[307670]: time="2025-12-08T14:21:01.119938208+08:00" level=info msg="Loading containers: done." 12月 08 14:21:01 nvidia-desktop dockerd[307670]: time="2025-12-08T14:21:01.136753856+08:00" level=info msg="Docker daemon" commit="26.1.3-0ubuntu1~20.04.1"> 12月 08 14:21:01 nvidia-desktop dockerd[307670]: time="2025-12-08T14:21:01.136876237+08:00" level=info msg="Daemon has completed initialization" 12月 08 14:21:01 nvidia-desktop dockerd[307670]: time="2025-12-08T14:21:01.175939143+08:00" level=info msg="API listen on /run/docker.sock" 12月 08 14:21:01 nvidia-desktop systemd[1]: Started Docker Application Container Engine. ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ...skipping... ~ Unit cri-dockerd.service could not be found. ● docker.service - Docker Application Container Engine Loaded: loaded (/lib/systemd/system/docker.service; enabled; vendor preset: enabled) Active: active (running) since Mon 2025-12-08 14:21:01 CST; 10s ago TriggeredBy: ● docker.socket Docs: https://docs.docker.com Main PID: 307670 (dockerd) Tasks: 12 Memory: 32.0M CGroup: /system.slice/docker.service └─307670 /usr/bin/dockerd -H fd:// --containerd=/run/containerd/containerd.sock 12月 08 14:21:00 nvidia-desktop dockerd[307670]: time="2025-12-08T14:21:00.905384514+08:00" level=info msg="Starting up" 12月 08 14:21:00 nvidia-desktop dockerd[307670]: time="2025-12-08T14:21:00.907450939+08:00" level=info msg="detected 127.0.0.53 nameserver, assuming system> 12月 08 14:21:00 nvidia-desktop dockerd[307670]: time="2025-12-08T14:21:00.933499466+08:00" level=info msg="[graphdriver] trying configured driver: overlay> 12月 08 14:21:00 nvidia-desktop dockerd[307670]: time="2025-12-08T14:21:00.950999544+08:00" level=info msg="Loading containers: start." 12月 08 14:21:01 nvidia-desktop dockerd[307670]: time="2025-12-08T14:21:01.068395372+08:00" level=info msg="Default bridge (docker0) is assigned with an IP> 12月 08 14:21:01 nvidia-desktop dockerd[307670]: time="2025-12-08T14:21:01.119938208+08:00" level=info msg="Loading containers: done." 12月 08 14:21:01 nvidia-desktop dockerd[307670]: time="2025-12-08T14:21:01.136753856+08:00" level=info msg="Docker daemon" commit="26.1.3-0ubuntu1~20.04.1"> 12月 08 14:21:01 nvidia-desktop dockerd[307670]: time="2025-12-08T14:21:01.136876237+08:00" level=info msg="Daemon has completed initialization" 12月 08 14:21:01 nvidia-desktop dockerd[307670]: time="2025-12-08T14:21:01.175939143+08:00" level=info msg="API listen on /run/docker.sock" 12月 08 14:21:01 nvidia-desktop systemd[1]: Started Docker Application Container Engine. ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ! command -v cri-dockerd &> /dev/null; then wget https://github.com/Mirantis/cri-dockerd/releases/download/v0.3.4/cri-dockerd_0.3.4.3-0.ubuntu-jammy_amd64.deb sudo dpkg -i cri-dockerd_0.3.4.3-0.ubuntu-jammy_amd64.deb fi # 重启容器运行时 sudo systemctl restart docker cri-dockerd /bin/bash: -c: line 0: syntax error near unexpected token `then' /bin/bash: -c: line 0: ` command -v cri-dockerd &> /dev/null; then' !done (press RETURN) ...skipping... ~ Unit cri-dockerd.service could not be found. ● docker.service - Docker Application Container Engine Loaded: loaded (/lib/systemd/system/docker.service; enabled; vendor preset: enabled) Active: active (running) since Mon 2025-12-08 14:21:01 CST; 10s ago TriggeredBy: ● docker.socket Docs: https://docs.docker.com Main PID: 307670 (dockerd) Tasks: 12 Memory: 32.0M CGroup: /system.slice/docker.service └─307670 /usr/bin/dockerd -H fd:// --containerd=/run/containerd/containerd.sock 12月 08 14:21:00 nvidia-desktop dockerd[307670]: time="2025-12-08T14:21:00.905384514+08:00" level=info msg="Starting up" 12月 08 14:21:00 nvidia-desktop dockerd[307670]: time="2025-12-08T14:21:00.907450939+08:00" level=info msg="detected 127.0.0.53 nameserver, assuming system> 12月 08 14:21:00 nvidia-desktop dockerd[307670]: time="2025-12-08T14:21:00.933499466+08:00" level=info msg="[graphdriver] trying configured driver: overlay> 12月 08 14:21:00 nvidia-desktop dockerd[307670]: time="2025-12-08T14:21:00.950999544+08:00" level=info msg="Loading containers: start." 12月 08 14:21:01 nvidia-desktop dockerd[307670]: time="2025-12-08T14:21:01.068395372+08:00" level=info msg="Default bridge (docker0) is assigned with an IP> 12月 08 14:21:01 nvidia-desktop dockerd[307670]: time="2025-12-08T14:21:01.119938208+08:00" level=info msg="Loading containers: done." 12月 08 14:21:01 nvidia-desktop dockerd[307670]: time="2025-12-08T14:21:01.136753856+08:00" level=info msg="Docker daemon" commit="26.1.3-0ubuntu1~20.04.1"> 12月 08 14:21:01 nvidia-desktop dockerd[307670]: time="2025-12-08T14:21:01.136876237+08:00" level=info msg="Daemon has completed initialization" 12月 08 14:21:01 nvidia-desktop dockerd[307670]: time="2025-12-08T14:21:01.175939143+08:00" level=info msg="API listen on /run/docker.sock" 12月 08 14:21:01 nvidia-desktop systemd[1]: Started Docker Application Container Engine. ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ...skipping... SUMMARY OF LESS COMMANDS Commands marked with * may be preceded by a number, N. Notes in parentheses indicate the behavior if N is given. A key preceded by a caret indicates the Ctrl key; thus ^K is ctrl-K. h H Display this help. q :q Q :Q ZZ Exit. --------------------------------------------------------------------------- MOVING e ^E j ^N CR * Forward one line (or N lines). y ^Y k ^K ^P * Backward one line (or N lines). f ^F ^V SPACE * Forward one window (or N lines). b ^B ESC-v * Backward one window (or N lines). z * Forward one window (and set window to N). w * Backward one window (and set window to N). ESC-SPACE * Forward one window, but don't stop at end-of-file. d ^D * Forward one half-window (and set half-window to N). u ^U * Backward one half-window (and set half-window to N). ESC-) RightArrow * Right one half screen width (or N positions). ESC-( LeftArrow * Left one half screen width (or N positions). ESC-} ^RightArrow Right to last column displayed. ESC-{ ^LeftArrow Left to first column. F Forward forever; like "tail -f". ESC-F Like F but stop when search pattern is found. r ^R ^L Repaint screen. R Repaint screen, discarding buffered input. --------------------------------------------------- Default "window" is the screen height. Default "half-window" is half of the screen height. --------------------------------------------------------------------------- SEARCHING /pattern * Search forward for (N-th) matching line. ?pattern * Search backward for (N-th) matching line. n * Repeat previous search (for N-th occurrence). N * Repeat previous search in reverse direction. ESC-n * Repeat previous search, spanning files. ESC-N * Repeat previous search, reverse dir. & spanning files. ESC-u Undo (toggle) search highlighting. &pattern * Display only matching lines --------------------------------------------------- A search pattern may begin with one or more of: ^N or ! Search for NON-matching lines. ^E or * Search multiple files (pass thru END OF FILE). ^F or @ Start search at FIRST file (for /) or last file (for ?). ^K Highlight matches, but don't move (KEEP position). ^R Don't use REGULAR EXPRESSIONS. --------------------------------------------------------------------------- JUMPING g < ESC-< * Go to first line in file (or line N). G > ESC-> * Go to last line in file (or line N). p % * Go to beginning of file (or N percent into file). t * Go to the (N-th) next tag. T * Go to the (N-th) previous tag. { ( [ * Find close bracket } ) ]. } ) ] * Find open bracket { ( [. ESC-^F <c1> <c2> * Find close bracket <c2>. ESC-^B <c1> <c2> * Find open bracket <c1> --------------------------------------------------- Each "find close bracket" command goes forward to the close bracket matching the (N-th) open bracket in the top line. Each "find open bracket" command goes backward to the open bracket matching the (N-th) close bracket in the bottom line. m<letter> Mark the current top line with <letter>. M<letter> Mark the current bottom line with <letter>. '<letter> Go to a previously marked position. '' Go to the previous position. ^X^X Same as '. ESC-M<letter> Clear a mark. --------------------------------------------------- A mark is any upper-case or lower-case letter. Certain marks are predefined: ^ means beginning of the file $ means end of the file --------------------------------------------------------------------------- CHANGING FILES :e [file] Examine a new file. ^X^V Same as :e. :n * Examine the (N-th) next file from the command line. :p * Examine the (N-th) previous file from the command line. :x * Examine the first (or N-th) file from the command line. :d Delete the current file from the command line list. = ^G :f Print current file name. --------------------------------------------------------------------------- MISCELLANEOUS COMMANDS -<flag> Toggle a command line option [see OPTIONS below]. --<name> Toggle a command line option, by name. _<flag> Display the setting of a command line option. __<name> Display the setting of an option, by name. +cmd Execute the less cmd each time a new file is examined. !command Execute the shell command with $SHELL. |Xcommand Pipe file between current pos & mark X to shell command. s file Save input to a file. v Edit the current file with $VISUAL or $EDITOR. V Print version number of "less". --------------------------------------------------------------------------- OPTIONS Most options may be changed either on the command line, or from within less by using the - or -- command. Options may be given in one of two forms: either a single character preceded by a -, or a name preceded by --. -? ........ --help Display help (from command line). -a ........ --search-skip-screen Search skips current screen. -A ........ --SEARCH-SKIP-SCREEN Search starts just after target line. -b [N] .... --buffers=[N] Number of buffers. -B ........ --auto-buffers Don't automatically allocate buffers for pipes. -c ........ --clear-screen Repaint by clearing rather than scrolling. -d ........ --dumb Dumb terminal. -D [xn.n] . --color=xn.n Set screen colors. (MS-DOS only) -e -E .... --quit-at-eof --QUIT-AT-EOF Quit at end of file. -f ........ --force Force open non-regular files. -F ........ --quit-if-one-screen Quit if entire file fits on first screen. -g ........ --hilite-search Highlight only last match for searches. -G ........ --HILITE-SEARCH Don't highlight any matches for searches. -h [N] .... --max-back-scroll=[N] Backward scroll limit. -i ........ --ignore-case Ignore case in searches that do not contain uppercase. -I ........ --IGNORE-CASE Ignore case in all searches. -j [N] .... --jump-target=[N] Screen position of target lines. -J ........ --status-column Display a status column at left edge of screen. -k [file] . --lesskey-file=[file] Use a lesskey file. -K ........ --quit-on-intr Exit less in response to ctrl-C. -L ........ --no-lessopen Ignore the LESSOPEN environment variable. -m -M .... --long-prompt --LONG-PROMPT Set prompt style. -n -N .... --line-numbers --LINE-NUMBERS Don't use line numbers. -o [file] . --log-file=[file] Copy to log file (standard input only). -O [file] . --LOG-FILE=[file] Copy to log file (unconditionally overwrite). [2]+ Stopped sudo systemctl status docker cri-dockerd nvidia@nvidia-desktop:~$ # 检查Docker的cgroup驱动 nvidia@nvidia-desktop:~$ docker info | grep -i cgroup Cgroup Driver: systemd Cgroup Version: 1 nvidia@nvidia-desktop:~$ nvidia@nvidia-desktop:~$ # 如果输出是`cgroupfs`,需要改为systemd(与kubelet默认一致) nvidia@nvidia-desktop:~$ sudo tee /etc/docker/daemon.json <<EOF > { > "exec-opts": ["native.cgroupdriver=systemd"] > } > EOF { "exec-opts": ["native.cgroupdriver=systemd"] } nvidia@nvidia-desktop:~$ nvidia@nvidia-desktop:~$ # 应用配置并重启 nvidia@nvidia-desktop:~$ sudo systemctl restart docker nvidia@nvidia-desktop:~$ sudo kubeadm join 192.168.255.178:6443 \ > --token 7kaxfs.m1xlw2b4lloj20h5 \ > --discovery-token-ca-cert-hash sha256:da23339b60f174e254da99411e5799c83e2cc2e103e65dfffececca06ca8d366 \ > --cri-socket unix:///var/run/cri-dockerd.sock \ > --v=5 # 启用详细日志 I1208 14:21:46.917600 313253 join.go:412] [preflight] found NodeName empty; using OS hostname as NodeName [preflight] Running pre-flight checks I1208 14:21:46.917833 313253 preflight.go:93] [preflight] Running general checks I1208 14:21:46.921054 313253 checks.go:280] validating the existence of file /etc/kubernetes/kubelet.conf I1208 14:21:46.921089 313253 checks.go:280] validating the existence of file /etc/kubernetes/bootstrap-kubelet.conf I1208 14:21:46.921403 313253 checks.go:104] validating the container runtime I1208 14:21:46.954045 313253 checks.go:639] validating whether swap is enabled or not [WARNING Swap]: swap is enabled; production deployments should disable swap unless testing the NodeSwap feature gate of the kubelet I1208 14:21:46.954320 313253 checks.go:370] validating the presence of executable crictl I1208 14:21:46.954383 313253 checks.go:370] validating the presence of executable conntrack I1208 14:21:46.954417 313253 checks.go:370] validating the presence of executable ip I1208 14:21:46.954460 313253 checks.go:370] validating the presence of executable iptables I1208 14:21:46.954497 313253 checks.go:370] validating the presence of executable mount I1208 14:21:46.954595 313253 checks.go:370] validating the presence of executable nsenter I1208 14:21:46.954641 313253 checks.go:370] validating the presence of executable ethtool I1208 14:21:46.954669 313253 checks.go:370] validating the presence of executable tc I1208 14:21:46.954692 313253 checks.go:370] validating the presence of executable touch I1208 14:21:46.954747 313253 checks.go:516] running all checks I1208 14:21:46.965096 313253 checks.go:401] checking whether the given node name is valid and reachable using net.LookupHost I1208 14:21:46.965391 313253 checks.go:605] validating kubelet version I1208 14:21:47.033262 313253 checks.go:130] validating if the "kubelet" service is enabled and active I1208 14:21:47.049052 313253 checks.go:203] validating availability of port 10250 I1208 14:21:47.049411 313253 checks.go:280] validating the existence of file /etc/kubernetes/pki/ca.crt I1208 14:21:47.049542 313253 checks.go:430] validating if the connectivity type is via proxy or direct I1208 14:21:47.049633 313253 checks.go:329] validating the contents of file /proc/sys/net/bridge/bridge-nf-call-iptables I1208 14:21:47.049729 313253 checks.go:329] validating the contents of file /proc/sys/net/ipv4/ip_forward I1208 14:21:47.049780 313253 join.go:529] [preflight] Discovering cluster-info I1208 14:21:47.049822 313253 token.go:80] [discovery] Created cluster-info discovery client, requesting info from "192.168.255.178:6443" I1208 14:21:47.088223 313253 token.go:118] [discovery] Requesting info from "192.168.255.178:6443" again to validate TLS against the pinned public key I1208 14:21:47.124104 313253 token.go:135] [discovery] Cluster info signature and contents are valid and TLS certificate validates against pinned roots, will use API Server "192.168.255.178:6443" I1208 14:21:47.124143 313253 discovery.go:52] [discovery] Using provided TLSBootstrapToken as authentication credentials for the join process I1208 14:21:47.124173 313253 join.go:543] [preflight] Fetching init configuration I1208 14:21:47.124187 313253 join.go:589] [preflight] Retrieving KubeConfig objects [preflight] Reading configuration from the cluster... [preflight] FYI: You can look at this config file with 'kubectl -n kube-system get cm kubeadm-config -o yaml' I1208 14:21:47.151294 313253 kubelet.go:74] attempting to download the KubeletConfiguration from ConfigMap "kubelet-config" I1208 14:21:47.166584 313253 interface.go:432] Looking for default routes with IPv4 addresses I1208 14:21:47.166620 313253 interface.go:437] Default route transits interface "wlan0" I1208 14:21:47.167020 313253 interface.go:209] Interface wlan0 is up I1208 14:21:47.167131 313253 interface.go:257] Interface "wlan0" has 4 addresses :[192.168.255.72/24 2409:893d:45c:b5a1:1670:c8e4:2898:1e27/64 2409:893d:45c:b5a1:5f51:491e:9698:9815/64 fe80::417c:e3c1:2dd2:d8db/64]. I1208 14:21:47.167171 313253 interface.go:224] Checking addr 192.168.255.72/24. I1208 14:21:47.167190 313253 interface.go:231] IP found 192.168.255.72 I1208 14:21:47.167208 313253 interface.go:263] Found valid IPv4 address 192.168.255.72 for interface "wlan0". I1208 14:21:47.167218 313253 interface.go:443] Found active IP 192.168.255.72 I1208 14:21:47.172577 313253 preflight.go:104] [preflight] Running configuration dependant checks I1208 14:21:47.172634 313253 controlplaneprepare.go:225] [download-certs] Skipping certs download I1208 14:21:47.172665 313253 kubelet.go:121] [kubelet-start] writing bootstrap kubelet config file at /etc/kubernetes/bootstrap-kubelet.conf I1208 14:21:47.174216 313253 kubelet.go:136] [kubelet-start] writing CA certificate at /etc/kubernetes/pki/ca.crt I1208 14:21:47.175619 313253 kubelet.go:157] [kubelet-start] Checking for an existing Node in the cluster with name "nvidia-desktop" and status "Ready" I1208 14:21:47.186418 313253 kubelet.go:172] [kubelet-start] Stopping the kubelet [kubelet-start] Writing kubelet configuration to file "/var/lib/kubelet/config.yaml" [kubelet-start] Writing kubelet environment file with flags to file "/var/lib/kubelet/kubeadm-flags.env" [kubelet-start] Starting the kubelet [kubelet-start] Waiting for the kubelet to perform the TLS Bootstrap... [kubelet-check] Initial timeout of 40s passed. [kubelet-check] It seems like the kubelet isn't running or healthy. [kubelet-check] The HTTP call equal to 'curl -sSL http://localhost:10248/healthz' failed with error: Get "http://localhost:10248/healthz": dial tcp 127.0.0.1:10248: connect: connection refused. [kubelet-check] It seems like the kubelet isn't running or healthy. [kubelet-check] The HTTP call equal to 'curl -sSL http://localhost:10248/healthz' failed with error: Get "http://localhost:10248/healthz": dial tcp 127.0.0.1:10248: connect: connection refused. [kubelet-check] It seems like the kubelet isn't running or healthy. [kubelet-check] The HTTP call equal to 'curl -sSL http://localhost:10248/healthz' failed with error: Get "http://localhost:10248/healthz": dial tcp 127.0.0.1:10248: connect: connection refused. [kubelet-check] It seems like the kubelet isn't running or healthy. [kubelet-check] The HTTP call equal to 'curl -sSL http://localhost:10248/healthz' failed with error: Get "http://localhost:10248/healthz": dial tcp 127.0.0.1:10248: connect: connection refused.
最新发布
12-09
ubuntu@VM-0-6-ubuntu:~$ curl -v http://127.0.0.1:8080/AI-rotator.html * Trying 127.0.0.1:8080... * Connected to 127.0.0.1 (127.0.0.1) port 8080 > GET /AI-rotator.html HTTP/1.1 > Host: 127.0.0.1:8080 > User-Agent: curl/8.5.0 > Accept: */* > < HTTP/1.1 200 OK < Server: nginx/1.29.2 < Date: Thu, 27 Nov 2025 07:58:37 GMT < Content-Type: text/html < Content-Length: 18876 < Last-Modified: Fri, 07 Nov 2025 00:58:21 GMT < Connection: keep-alive < Vary: Accept-Encoding < ETag: "690d442d-49bc" < Content-Security-Policy: frame-ancestors *; script-src 'self' 'unsafe-inline'; style-src 'self' 'unsafe-inline'; img-src 'self' data: http: https:; font-src 'self'; object-src 'none'; < Accept-Ranges: bytes < <!DOCTYPE html> <html lang="zh"> <head> <meta charset="UTF-8"> <meta http-equiv="Content-Type" content="text/html; charset=utf-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <title>AI分播机轮播系统</title> <style> * { margin: 0; padding: 0; box-sizing: border-box; font-family: 'Segoe UI', 'PingFang SC', 'Microsoft YaHei', sans-serif; } body { background: linear-gradient(135deg, #0f172a 0%, #1e293b 100%); color: #e2e8f0; min-height: 100vh; overflow-x: hidden; } .container { max-width: 3000px; margin: 0 auto; padding: 0.1rem; } header { text-align: center; margin-bottom: 0rem; padding: 0rem; } h1 { font-size: 0rem; font-weight: 300; margin-bottom: 0rem; background: linear-gradient(90deg, #818cf8 0%, #60a5fa 100%); -webkit-text-fill-color: transparent; letter-spacing: 1px; } .subtitle { color: #94a3b8; font-size: 0rem; max-width: 600px; margin: 0 auto; font-weight: 300; } .dashboard-container { position: relative; width: 100%; height: 94vh; border-radius: 16px; overflow: hidden; box-shadow: 0 25px 50px -12px rgba(0, 0, 0, 0.5); margin: 0 auto; } .dashboard-slide { position: absolute; top: 0; left: 0; width: 100%; height: 100%; opacity: 0; transition: opacity 1.2s ease; background: #1e293b; border-radius: 16px; display: flex; flex-direction: column; } .dashboard-slide.active { opacity: 1; z-index: 10; } .dashboard-header { padding: 1rem 1.5rem; background: rgba(30, 41, 59, 0.9); border-bottom: 1px solid rgba(255, 255, 255, 0.08); display: flex; justify-content: space-between; align-items: center; } .dashboard-title { font-size: 1.4rem; font-weight: 400; color: #e2e8f0; letter-spacing: 0.5px; } .datetime-display { font-size: 1.1rem; color: #cbd5e1; text-align: right; min-width: 280px; } .date-part { font-weight: 500; margin-right: 10px; } .time-part { font-weight: 600; color: #60a5fa; font-family: 'Courier New', monospace; } .dashboard-content { flex: 1; overflow: hidden; background: #0f172a; position: relative; } .dashboard-iframe { width: 100%; height: 100%; border: none; } .indicators { display: flex; justify-content: center; gap: 10px; margin-top: 0.5rem; } .indicator { width: 10px; height: 10px; border-radius: 50%; background: rgba(255, 255, 255, 0.15); cursor: default; transition: all 0.4s ease; } .indicator.active { background: #60a5fa; transform: scale(1.4); box-shadow: 0 0 12px rgba(96, 165, 250, 0.6); } footer { text-align: center; margin-top: 3rem; padding: 2rem; color: #64748b; font-size: 0.9rem; border-top: 1px solid rgba(255, 255, 255, 0.05); } @media (max-width: 1024px) { .dashboard-container { height: 95vh; } h1 { font-size: 0rem; } .dashboard-header { padding: 0.8rem 1.2rem; } .dashboard-title { font-size: 1.2rem; } .datetime-display { font-size: 1rem; min-width: 240px; } } @media (max-width: 768px) { .container { padding: 1.5rem; } h1 { font-size: 2rem; } .dashboard-container { height: 55vh; border-radius: 12px; } .dashboard-header { padding: 0.6rem 1rem; flex-direction: column; gap: 0.5rem; } .dashboard-title { font-size: 1.1rem; text-align: center; } .datetime-display { font-size: 0.9rem; text-align: center; min-width: auto; } } /* 加载动画 */ @keyframes fadeIn { from { opacity: 0; } to { opacity: 1; } } .dashboard-slide.active { animation: fadeIn 1.2s ease; } /* 状态指示器样式 */ .indicator[data-status="preloading"] { background: #fbbf24 !important; /* 黄色-加载中 */ animation: pulse 1.5s infinite; } .indicator[data-status="preloaded"] { background: #10b981 !important; /* 绿色-预加载完成 */ } .indicator[data-status="error"] { background: #ef4444 !important; /* 红色-加载失败 */ } @keyframes pulse { 0%, 100% { opacity: 1; } 50% { opacity: 0.5; } } </style> </head> <body> <div class="container"> <header> <h1>数据可视化平台</h1> <p class="subtitle">实时业务监控与数据分析</p> </header> <div class="dashboard-container" id="dashboard-container"> <!-- 看板将通过JS动态添加 --> </div> <div class="indicators" id="indicators"> <!-- 指示器将通过JS动态添加 --> </div> </div> <script> // 看板数据 const dashboardUrls = [ { url: "/superset/dashboard/2/?standalone=3&show_filters=0", title: "AI分播机作业实况" }, { url: "/superset/dashboard/2/?standalone=3&show_filters=0", title: "AI分播机作业实况" } ]; // 配置参数 const rotationInterval = 15000; // 60秒切换 const preloadTime = 15000; // 在切换前50秒开始预加载 const loadTimeout = 15000; // 30秒加载超时 let currentIndex = 0; let timerId = null; let preloadTimerId = null; let datetimeTimerId = null; // 初始化看板 function initDashboards() { const dashboardContainer = document.getElementById('dashboard-container'); const indicatorsContainer = document.getElementById('indicators'); dashboardUrls.forEach((dashboard, index) => { // 创建看板幻灯片 const slide = document.createElement('div'); slide.className = `dashboard-slide ${index === 0 ? 'active' : ''}`; slide.innerHTML = ` <div class="dashboard-header"> <div class="dashboard-title">${dashboard.title}</div> <div class="datetime-display"> <span class="date-part" id="date-display-${index}">${getFormattedDate()}</span> <span class="time-part" id="time-display-${index}">${getFormattedTime()}</span> </div> </div> <div class="dashboard-content"> ${index === 0 ? `<iframe class="dashboard-iframe" src="${dashboard.url}" frameborder="0" data-loaded="true"></iframe>` : `<div class="preload-placeholder" style="display: none;"></div>` } </div> `; dashboardContainer.appendChild(slide); // 创建指示器 const indicator = document.createElement('div'); indicator.className = `indicator ${index === 0 ? 'active' : ''}`; indicator.setAttribute('data-status', index === 0 ? 'loaded' : 'unloaded'); indicatorsContainer.appendChild(indicator); }); } // 获取格式化日期 function getFormattedDate() { const now = new Date(); const year = now.getFullYear(); const month = String(now.getMonth() + 1).padStart(2, '0'); const day = String(now.getDate()).padStart(2, '0'); const weekdays = ['日', '一', '二', '三', '四', '五', '六']; const weekday = weekdays[now.getDay()]; return `${year}-${month}-${day} 周${weekday}`; } // 获取格式化时间 function getFormattedTime() { const now = new Date(); const hours = String(now.getHours()).padStart(2, '0'); const minutes = String(now.getMinutes()).padStart(2, '0'); const seconds = String(now.getSeconds()).padStart(2, '0'); return `${hours}:${minutes}:${seconds}`; } // 更新所有看板的日期时间显示 function updateAllDateTimeDisplays() { const date = getFormattedDate(); const time = getFormattedTime(); // 更新所有看板的日期时间显示 dashboardUrls.forEach((_, index) => { const dateElement = document.getElementById(`date-display-${index}`); const timeElement = document.getElementById(`time-display-${index}`); if (dateElement) dateElement.textContent = date; if (timeElement) timeElement.textContent = time; }); } // 启动日期时间更新 function startDateTimeUpdate() { // 立即更新一次 updateAllDateTimeDisplays(); // 每秒更新一次 datetimeTimerId = setInterval(updateAllDateTimeDisplays, 1000); } // 预加载指定看板 function preloadDashboard(index) { const slide = document.querySelectorAll('.dashboard-slide')[index]; const placeholder = slide.querySelector('.preload-placeholder'); const indicator = document.querySelectorAll('.indicator')[index]; const currentStatus = indicator.getAttribute('data-status'); // 如果已经在加载或已加载,则跳过 if (currentStatus === 'preloaded' || currentStatus === 'loaded' || currentStatus === 'preloading') { return; } // 更新状态为预加载中 indicator.setAttribute('data-status', 'preloading'); indicator.style.background = '#fbbf24'; // 创建iframe const iframe = document.createElement('iframe'); iframe.className = 'dashboard-iframe'; iframe.style.display = 'none'; iframe.src = dashboardUrls[index].url; iframe.setAttribute('data-index', index); // 超时处理 const timeoutId = setTimeout(() => { onIframeLoadComplete(index, 'timeout'); }, loadTimeout); // 尝试使用 onload 事件 iframe.onload = function() { clearTimeout(timeoutId); onIframeLoadComplete(index, 'success'); }; iframe.onerror = function() { clearTimeout(timeoutId); onIframeLoadComplete(index, 'error'); }; // 移除placeholder并添加iframe if (placeholder) { placeholder.remove(); } slide.querySelector('.dashboard-content').appendChild(iframe); // 备用检测方案 startIframeContentCheck(index, iframe, timeoutId); } // iframe 加载完成处理 function onIframeLoadComplete(index, status) { const indicator = document.querySelectorAll('.indicator')[index]; if (status === 'success') { const iframe = document.querySelectorAll('.dashboard-slide')[index].querySelector('.dashboard-iframe'); if (iframe) { iframe.style.display = 'block'; iframe.setAttribute('data-loaded', 'true'); } indicator.setAttribute('data-status', 'preloaded'); indicator.style.background = '#10b981'; // 绿色-预加载完成 } else { indicator.setAttribute('data-status', 'error'); indicator.style.background = '#ef4444'; // 红色-加载失败 } } // 切换到指定看板 function goToDashboard(index) { const slides = document.querySelectorAll('.dashboard-slide'); const indicators = document.querySelectorAll('.indicator'); // 隐藏所有看板 slides.forEach(slide => slide.classList.remove('active')); // 重置上一个看板的状态(如果不是预加载的下一个) const prevIndex = currentIndex; if (prevIndex !== index) { const prevIndicator = indicators[prevIndex]; if (prevIndicator.getAttribute('data-status') === 'loaded') { prevIndicator.setAttribute('data-status', 'unloaded'); prevIndicator.style.background = 'rgba(255, 255, 255, 0.15)'; // 卸载iframe以释放资源 const prevIframe = slides[prevIndex].querySelector('.dashboard-iframe'); if (prevIframe) { prevIframe.src = 'about:blank'; prevIframe.remove(); // 重新添加placeholder const contentDiv = slides[prevIndex].querySelector('.dashboard-content'); contentDiv.innerHTML = '<div class="preload-placeholder" style="display: none;"></div>'; } } } // 显示新的看板 slides[index].classList.add('active'); // 更新当前看板状态 const currentIndicator = indicators[index]; if (currentIndicator.getAttribute('data-status') === 'preloaded') { currentIndicator.setAttribute('data-status', 'loaded'); // 保持绿色,表示已加载并正在显示 } // 更新当前索引 currentIndex = index; // 更新指示器激活状态 indicators.forEach((indicator, i) => { indicator.classList.toggle('active', i === index); }); // 设置下一次预加载定时器(预加载下下一个看板) setupPreloadTimer(); } // 设置预加载定时器 function setupPreloadTimer() { if (preloadTimerId) clearTimeout(preloadTimerId); // 计算下一个要预加载的看板索引(当前的下一个) const nextIndex = (currentIndex + 1) % dashboardUrls.length; preloadTimerId = setTimeout(() => { // 确保不是当前显示的看板 if (nextIndex !== currentIndex) { preloadDashboard(nextIndex); } }, rotationInterval - preloadTime); } // 切换到下一个看板 function nextDashboard() { const nextIndex = (currentIndex + 1) % dashboardUrls.length; goToDashboard(nextIndex); } // 启动轮播 function startRotation() { if (timerId) clearInterval(timerId); timerId = setInterval(nextDashboard, rotationInterval); // 初始预加载设置(预加载第二个看板) if (dashboardUrls.length > 1) { preloadTimerId = setTimeout(() => { preloadDashboard(1); // 预加载第二个看板 }, rotationInterval - preloadTime); } } // 初始化 function init() { initDashboards(); startRotation(); startDateTimeUpdate(); // 启动日期时间更新 } // 页面加载完成后初始化 window.addEventListener('load', init); // 清理定时器 window.addEventListener('beforeunload', function() { if (timerId) clearInterval(timerId); if (preloadTimerId) clearTimeout(preloadTimerId); if (datetimeTimerId) clearInterval(datetimeTimerId); }); // 备用检测方案函数(需要实现) function startIframeContentCheck(index, iframe, timeoutId) { // 这里可以添加iframe内容检测的逻辑 // 例如定期检查iframe的尺寸或内容加载状态 } </script> </body> * Connection #0 to host 127.0.0.1 left intact </html>ubuntu@VM-0-6-ubucurl -v http://127.0.0.1:8079/1:8079/ * Trying 127.0.0.1:8079... * connect to 127.0.0.1 port 8079 from 127.0.0.1 port 34808 failed: Connection refused * Failed to connect to 127.0.0.1 port 8079 after 0 ms: Couldn't connect to server * Closing connection curl: (7) Failed to connect to 127.0.0.1 port 8079 after 0 ms: Couldn't connect to server ubuntu@VM-0-6-ubuntu:~$ curl -v http://127.0.0.1:8088/superset * Trying 127.0.0.1:8088... * Connected to 127.0.0.1 (127.0.0.1) port 8088 > GET /superset HTTP/1.1 > Host: 127.0.0.1:8088 > User-Agent: curl/8.5.0 > Accept: */* > * Empty reply from server * Closing connection curl: (52) Empty reply from server ubuntu@VM-0-6-ubuntu:~$
11-28
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值