Kubeedge 1.5 部署指南

本文介绍了如何在一台ubuntu18.04和一台装有ubuntu20.04的树莓派4B上部署kubeedge1.5的过程。

其中ubuntu作为cloud节点,树莓派4B作为edge节点。

1. 系统配置

1.1 集群环境

主机名 系统 ip 角色 负载
master-node ubuntu18.04 10.112.55.6 cloud k8s、docker、cloudcore
ly-desktop rapsberry pi 4 +ubuntu20.04 10.112.139.139 edge docker、edgecore

可以通过sudo hostnamectl set-hostname edge-node-1改一下主机名。但是ly-desktop重启后自动变成了ly-desktop,目前还没发现原因

1.2 关闭防火墙和自启动

sudo systemctl stop ufw
sudo systemctl disable ufw

1.3 禁用SELinux

编辑文件/etc/selinux/config,将SELINUX修改为disabled,如下:

官网1.3 上说这样能关,但是我的系统上没有这个文件,我就没管它,后面好像也没报错

1.4 关闭系统Swap

在 /etc/fstab 中将swap那一行注释掉

 sed -i 's/.*swap.*/#&/' /etc/fstabsudo swapoff -a

通过free -m 看到swap的确被关闭了

1.5 安装docker

卸载旧版本

sudo apt-get remove docker  docker-engine  docker.io

安装相关软件

sudo apt-get update
sudo apt-get install apt-transport-https ca-certificates          curl gnupg-agent software-properties-common

增加软件源GPG密钥

curl -fsSL https://mirrors.aliyun.com/docker-ce/linux/ubuntu/gpg | sudo apt-key add

添加软件源(unbuntu 是amd、树莓派是arm)

sudo add-apt-repository \"deb [arch=amd64] https://mirrors.aliyun.com/docker-ce/linux/ubuntu \$(lsb_release -cs) \stable"

安装

sudo apt-get update
sudo apt-get install docker-ce docker-ce-cli containerd.io

docker换源阿里云

sudo mkdir -p /etc/docker
sudo tee /etc/docker/daemon.json <<-'EOF'
{"registry-mirrors": ["https://fmrhlw3f.mirror.aliyuncs.com"]
}
EOF
sudo systemctl daemon-reload
sudo systemctl restart docker

1.6 重启

sudo reboot

2. cloud节点部署k8s

2.1 安装kubeadm、kubeadm、kubectl

sudo apt-get update && sudo apt-get install -y ca-certificates curl software-properties-common apt-transport-https curl
curl -s https://mirrors.aliyun.com/kubernetes/apt/doc/apt-key.gpg | sudo apt-key add -sudo tee /etc/apt/sources.list.d/kubernetes.list <<EOF
deb https://mirrors.aliyun.com/kubernetes/apt/ kubernetes-xenial main
EOFsudo apt-get update
sudo apt-get install -y kubelet kubeadm kubectl
sudo apt-mark hold kubelet kubeadm kubectl

2.2 配置内核参数

sudo cat <<EOF >  /etc/sysctl.d/k8s.conf
net.bridge.bridge-nf-call-ip6tables = 1
net.bridge.bridge-nf-call-iptables = 1
vm.swappiness=0
EOFsysctl --system
modprobe br_netfilter
sysctl -p /etc/sysctl.d/k8s.conf

2.3 初始化master

使用阿里云的镜像,然后使用了非默认的CIDR(与宿主机局域网CIDR不一样)

sudo kubeadm init --pod-network-cidr 172.16.0.0/16 \--image-repository registry.cn-hangzhou.aliyuncs.com/google_containers

上面的命令执行成功后,会输出一条和kubeadm join相关的命令

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

2.4 安装calico插件

kubectl apply -f https://docs.projectcalico.org/v3.11/manifests/calico.yaml

2.5 查看

kubectl get nodes
kubectl get pods --all-namespaces

