在openEuler 22.03 LTS SP1上使用docker搭建kubeedge

发布时间:2026/7/25 20:25:18

在openEuler 22.03 LTS SP1上使用docker搭建kubeedge 一. 准备工作1. 先配置好各自的主机名# 在云节点执行hostnamectl set-hostname cloud.kubeedge# 在边节点执行hostnamectl set-hostname edge.kubeedge2. 接下来进行准备工作在云端和边端都进行基础系统配置进行安装前准备# 停止并禁用firewalld systemctl stop firewalld systemctl disable firewalld # 如果使用的是iptables也需要停止 systemctl stop iptables systemctl disable iptables # 临时关闭selinux setenforce 0 # 永久关闭编辑/etc/selinux/config将SELINUXenforcing改为SELINUXdisabled sed -i s/SELINUXenforcing/SELINUXdisabled/g /etc/selinux/config # 临时关闭交换分区 swapoff -a # 永久关闭注释掉/etc/fstab中swap相关的行 sed -i /swap/s/^/#/ /etc/fstab #配置主机名解析工作 vi /etc/hosts #添加以下两行 192.168.116.100 cloud.kubeedge 192.168.116.200 edge.kubeedge # 安装chrony dnf install -y chrony systemctl start chronyd systemctl enable chronyd # 查看时间同步状态 chronyc sources -v二. 搭建k8s集群1. 由于没有本地离线包先安装docker服务yum -y install docker #启动docker并设置为开机启动 systemctl enable docker systemctl start docker2. 修改镜像源添加加速器并尝试拉取hello-worldcat /etc/docker/daemon.json EOF { registry-mirrors: [https://12d3a42a61bd4bbcbd2578ec4cb58f1e.mirror.swr.myhuaweicloud.com] } EOF 重新加载服务 systemctl daemon-reload systemctl restart docker docker version docker run hello-world3. 安装K8S所有节点修改配置文件cat /etc/docker/daemon.json EOF { registry-mirrors: [https://12d3a42a61bd4bbcbd2578ec4cb58f1e.mirror.swr.myhuaweicloud.com], exec-opts: [native.cgroupdriversystemd] } EOF所有节点重启Dockersystemctl daemon-reload systemctl restart docker所有节点配置将桥接的IPv4流量传递到iptables的链modprobe br_netfilter cat /etc/sysctl.d/k8s.conf EOF net.bridge.bridge-nf-call-ip6tables 1 net.bridge.bridge-nf-call-iptables 1 EOF所有节点配置生效sysctl -p /etc/sysctl.d/k8s.conf所有节点添加阿里云YUM软件源cat /etc/yum.repos.d/kubernetes.repo EOF [kubernetes] nameKubernetes baseurlhttps://mirrors.aliyun.com/kubernetes/yum/repos/kubernetes-el7-x86_64 enabled1 gpgcheck0 repo_gpgcheck0 gpgkeyhttps://mirrors.aliyun.com/kubernetes/yum/doc/yum-key.gpg https://mirrors.aliyun.com/kubernetes/yum/doc/rpm-package-key.gpg EOF仅需master节点安装k8s组件kubelet 运行在 Cluster 所有节点上负责启动 Pod 和容器。kubectl 是 Kubernetes 命令行工具。通过 kubectl 可以部署和管理应用查看各种资源创建、删除和更新各种组件。yum install -y kubelet-1.23.1 kubeadm-1.23.1 kubectl-1.23.1 systemctl enable kubelet systemctl start kubelet安装k8s时会联网下载很多镜像建议使用离线方式在所有节点将提前下载的镜像包导入docker load -i k8s-v1.23.tar.gz docker load -i flannel.tar.gz初始化集群kubeadm init --image-repository registry.aliyuncs.com/google_containers --kubernetes-version v1.23.1 --apiserver-advertise-address192.168.116.100 --service-cidr10.96.0.0/16 --pod-network-cidr10.244.0.0/16仅master节点操作根据提示执行如下命令mkdir -p $HOME/.kube sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config sudo chown $(id -u):$(id -g) $HOME/.kube/config随后部署flannel插件若联网无法正常下载先将kube-flannel.yml文件上传到master的/root目录kubectl apply -f kube-flannel.yml再安装一个CNI网络插件kubectl apply -f https://raw.githubusercontent.com/projectcalico/calico/v3.24.5/manifests/calico.yaml自此master节点成功加入集群Kubectl get nodes四. 欧拉系统搭建cloudcore1. 第一步先进行cloudcore的安装首先在一台能访问外网的机器上下载所需的 Docker 镜像。需要下载 KubeEdge 1.15.0 版本 cloudcore的镜像及其可能依赖的基础镜像bash# 在可联网的机器上执行 docker pull kubeedge/cloudcore:v1.15.0 docker pull registry.aliyuncs.com/google_containers/pause:3.92. 使用keadm初始化cloudcorekeadm init --advertise-address192.168.116.100 \ --kubeedge-version1.15.0 \ --kube-config/root/.kube/config3. 添加污点容忍为 cloudcore的 Deployment 添加容忍规则即修改 cloudcore的 Deployment 配置使其包含对 Master 节点污点的容忍。#编辑 cloudcore的 Deployment kubectl edit deployment -n kubeedge cloudcore #在编辑器中找到 spec.template.spec部分在其中添加 tolerations字段内容如下 spec: template: spec: tolerations: - key: node-role.kubernetes.io/master operator: Exists effect: NoSchedule# ... 以下是原有的 containers, volumes 等其他配置保存并退出编辑器 (在 vi 中按 Esc然后输入 :wq并回车)。Kubernetes 会自动应用更新并重新创建 cloudcorePod。新的 Pod 将能够容忍 Master 节点的污点并被成功调度。稍等片刻再次检查 Pod 状态kubectl get pods -n kubeedge -w4. 给出token将token留在后续任务keadm gettoken五. 欧拉系统搭建edgecore1. 安装docker全套服务sudo wget -O /etc/yum.repos.d/docker-ce.repo https://mirrors.huaweicloud.com/docker-ce/linux/centos/docker-ce.repo sudo sed -i s/$releasever/8/g /etc/yum.repos.d/docker-ce.repo sudo dnf install -y docker-ce docker-ce-cli containerd.io sudo systemctl start docker sudo systemctl enable docker2. 安装并配置cri-dockerd# 下载请替换为实际的版本号和架构 wget https://github.com/Mirantis/cri-dockerd/releases/tag/v0.3.13/cri-dockerd-0.3.13-3.el8.x86_64.rpm # 安装 sudo rpm -ivh cri-dockerd-0.3.13-3.el8.x86_64.rpm # 启动服务 sudo systemctl daemon-reload sudo systemctl enable cri-docker sudo systemctl start cri-docker #验证服务确保运行状态 sudo systemctl status cri-docker ls -la /var/run/cri-dockerd.sock3. 在可联网的机器上拉取三个镜像可能要做代理docker pull kubeedge/installation-package:v1.15.0 docker pull kubeedge/pause:3.6 docker pull registry.aliyuncs.com/google_containers/pause:3.9 docker tag registry.aliyuncs.com/google_containers/pause:3.9 registry.k8s.io/pause:3.94.安装cni网络服务wget https://github.com/containernetworking/plugins/releases/download/v1.4.0/cni-plugins-linux-amd64-v1.4.0.tgz #解压并且安装 mkdir -p /opt/cni/bin tar -zxvf cni-plugins-linux-amd64-v1.4.0.tgz -C /opt/cni/bin #配置CNI网络 mkdir -p /etc/cni/net.d #创建bridge网络 #将以下内容保存为 /etc/cni/net.d/10-containerd-net.conflist { cniVersion: 0.4.0, name: containerd-net, plugins: [ { type: bridge, bridge: cni0, isGateway: true, ipMasq: true, ipam: { type: host-local, ranges: [ [{ subnet: 10.88.0.0/16 }] ], routes: [ { dst: 0.0.0.0/0 } ] } } ]}5. 最后edgecore加入集群keadm join --cloudcore-ipport192.168.116.100:10000 \ --token6a9950f0bdb9c8fd6b476768cdce2e9e583171182a262910ebc6b5290328db9e.eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJleHAiOjE3NzMzNjYzMTl9.ZSJ1O9Df9Dz1eF80KJL7iqPR_v2zb9hZZ5XwNRCKeq8 \ --kubeedge-version1.15.0 \ --with-mqttfalse \ --edgenode-nameedge.kubeedge \ --remote-runtime-endpointunix:///var/run/cri-dockerd.sock

相关新闻