• [问题求助] archlinux-cn镜像已经17天没有同步了
    https://build.archlinuxcn.org/~imlonghao/status/从archlinxcn的镜像同步页面可以看到华为云已经够落后17天了,希望可以查一下怎么回事
  • [区域初赛赛题问题] (c++)Linux环境下build_and_run成功但提交失败
    这个是linux运行./build_and_run.sh的截图这个是运行失败的截图求求各位大佬了。。。。
  • [区域初赛赛题问题] Linux编译运行正常,上传显示选手程序编译失败——请求查看日志文件
    队名:theshy来了全答了不知道是否可以查看日志信息【截图信息】【日志信息】(可选,上传日志内容或者附件)
  • [问题求助] 【鲲鹏920麒麟linux V10 SP1】【gdb调试】gdb多线程调试,无法进入断点
    【功能模块】gdb调试【操作步骤&问题现象】1、gdb启动调试运行时,打印警告warning: Unable to find libthread_db matching inferior's thread library, thread debugging will not be available.2、应用起来后,之前设置的断点没有生效,无法进入预设的断点gdb升级版本到11.2也不能解决这个问题【截图信息】gdb --versionGNU gdb (GDB) 11.2Copyright (C) 2022 Free Software Foundation, Inc.License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>This is free software: you are free to change and redistribute it.There is NO WARRANTY, to the extent permitted by law.gcc --versiongcc (GCC) 7.3.0Copyright (C) 2017 Free Software Foundation, Inc.本程序是自由软件;请参看源代码的版权声明。本软件没有任何担保;包括没有适销性和某一专用目的下的适用性担保。【日志信息】(可选,上传日志内容或者附件)
  • [知识分享] 手绘流程图,教你WSL2与Docker容器无缝互相迁移
    本文分享自华为云社区《[WSL2与Docker容器,无缝互相迁移](https://bbs.huaweicloud.com/blogs/336923?utm_source=csdn&utm_medium=bbs-ex&utm_campaign=other&utm_content=content)》,作者: tsjsdbd 。 注:本文提到的WSL都是指WSL2 # WSL与Docker WSL非常像windows版的Docker,可以直接启动“容器”(故意加引号,下面有解释),并且在容器世界里面,可以执行各种Linux操作。像下面这样,是不是和Docker很像? ![image.png](https://bbs-img.huaweicloud.com/data/forums/attachment/forum/20223/18/1647585554674949844.png) ps:上面提到的“容器”,实际是安全容器(即:虚机),WSL2内部架构如下: ![image.png](https://bbs-img.huaweicloud.com/data/forums/attachment/forum/20223/18/1647585564854828044.png) 虽WSL和Docker很像,但是它对WSL镜像有要求,就是得从 MS的应用商店下载: ![image.png](https://bbs-img.huaweicloud.com/data/forums/attachment/forum/20223/18/1647585577906175553.png) 这个就稍显不那么方便,毕竟你可能已经有很多现成的Docker容器了,这里又得重新安装一遍。 我是Windows上有WSL,我的Linux开发机上有Docker,那我怎么在WSL里面跑Docker呢? # WSL运行Docker容器 常见的WSL里面运行Docker,是这样子的: ![image.png](https://bbs-img.huaweicloud.com/data/forums/attachment/forum/20223/18/1647585604288434740.png) 就是把WSL当做一台新的开发机,然后在WSL里面,安装Docker软件。 这样子,也能解决问题。就是稍微麻烦了一点点。那能不能WSL直接运行Docker镜像呢? 答案是可以的: 参考:https://docs.microsoft.com/en-us/windows/wsl/use-custom-distro 这种方法下,是类似这个样子的: ![image.png](https://bbs-img.huaweicloud.com/data/forums/attachment/forum/20223/18/1647585623047843147.png) 具体操作如下: 在Docker里面,将容器导出来 //查看正在运行的容器 docker ps //根据容器ID,导出镜像包 docker export $ContainerID > ./tsjsdbd.tar 然后再WSL里面,将Docker镜像导入: `wsl --import ` 示例 比如,我这里用Docker运行了一个busybox容器: `docker run -it busybox /bin/sh` 然后查询容器ID: docker ps CONTAINER ID IMAGE c1e9e8f77336 busybox 导出: `docker export c1e9e8f77336 > tsjsdbd_busybox.tar` 然后我把这个 镜像文件,拷贝到我的windows电脑上。 并在wsl里面导入: `wsl --import tsjsdbd_busybox ./busybox ./tsjsdbd_busybox.tar` 导入后查看: `wsl -l` 这时,我启动这个 busybox 镜像。 `wsl -d tsjsdbd_busybox` OK,这时我已经在WSL容器里面了,这是一个busybox的Docker容器镜像。 # Docker运行WSL镜像 从上面的操作可以看出来,WSL和Docker的镜像是相通的。所以WSL系统,也可以导出给Docker直接运行。类似这个样子: ![image.png](https://bbs-img.huaweicloud.com/data/forums/attachment/forum/20223/18/1647585786413801008.png) 具体操作如下: 先查看下当前跑了哪些wsl容器: wsl -l -v NAME STATE VERSION * Ubuntu-18.04 Stopped 2 tsjsdbd_busybox Running 2 导出指定的wsl镜像 `wsl --export tsjsdbd_busybox ./mybox.tar` 其中 “tsjsdbd_busybox” 就是你希望导给Docker运行的WSL容器(里面可能安装了一些你需要的软件)。导出的tar包,就可以看做是WSL镜像了(可以直接导入给Docker) 最后,在Docker里面,导入这个镜像: `docker import - mybox mybox.tar` 可以查询此镜像 `docker images |grep mybox` 并启动 `docker run -it mybox /bin/sh` # WSL镜像与Docker镜像 大体上,我给个示意: ![image.png](https://bbs-img.huaweicloud.com/data/forums/attachment/forum/20223/18/1647585837896401701.png) 所以WSL确实挺香的。 # WSL启动GUI界面 整体方案是利用 X11 Server,原理参考: 《Docker运行带UI界面的应用,并将它的界面投射到你的Windows电脑》 Docker运行带UI界面的应用,并将它的界面投射到你的Windows电脑-云社区-华为云 ![image.png](https://bbs-img.huaweicloud.com/data/forums/attachment/forum/20223/18/1647585857077652220.png) X11 Server,一般网上推荐 VcXsrv,我自己用下来,感觉 MobaXterm 更傻瓜一些。所以我都用 MobaXterm 的。 # 附:安装WSL # 1. 系统要求 Windows 10,版本 2004 以上。 比如我的是 20H2,是OK的。 点击:开始-设置-关于,查询自己的版本 # 2. 判断wsl2是否已有 打开 power shell,输入 `wsl -l -o` 如OK,则不用后续步骤了(说明你的windows版本已经比较高)。 不行,则手动执行后续步骤 # 3. 允许开发者模式 ![image.png](https://bbs-img.huaweicloud.com/data/forums/attachment/forum/20223/18/1647585931532148138.png) # 4. 启动WSL2功能 启用WSL2 `dism.exe /online /enable-feature /featurename:Microsoft-Windows-Subsystem-Linux /all /norestart` 启用虚拟机平台 `dism.exe /online /enable-feature /featurename:VirtualMachinePlatform /all /norestart` 启用Hyper-V `dism.exe /online /enable-feature /featurename:Microsoft-Hyper-V /all /norestart` 设置WSL2为默认 `wsl --set-default-version 2` # 5. 重启,安装wsl补丁 wsl_update_x64.msi 执行以上补丁包。 补丁包下载地址: https://wslstorestorage.blob.core.windows.net/wslblob/wsl_update_x64.msi # 附:高阶版 GPU,GUI界面 Windows版本高的(win10 21H2),可以在WSL2里面跑CUDA https://docs.microsoft.com/en-us/windows/ai/directml/gpu-cuda-in-wsl 再高一点(win11),可以原生支持带GUI界面的Linux程序。 https://docs.microsoft.com/en-us/windows/wsl/tutorials/gui-apps
  • [区域初赛赛题问题] c++linux下运行build.sh成功 但使用用CodeCraft_zip.sh打包提交后显示“选手程序编译失败”
    【功能模块】编译阶段【操作步骤&问题现象】1、线下编译,运行通过,输出也没问题2、提交线上显示程序运行失败最水工带人,hw70205226,C++ 2022-03-18 12:08:39【截图信息】【日志信息】(可选,上传日志内容或者附件)
  • [常见FAQ] 讨论:为什么本地编译运行OK,提交就不行?
    近期看到论坛里面问这个问题的比较多,一些同学总觉得,在我这里行,为什么上传就不行,有些委屈的感觉。在这里讨论一下这个事情。程序这如果出错,必然是有原因的。所以首先需有一个排错的思路,一个一个去否定。下面提一些思路来,大家也可以一起往里面补充。我认为,这个思路不仅仅对这次比赛有意义,对以后处理类似问题也是一个参考。首先,要统一一个观点:本地能跑过是一个最低要求,但不代表没问题,只是恰好没有发现而已。1、先排除环境问题,比如:1)使用编译环境与要求不一致,在本地能用的库、能用的函数,到了平台上不能用了,或者参数发生变化了。2)用了不允许的第三方库,自己环境可以,平台上没有。2、再排除打包问题。多打了一层、打错目录,判题程序调用时找不到。仔细阅读一下SDK的说明文档中的描述:https://bbs.huaweicloud.com/forum/thread-182328-1-1.html3、路径问题任务书中对于路径有明确说法,“/”符号开头,在Linux下就是根目录的意思。但有些人还是不理解,读错地方、写错地方。涉及到路径,还要考虑权限问题。windows上文件管理权限和Linux下是有差异的。读写文件要注意参数是否合适。4、字符集编码字符集编码比较复杂,什么UTF-8、GBK、ANSI之类的。编码的问题也会导致文件打不开。如果写Python的,类似问题应该见过:“utf-8‘ codec can‘t decode byte.....”建议用utf-8,避免其它问题。5、系统差异经常在windows和linux上协同工作的同学,dos2unix这个命令应该见过。有些文件不用这个转,windows下可工作的,到了Linux就是不行。还有Windows下换行\r\n和Linux\n的差异,我看群里讨论也有因这个出现问题的。这里还没涉及大小端的问题。如果考虑这个,那往往本地可工作的程序,换个平台有异常,这是从设计时就需要考虑的。看到群里还有人讨论,在win10和win11下表现不一样。那恰好证明,平台的差异是需要考虑的。还是建议:大家想办法准备一个干净的,与比赛环境说明指定程序版本相同的Linux环境,应该可以省些事。6、代码问题排除了周边问题,那接下来就是代码了。比如:1)现在给的小数据集,在大数据集情况下,内存使用是否没控制好,可能导致OOM?是否有内存泄漏?2)仅在一组小数据下,一些异常处理路径可能没有得到充分验证。数据变化,有些路径走到了,就出错。3)编码的一些边界条件没处理好。4)编码质量本身,看到过有数组越界的、有访问不存在的key的,有除0错误的。这些问题只通过一次简单验证通常是无法发现的。所以,只靠一组数据跑通,就认为程序无误,这肯定不合适的。同学们可以按照数据描述,自行构建一些数据,包括数据规模、数据特征、参数变化,来验证自己程序是否稳定。自验证本身就应该是开发的一部分7、以上是示例一下查错思路。不断思考下去,还可能有很多,各位同学也可以继续帮忙补齐。看到有同学说是几天提交了100多次(应该是借小号了),还是不行。如果没找到问题根因,想通过多次提交“闯”过去的做法不太可取。过了,也不知道为啥,下次不过,还是不知道为啥。目前来看,判题平台还没发现不正常的地方。所有问题都是有原因的。随着更多同学参与,每天编译、运行错误的有成千上万,随着时间往后可能更多。不可能给每个同学单独定位的。但会针对一些报错去抽查一下日志,然后归纳放在FAQ里面。所以,遇到类似问题,先参考FAQ仔细检查一下,FAQ会持续刷新。
  • [常见FAQ] c++linux下运行build.sh成功 但使用用CodeCraft_zip.sh打包提交后显示“选手程序编译失败”
    c++linux下运行build.sh成功  但使用用CodeCraft_zip.sh打包提交后显示“选手程序编译失败”提交的为 CodeCraft-2022.zip,未改过 build.sh  和 CMakeLists.txt
  • [区域初赛赛题问题] Linux环境下使用build_and_run.sh运行成功但是提交程序显示选手程序运行失败
    Linux环境下使用build_and_run.sh运行成功,并且使用CodeCraft_zip.sh打包成功,但是上传之后显示选手程序运行失败。队名小熊乐迪团队   时间2022-03-16 09:40:31
  • [区域初赛赛题问题] Linux环境下build_and_run成功但提交失败
     队伍名:成电六组团团霸霸 用户名:Yank-Ho 提交时间: 2022-03-15 21:41:55
  • [技术干货] KubeEdge环境搭建指导书 - CentOS 7.6
    目录-1 软件介绍 -2 环境配置 -3 系统配置 -3.1 关闭防火墙(可选) -3.2 修改SELINUX为disabled -3.3 配置本地yum源(可选) -3.4 配置hosts -3.5 配置ntp时间同步 -3.6 关闭swap分区 -3.7 设置路由 -4 软件安装 -4.1 Docker-ce安装 -4.2 Kubernetes组件安装 -4.3 准备Kubernetes相关镜像 -4.4 搭建集群 -4.5 配置cni网络插件 -4.6 配置flannel网络插件 -4.7 Golang环境搭建 -4.8 Mosquitto环境搭建 -5 软件运行 -5.1 云端KubeEdge源码编译 -5.2 边缘端KubeEdge源码编译 -5.3 部署 -6 功能验证 -6.1 运行nginx示例 -7 FAQ1 软件介绍KubeEdge 是一个开源的系统,可将本机容器化应用编排和管理扩展到边缘端设备。 它基于Kubernetes构建,为网络和应用程序提供核心基础架构支持,并在云端和边缘端部署应用,同步元数据。KubeEdge 还支持 MQTT 协议,允许开发人员编写客户逻辑,并在边缘端启用设备通信的资源约束。KubeEdge 包含云端和边缘端两部分。Master 云上部分CloudHub: CloudHub 是一个 Web Socket 服务端,负责监听云端的变化, 缓存并发送消息到 EdgeHub。EdgeController: EdgeController 是一个扩展的 Kubernetes 控制器,管理边缘节点和 Pods 的元数据确保数据能够传递到指定的边缘节点。DeviceController: DeviceController 是一个扩展的 Kubernetes 控制器,管理边缘设备,确保设备信息、设备状态的云边同步。边缘部分EdgeHub: EdgeHub 是一个 Web Socket 客户端,负责与边缘计算的云服务(例如 KubeEdge 架构图中的 Edge Controller)交互,包括同步云端资源更新、报告边缘主机和设备状态变化到云端等功能。Edged: Edged 是运行在边缘节点的代理,用于管理容器化的应用程序。EventBus: EventBus 是一个与 MQTT 服务器(mosquitto)交互的 MQTT 客户端,为其他组件提供订阅和发布功能。ServiceBus: ServiceBus是一个运行在边缘的HTTP客户端,接受来自云上服务的请求,与运行在边缘端的HTTP服务器交互,提供了云上服务通过HTTP协议访问边缘端HTTP服务器的能力。DeviceTwin: DeviceTwin 负责存储设备状态并将设备状态同步到云,它还为应用程序提供查询接口。MetaManager: MetaManager 是消息处理器,位于 Edged 和 Edgehub 之间,它负责向轻量级数据库(SQLite)存储/检索元数据2 环境配置角色配置主机名业务网络备注node-1172.168.50.20云端,master节点node-2172.168.50.22边缘段,edge节点 硬件平台服务器TaiShan 200 2280处理器2*KunPeng 920 4826内存16*32G 2666MHz系统盘1 * 1.2T SATA HDD数据盘1 * 960G SSD网络1 * GE(板载)  1 * 10GE(1822)  软件平台软件名称版本号安装方法备注CentOS7.6https://support.huawei.com/enterprise/zh/doc/EDOC1100088654/3e971c8d本文档安装过程选择的环境为“Server with GUI”,并附加了“Development Tools”。ntp4.6.2p5-29见3.5章节 Docker-ce19.03.7见4.1章节 kubernetes1.15.1见4.2章节 golang1.13.5见4.7章节 mosquitto1.5.8见4.8章节 3 系统配置3.1 关闭防火墙(可选)# 步骤 1 停止防火墙。 systemctl stop firewalld.service # 步骤 2 关闭防火墙。 systemctl disable firewalld.service3.2 修改SELINUX为disabled# 步骤 1 关闭防火墙。 sed -i 's/SELINUX=enforcing/SELINUX=disabled/g' /etc/sysconfig/selinux3.3 配置本地yum源(可选)若环境有外网条件,可不用配置本地源,直接用系统配置好的网上源或者自己添加网上源即可。步骤 1 配置源文件mv /etc/yum.repos.d/ /etc/yum.repos.d-bak mkdir /etc/yum.repos.d echo -e "[local]\nname=local\nbaseurl=file:///mnt\ngpgcheck=0\nenabled=1" > /etc/yum.repos.d/local.repo步骤 2 执行cat确认上一步操作写入成功,显示如下图cat /etc/yum.repos.d/local.repo步骤 3 挂载源镜像,将系统镜像通过KVM挂载mount /dev/cdrom /mnt3.4 配置hosts根据集群信息,配置所有节点的hosts。#步骤 1 配置hosts vi /etc/hosts 172.168.50.20 node-1 172.168.50.22 node-23.5 配置ntp时间同步# 步骤 1 安装ntp软件 yum install –y ntp ntpdate # 步骤 2 以node-1作为ntp服务器,其他节点自动与它同步,配置后conf内容如下: [root@ods1 ~]# cat /etc/ntp.conf restrict 127.0.0.1 restrict ::1 restrict 172.170.75.13 mask 255.255.255.0 server 127.127.1.0 fudge 127.127.1.0 stratum 8 # 步骤 3 其他的节点,配置conf如下 cat /etc/ntp.conf Server 172.168.50.20 # 步骤 4 启动ntpd自动同步服务,所有节点执行以下命令。 systemctl start ntpd systemctl enable ntpd # 步骤 5 配置完可先手动同步一次,node-2执行以下命令。 ntpdate 172.168.50.20 # 步骤 6 配置SSH无密钥登录,node-1执行。 ssh-keygen -t rsa ssh-copy-id node-2 # 步骤 7 配置SSH无密钥登录,node-2执行。 ssh-keygen -t rsa ssh-copy-id node-13.6 关闭swap分区所有节点均需执行以下步骤步骤 1 关闭swap分区,并备份/etc/fstabswapoff -a cp -p /etc/fstab /etc/fstab.bak$(date '+%Y%m%d%H%M%S')步骤 2 修改/etc/fstab,将swap分区的一行注释vi /etc/fstab注释后如下图:3.7 设置路由# 步骤 1 所有节点执行以下命令 modprobe br_netfilter sysctl -w net.bridge.bridge-nf-call-iptables=1 echo "net.bridge.bridge-nf-call-iptables=1" > /etc/sysctl.d/k8s.conf 4 软件安装4.1 Docker-ce安装所有节点都需要安装Docker,这里安装的是19.03.7。# 步骤 1 安装Docker 所需的软件包。 yum install -y yum-utils # 步骤 2 设置docker yum源。 yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo # 步骤 3 查看可安装的版本 # yum源有时候会更新,请根据实际情况选择具体的版本安装 yum list docker-ce --showduplicates | sort -r# 步骤 4 安装Docker-ce。 # 安装指定版本的方法是:软件名称-版本.软件后缀,如下: yum install docker-ce-3:19.03.7-3.el7.aarch64 # 步骤 5 启动Docker。 systemctl start docker # 步骤 6 Docker自启动 systemctl enable docker4.2 Kubernetes组件安装node-1节点安装相关组件,这里以kubeadm-1.15.1-0 kubelet-1.15.1-0 kubectl-1.15.1-0为例。# 步骤 1 配置Kubernetes源。 vi /etc/yum.repos.d/kubernetes.repo [kubernetes] name=Kubernetes Repo baseurl=https://mirrors.aliyun.com/kubernetes/yum/repos/kubernetes-el7-aarch64/ gpgcheck=0 gpgkey=https://mirrors.aliyun.com/kubernetes/yum/doc/yum-key.gpg enabled=1 # 步骤 2 组件安装。 yum install -y kubeadm-1.15.1-0 kubelet-1.15.1-0 kubectl-1.15.1-0 --disableexcludes=kubernetes # 步骤 3 使能Kubelet服务。 systemctl enable kubelet4.3 准备Kubernetes相关镜像node-1节点拉取kube-proxy、kube-scheduler、kube-controller-manager、kube-apiserver、etcd、coredns和pause镜像。步骤 1 下载Arm64镜像。docker pull docker.io/mirrorgooglecontainers/kube-apiserver-arm64:v1.15.1 docker pull docker.io/mirrorgooglecontainers/kube-controller-manager-arm64:v1.15.1 docker pull docker.io/mirrorgooglecontainers/kube-scheduler-arm64:v1.15.1 docker pull docker.io/mirrorgooglecontainers/kube-proxy-arm64:v1.15.1 docker pull docker.io/mirrorgooglecontainers/pause-arm64:3.1 docker pull docker.io/mirrorgooglecontainers/etcd-arm64:3.3.10 docker pull docker.io/coredns/coredns:1.3.1步骤 2 修改已下载的镜像标签。docker tag docker.io/mirrorgooglecontainers/kube-apiserver-arm64:v1.15.1 k8s.gcr.io/kube-apiserver:v1.15.1 docker tag docker.io/mirrorgooglecontainers/kube-controller-manager-arm64:v1.15.1 k8s.gcr.io/kube-controller-manager:v1.15.1 docker tag docker.io/mirrorgooglecontainers/kube-scheduler-arm64:v1.15.1 k8s.gcr.io/kube-scheduler:v1.15.1 docker tag docker.io/mirrorgooglecontainers/kube-proxy-arm64:v1.15.1 k8s.gcr.io/kube-proxy:v1.15.1 docker tag docker.io/mirrorgooglecontainers/pause-arm64:3.1 k8s.gcr.io/pause:3.1 docker tag docker.io/mirrorgooglecontainers/etcd-arm64:3.3.10 k8s.gcr.io/etcd:3.3.10 docker tag docker.io/coredns/coredns:1.3.1 k8s.gcr.io/coredns:1.3.1步骤 3 检查镜像。docker images4.4 搭建集群步骤 1 主节点初始化集群使用flannel网络,必须指定CIDR。记录work加入命令。[root@ods1 ~]# kubeadm init --pod-network-cidr=10.244.0.0/16 --kubernetes-version=1.15.1步骤 2 node-1节点配置kubectlnode-1节点使用kubectl管理集群mkdir -p $HOME/.kube cp -i /etc/kubernetes/admin.conf $HOME/.kube/config chown $(id -u):$(id -g) $HOME/.kube/config步骤 3 node-1节点查看集群状态kubectl get nodes4.5 配置cni网络插件在集群所有节点上都需要配置。步骤 1 配置10-mynet.conf。mkdir -p /etc/cni/net.d cat >/etc/cni/net.d/10-mynet.conf <<EOF { "cniVersion": "0.3.0", "name": "mynet", "type": "bridge", "bridge": "cni0", "isGateway": true, "ipMasq": true, "ipam": { "type": "host-local", "subnet": "10.244.0.0/16", "routes": [ {"dst": "0.0.0.0/0"} ] } } EOF步骤 2 配置99-loopback.conf。cat >/etc/cni/net.d/99-loopback.conf <<EOF { "cniVersion": "0.3.0", "type": "loopback" } EOF4.6 配置flannel网络插件在集群所有节点上都需要配置。步骤 1 下载flannel yaml文件。下载https://github.com/coreos/flannel/blob/v0.10.0/Documentation/kube-flannel.yml 中的kube-flannel.yml文件,之后修改文件中的amd64修改为arm64步骤 2 在master节点上,安装flannel插件。[root@ods1 ~]# kubectl apply -f kube-flannel.yml步骤 3 node-1节点查看状态,并修改label。kubectl get nodekubectl get pods -o wide –-all-namespaces4.7 Golang环境搭建所有节点都需要安装Golang,这里安装的是1.13.5。# 步骤 1 下载golang,并解压。 wget https://studygolang.com/dl/golang/go1.13.5.linux-arm64.tar.gz tar -C /usr/local -xzf go1.13.5.linux-arm64.tar.gz # 步骤 2 添加环境变量。 # 在~/.bashrc文件末尾添加: vim ~/.bashrc export GOPATH=/home/kkbill/kubeedge export PATH=$PATH:/usr/local/go/bin # 保存后记得执行 source ~/.bashrc 生效。验证: go version go version go1.13.5 linux/arm644.8 Mosquitto环境搭建node-2节点都需要安装Mosquitto,这里安装的是1.5.8。# 步骤 1 添加EPEL软件库。 yum install https://dl.fedoraproject.org/pub/epel/epel-release-latest-7.noarch.rpm # 步骤 2 添加EPEL软件库。 yum install mosquitto 5 软件运行5.1 云端KubeEdge源码编译node-1为云端,这里安装的KubeEdge版本是1.14.0。# 步骤 1 克隆仓库。 git clone https://github.com/kubeedge/kubeedge.git $GOPATH/src/github.com/kubeedge/kubeedge # 步骤 2 编译云端。 cd $GOPATH/src/github.com/kubeedge/kubeedge/ make all WHAT=cloudcore # 生成的二进制位于$GOPATH/src/github.com/kubeedge/kubeedge/_output/local/bin/目录下。 # 步骤 3 编创建设备模块和设备CRD yaml 文件。 cd $GOPATH/src/github.com/kubeedge/kubeedge/build/crds/devices kubectl create -f devices_v1alpha1_devicemodel.yaml kubectl create -f devices_v1alpha1_device.yaml cd $GOPATH/src/github.com/kubeedge/kubeedge/build/crds/reliablesyncs kubectl create -f cluster_objectsync_v1alpha1.yaml kubectl create -f objectsync_v1alpha1.yaml # 步骤 4 配置云端节点。 cd $GOPATH/src/github.com/kubeedge/kubeedge/_output/local/bin mkdir -p /etc/kubeedge/config/ ./cloudcore --minconfig > /etc/kubeedge/config/cloudcore.yaml5.2 边缘端KubeEdge源码编译node-2为边缘端,这里安装的KubeEdge版本是1.14.0。# 步骤 1 克隆仓库。 git clone https://github.com/kubeedge/kubeedge.git $GOPATH/src/github.com/kubeedge/kubeedge # 步骤 2 编译云端。 cd $GOPATH/src/github.com/kubeedge/kubeedge/ make all WHAT=edgecore # 生成的二进制位于$GOPATH/src/github.com/kubeedge/kubeedge/_output/local/bin/目录下。 # 步骤 3 生成边缘端配置文件并修改。 cd $GOPATH/src/github.com/kubeedge/kubeedge/_output/local/bin mkdir -p /etc/kubeedge/config/ ./edgecore --minconfig > /etc/kubeedge/config/ edgecore.yaml5.3 部署步骤 1 node-1查看kubernetes集群状态。此刻只有云端节点node-1就绪步骤 2 node-1节点运行云端核心。cd $GOPATH/src/github.com/kubeedge/kubeedge/_output/local/bin ./cloudcore步骤 3 node-1获取token。获取token解码:xxx为tokendata内容echo xxx | base64 -d步骤 4 node-2配置node-1节点解码后token内容。将步骤3中node-1节点中解码出来的token配置到node-2节点中的edgecore.yaml文件中module.edgehub.token属性步骤 5 node-2节点运行边缘端核心。cd $GOPATH/src/github.com/kubeedge/kubeedge/_output/local/bin ./edgecore 6 功能验证6.1 运行nginx示例步骤 1 在node-1节点查看状态。云端和边缘端均为ready步骤 2 部署官方deployment。步骤 3 扩容测试。kubectl scale deployment nginx-deployment --replicas=4预期效果:有4个pod出现,但只有1个正常运行,因为该 deployment 导出了节点端口,前面的 pod 已经占用,无法再分配。理论上,如果有4个节点,则会自动将 deployment 调度到4个节点上步骤 4 删除。kubectl delete -f $GOPATH/src/github.com/kubeedge/kubeedge/build/deployment.yaml7 FAQ系统重启后,节点kubernetes未自动启动,手动systemctl start kubelet也没有启动成功执行下面的语句查看kubelet启动日志。journalctl –u kubelet之后输入大写的’G’跳转到文件末尾,查看启动日志,之后根据报错信息处理。     2.“failed to run Kubelet: Running with swap on is not supported”。启动kubernetes节点必须关闭swap分区,具体操作见3.6章    3.Kubeedge编译时无法下载依赖包。解决方案:添加Go代理go env –w GOPROXY=https://goproxy.cn,direct 
  • [区域初赛赛题问题] Linux环境下build_and_run成功但提交失败
    Linux环境下使用build_and_run.sh运行成功,并且使用CodeCraft_zip.sh打包成功,但是上传之后显示【选手程序运行失败】。CodeCraft-2022.zip00查看问题2022-03-15 17:32:55
  • [区域初赛赛题问题] Linux环境下build_and_run成功但提交失败
    Linux环境下使用build_and_run.sh运行成功,并且使用CodeCraft_zip.sh打包成功,但是上传之后显示【选手程序运行失败】。
  • [区域初赛赛题问题] java在本地的Linux系统上编译出现异常
    【问题描述】编程语言为Java 本地idea上测试没问题,也能输出solution.txt文件 ,但是上传报编译错误。于是在本地的Linux系统上编译,也出现异常,然后拿什么都没动过的Demo也测试,发现还是这样。哭死。。。。。【截图信息】
  • [交流吐槽] 建议增加almalinux 镜像
    在CentOS 8 停止维护后,国内比较大的云计算厂商已经开始提供almalinux 镜像作为ECS 的公共镜像了。建议华为云增加 almalinux 和 rockylinux 的镜像源,并且华为云ECS 增加 almalinux 或 rockylinux.我明天会在华为云上部署一个 almalinux 节点,希望能尽快使用上华为云的内部源,而不是从公网获取更新。
总条数:1204 到第 页
上滑加载中