2.6 dashboard安装

2.6.1 创建recommended.yaml

在 ~目录下新建 recommended.yaml 文件,复制下面链接的文件进去

https://raw.githubusercontent.com/kubernetes/dashboard/v2.0.0-beta5/aio/deploy/recommended.yaml

并且将其中部分内容进行修改

#增加直接访问端口
kind: Service
apiVersion: v1
metadata:labels:k8s-app: kubernetes-dashboardname: kubernetes-dashboardnamespace: kubernetes-dashboard
spec:type: NodePort #增加ports:- port: 443targetPort: 8443nodePort: 30008 #增加selector:k8s-app: kubernetes-dashboard
2.6.2 创建证书
mkdir dashboard-certscd dashboard-certs/#创建命名空间
kubectl create namespace kubernetes-dashboard# 创建key文件
openssl genrsa -out dashboard.key 2048#证书请求
openssl req -days 36000 -new -out dashboard.csr -key dashboard.key -subj '/CN=dashboard-cert'#自签证书,可能报错不要管他
openssl x509 -req -in dashboard.csr -signkey dashboard.key -out dashboard.crt#创建kubernetes-dashboard-certs对象
kubectl create secret generic kubernetes-dashboard-certs --from-file=dashboard.key --from-file=dashboard.crt -n kubernetes-dashboard
2.6.3 安装dashboard
#安装
kubectl create -f  ~/recommended.yaml#检查结果
kubectl get pods -A  -o widekubectl get service -n kubernetes-dashboard  -o wide

2.6.4 创建dashboard管理员

创建账号

vi dashboard-admin.yaml
# 写入
apiVersion: v1
kind: ServiceAccount
metadata:labels:k8s-app: kubernetes-dashboardname: dashboard-adminnamespace: kubernetes-dashboard
#保存退出后执行
kubectl create -f dashboard-admin.yaml

为用户分配权限

vi dashboard-admin-bind-cluster-role.yaml
apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRoleBinding
metadata:name: dashboard-admin-bind-cluster-rolelabels:k8s-app: kubernetes-dashboard
roleRef:apiGroup: rbac.authorization.k8s.iokind: ClusterRolename: cluster-admin
subjects:
- kind: ServiceAccountname: dashboard-adminnamespace: kubernetes-dashboard
#保存退出后执行
kubectl create -f dashboard-admin-bind-cluster-role.yaml
2.6.5 web访问

查看并复制token

kubectl -n kubernetes-dashboard describe secret $(kubectl -n kubernetes-dashboard get secret | grep dashboard-admin | awk '{print $1}')

访问 https://10.112.55.6:30008,输入token即可

3. cloud节点部署cloudcore

3.1 安装golang

下载 https://golang.google.cn/dl/go1.15.6.linux-amd64.tar.gz 并上传到ubuntu上

tar -zxvf go1.14.4.linux-amd64.tar.gz -C /usr/local #配置用户环境
sudo vim /etc/profile
#文件末尾加上
export GOROOT=/usr/local/go
export GOPATH=/data/gopath
export PATH=$PATH:$GOROOT/bin:$GOPATH/bin
#刷新
source /etc/profile
mkdir -p /data/gopath && cd /data/gopath
mkdir -p src pkg bin#配置root 环境变量
sudo vim /etc/sudoers
#在secure_path中添加
:/usr/local/go/bin:/data/gopath/bin#检查go环境
go --version
sudo go --version

3.2安装 make、gcc

sudo apt-get install make gcc

如果报错显示

 Depends: *** (= 4:9.3.0-1ubuntu2) but 4:10.2.0-1ubuntu1 is to be installed

可以尝试通过 sudo apt purge *** 然后重新安装

如果sudo apt purge ***不被允许,可以尝试将ubuntu换回原来的国外源,重新安装

3.3 部署cloudcore

3.3.1 下载源码
git clone https://gitee.com/ly10208/kubeedge.git $GOPATH/src/github.com/kubeedge/kubeedge
3.3.2 编译keadm
cd $GOPATH/src/github.com/kubeedge/kubeedge
make all WHAT=keadm
#若make报错没有权限可以考虑 在前面加上sudo
3.3.3 创建cloud节点
./_output/local/bin/keadm init

一般来说如果ubuntu不能科学上网的话,就会提示连接失败。

需要提前去 https://github.com/kubeedge/kubeedge/releases/tag/v1.5.0 下载 kubeedge-v1.5.0-linux-amd64.tar.gz 。

然后将其上传到 /etc/kubeedge/ 路径下

命令行提示什么下载不下来,手动去下载就行,并且上传到ubuntu的指定位置就行,当然需要一台能够科学上网的机器

最后./_output/local/bin/keadm init执行成功,显示如下

Kubernetes version verification passed, KubeEdge installation will start...
...
KubeEdge cloudcore is running, For logs visit:  /var/log/kubeedge/cloudcore.log
CloudCore started

3.4 查看cloudcore状态

systemctl status cloudcore 查看运行情况

journalctl -u cloudcore -n 100 查看最近100条日志

运行正常即可

3.5 获取token

./_output/local/bin/keadm gettoken
#输出
93fc5ef46596b60019009205bb6c33f98c7eef74f4e3edbfb4bdc29ea8baa71b.eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJleHAiOjE2MDc3OTU3ODV9.8fIHabQ2jqY4SJL9fziKXYeqwmTY0-F9rPtXyWRFYiE

4. edge节点部署edgecore

4.1. 安装golang

下载 https://golang.google.cn/dl/go1.15.6.linux-armd64.tar.gz 并上传到树莓派上,注意树莓派是arm架构的cpu,需要下载arm版本的压缩包

剩下的和 3.1 一模一样

4.2安装 make、gcc

与3.2一模一样

4.3 部署edgecore

4.3.1 下载源码,并编译

同上

4.3.2 创建edge节点
cd $GOPATH/src/github.com/kubeedge/kubeedge
./_output/local/bin/keadm join --cloudcore-ipport="10.112.55.6:10000" --edgenode-name="edge-node-1" --token=93fc5ef46596b60019009205bb6c33f98c7eef74f4e3edbfb4bdc29ea8baa71b.eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJleHAiOjE2MDc3OTU3ODV9.8fIHabQ2jqY4SJL9fziKXYeqwmTY0-F9rPtXyWRFYiE

需要提前去 https://github.com/kubeedge/kubeedge/releases/tag/v1.5.0 下载 kubeedge-v1.5.0-linux-arm64.tar.gz 。下载arm压缩包

然后将其上传到 /etc/kubeedge/ 路径下

依旧如上3.3.3一样缺啥补啥。

4.4 查看edgecore状态

systemctl status edgecore 查看运行情况

journalctl -u edgecore -n 100 查看日志

运行正常即可

5. 配置完成

去cloud节点查看

ly@master-node:/$ kubectl get nodes
NAME          STATUS   ROLES        AGE     VERSION
edge-node-1   Ready    agent,edge   14h     v1.19.3-kubeedge-v1.5.0
master-node   Ready    master       2d17h   v1.19.4

可以发现edge-node-1节点已经加入了

但是edge节点的两个pod都有问题,目前还不知道解决方法,不过似乎不影响使用

6.参考资料

基于Ubuntu 20.04安装Kubernetes 1.18

KubeEdge v1.3部署指南

kubernetes部署dashboard

ubuntu安装docker

Kubeedge 1.5 部署指南相关推荐

  1. Cobbler部署指南之Cobbler安装操作系统篇

    ##################################################### ##如有转载,请务必保留本文链接及版权信息 ##欢迎广大运维同仁一起交流linux/unix ...

  2. 关键数据保险箱,AD RMS服务器部署指南

    关键数据的保险箱,AD RMS服务器部署指南<?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:offi ...

  3. 首发福利!全球第一开源ERP Odoo系统架构部署指南 电子书分享

    引言 Odoo,以前叫OpenERP,是比利时Odoo S.A.公司开发的一个企业应用软件套件,开源套件包括一个企业应用快速开发平台,以及几千个Odoo及第三方开发的企业应用模块.Odoo适用于各种规 ...

  4. 01-Windows Server 2012 R2 远程桌面服务部署指南

    01-Windows Server 2012 R2 远程桌面服务部署指南 作者:马博峰 对于大部分的IT部门来说,服务器虚拟化并不是的IT首要挑战,而是越来越庞大的企业个人办公环境.企业内部的用户都希 ...

  5. Windows Phone 8 企业应用部署指南(二)

    之前WindowsPhone 8企业应用部署指南(一)介绍了如何将企业级应用在企业内部部署发布.其中作为企业内部部署和发布应用的根本前提是获得企业移动代码签名证书.本节介绍从Symantec申请企业移 ...

  6. MinIO多租户(Multi-tenant)部署指南

    MinIO多租户(Multi-tenant)部署指南 单机部署 要在单台机器上托管多个租户,为每个租户运行一个MinIO server,使用不同的HTTPS端口.配置和数据目录. 示例1:单主机,单磁 ...

  7. Project Server 2003配置部署指南_百度文库

    Project Server 2003配置部署指南_百度文库 Project server 2003配置部署指南 - 网管地带 - IT博客

  8. KubeEdge 1.1 部署

    本文介绍了如何在两台 ubuntu 16.04 64 bit 双核 CPU 虚拟机上从源码开始部署 KubeEdge 1.1.0 集群的过程,云端 Kubernetes 版本为 1.17.0,Gola ...

  9. VMware-vRealize-Log-Insight-8.2.0.0安装部署指南

    VMware-vRealize-Log-Insight-8.2.0.0安装部署指南 https://blog.csdn.net/u011775882/article/details/110928142 ...

最新文章

  1. LeetCode 312. Burst Balloons
  2. CCF 2015年题目题解 - Python
  3. 为什么说美团终将放弃打车?
  4. 2.27linux和windows互传文件
  5. 揽货最短路径解决方案算法 - C# 蚁群优化算法实现
  6. Redis:缓存问题之数据不一致(更新数据库时 主动更新)
  7. mysql 利用触发器(Trigger)让代码更简单
  8. PXE 自动安装物理机 (DHCP服务由路由提供, 不能再配置)
  9. 编曲软件FL Studio 20.99中文版2023最新免费下载
  10. 夺灵者哈卡(Hakkar, the Soulflayer)
  11. 2020-11-12
  12. L44. 通配符匹配
  13. 腾讯这次组织变革是过渡的
  14. C# 自定义控件,日期时间选择输入插件
  15. 十字链表画法——蓝墨云班课实践改错
  16. 重构--Introduce Parameter Object
  17. Android 4.2 Wifi Display核心分析 (一)
  18. 从0开始安装k8s1.25【最新k8s版本——20220904】
  19. 计算机网络技术专业就业前景
  20. 何小鹏:跟李斌赌输了 将付一辆ES8顶配的购车款给对方

热门文章

  1. 只需一张自拍,网易伏羲用这种方法直接生成「个人专属」游戏角色
  2. Scratch软件编程等级考试四级——20210320
  3. kotlin 中关键字 lateinit
  4. 如何高效建设传奇的DAO
  5. (十)打包和项目部署
  6. HSQLDB数据库使用详解(入门)及快速使用
  7. Excel:妙用自定义函数让班级名称自动化(转)
  8. 软件测试实习生面试归来
  9. 列的完整性约束——设置表字段的外键约束(FOREIGN KEY,FK)
  10. 没想到华为P20的投屏功能,还可以这么强大!