边缘计算k8s集群SuperEdge初体验
前言
手上一直都有一堆的学生主机,各种各样渠道途径拿来的机器。
一直管理里面都比较蛋疼,甚至也不太记得住它们在哪是什么IP,管理起来很是头疼。
有阵子空闲的时候想折腾了一下边缘计算集群方案。
希望能把它们管理起来,做一个通用的计算方案。
问过dalao,给我推荐k3s。
K3s | 轻量级Kubernetes | 物联网及边缘计算K8S解决方案 | Rancher
www.rancher.cn
道理上是挺好的,不过....
看到Rancher是又惊又喜啊。
17年在http://ruff.io搞事的时候,集群方案就用的rancher,好用是好用,事多是真事多。
体验了一下,节点组装成集群的时候要做的事情有点多,而且还有自己管理master,用了一下就放弃了。
后来在某鱼
@白小鱼
的某次交流中,也看到kubeEdge这一套方案。
https://kubeedge.io/zh/
kubeedge.io
本着玩死机器不偿命的主题,肯定是拥抱它啊。
然后....
又浪费了我一个周末。
评价:一个照着官网文档跑不好的东西,不值得我花时间。jpg
不许gang,再问就是我菜。
PS:后来看到是华为捐出来的,就更加不想折腾了。
再后来,看到一直在用的某云出了边缘计算集群公测。
好家伙,master节点不用我给,直接加自己的机器到上面作为node节点。
完整的k8s集群方案,和平时用的普通集群基本没有区别。
完美,这就是我要的方案。
集群配置基本就是页面上点点点就完事了。
kubectl的配置看下官方或者某云教程都OK。
https://kubernetes.io/docs/tasks/tools/install-kubectl/
集群访问凭证也可以在这边直接下载到本地后设置。

添加节点的方式比较无脑。


edgectl下载到本地之后,执行一下./edgectl --help看看
root@nucubuntu:~# ./edgectl --help
Usage:
edgectl command [flags]
Available Commands:
check Check the edge node if to be add to clusters
install Install components to edge node
clear Clear edge node and recovery as usual
Flags:
-h, --help Help for edgectl
OK。
直接安装。
pc-name 取一个自己喜欢的名字,小写+横线+数字组合都Ok,不能用下划线
./edgectl install -n pc-name
等它跑完之后,成功看到Successfull之类的就完事了。
安装完之后,在某云集群的节点管理就能看到这台机器了。
也可以直接通过kubectl查看机器信息。
➜ ~ kc get node
NAME STATUS ROLES AGE VERSION
aliyun-changan Ready 23d v1.18.2
aliyun-huang Ready 23d v1.18.2
nuc-vm-ubuntu Ready 23d v1.18.2
➜ ~ kc describe node nuc-vm-ubuntu
Name: nuc-vm-ubuntu
Roles:
Labels: beta.kubernetes.io/arch=amd64
beta.kubernetes.io/os=linux
kubernetes.io/arch=amd64
kubernetes.io/hostname=nuc-vm-ubuntu
kubernetes.io/os=linux
region=cn
Annotations: flannel.alpha.coreos.com/backend-data: {"VtepMAC":"72:83:61:5b:7c:b7"}
flannel.alpha.coreos.com/backend-type: vxlan
flannel.alpha.coreos.com/kube-subnet-manager: true
flannel.alpha.coreos.com/public-ip: 10.0.2.15
node.alpha.kubernetes.io/ttl: 0
nodeunhealth: yes
volumes.kubernetes.io/controller-managed-attach-detach: true
CreationTimestamp: Tue, 29 Dec 2020 11:00:29 +0800
Taints:
Unschedulable: false
Lease:
HolderIdentity: nuc-vm-ubuntu
AcquireTime:
RenewTime: Thu, 21 Jan 2021 22:45:23 +0800
Conditions:
Type Status LastHeartbeatTime LastTransitionTime Reason Message
NetworkUnavailable False Mon, 18 Jan 2021 10:05:43 +0800 Mon, 18 Jan 2021 10:05:43 +0800 FlannelIsUp Flannel is running on this node
MemoryPressure False Thu, 21 Jan 2021 22:42:47 +0800 Wed, 20 Jan 2021 17:07:46 +0800 KubeletHasSufficientMemory kubelet has sufficient memory available
DiskPressure False Thu, 21 Jan 2021 22:42:47 +0800 Wed, 20 Jan 2021 17:07:46 +0800 KubeletHasNoDiskPressure kubelet has no disk pressure
PIDPressure False Thu, 21 Jan 2021 22:42:47 +0800 Wed, 20 Jan 2021 17:07:46 +0800 KubeletHasSufficientPID kubelet has sufficient PID available
Ready True Thu, 21 Jan 2021 22:42:47 +0800 Wed, 20 Jan 2021 17:07:46 +0800 KubeletReady kubelet is posting ready status. AppArmor enabled
Addresses:
InternalIP: 10.0.2.15
Hostname: nuc-vm-ubuntu
Capacity:
cpu: 2
ephemeral-storage: 19475088Ki
hugepages-2Mi: 0
memory: 8054976Ki
pods: 127
Allocatable:
cpu: 1940m
ephemeral-storage: 17948241072
hugepages-2Mi: 0
memory: 7788736Ki
pods: 127
System Info:
Machine ID: 8056248ceff544a3972666b79b1f3fb6
System UUID: 0d728d29-d62c-e948-a3b9-01ee8625bfe3
Boot ID: 7bddb25d-d02c-4341-9db4-ef3840795e3d
Kernel Version: 5.4.0-62-generic
OS Image: Ubuntu 20.04.1 LTS
Operating System: linux
Architecture: amd64
Container Runtime Version: docker://18.6.3
Kubelet Version: v1.18.2
Kube-Proxy Version: v1.18.2
PodCIDR: 172.16.1.0/24
PodCIDRs: 172.16.1.0/24
Non-terminated Pods: (18 in total)
Namespace Name CPU Requests CPU Limits Memory Requests Memory Limits AGE
default crawl-douban-edge-1611231000-mmbmk 10m (0%) 200m (10%) 64Mi (0%) 256Mi (3%) 155m
kube-system application-grid-wrapper-dqrgd 10m (0%) 50m (2%) 20Mi (0%) 100Mi (1%) 23d
kube-system coredns-lf2fr 50m (2%) 50m (2%) 70Mi (0%) 170Mi (2%) 6d22h
kube-system edge-health-cvzg4 10m (0%) 50m (2%) 20Mi (0%) 100Mi (1%) 23d
kube-system flannel-7zw8b 50m (2%) 100m (5%) 50Mi (0%) 200Mi (2%) 23d
kube-system kube-proxy-gnmpv 10m (0%) 50m (2%) 50Mi (0%) 100Mi (1%) 23d
kube-system proxy-edge-4lkrk 0 (0%) 0 (0%) 0 (0%) 0 (0%) 23d
Allocated resources:
(Total limits may be over 100 percent, i.e., overcommitted.)
Resource Requests Limits
cpu 240m (12%) 2500m (128%)
memory 1490Mi (19%) 5790Mi (76%)
ephemeral-storage 0 (0%) 0 (0%)
hugepages-2Mi 0 (0%) 0 (0%)
Events:
➜ ~ kc top node
NAME CPU(cores) CPU% MEMORY(bytes) MEMORY%
aliyun-changan 29m 3% 679Mi 43%
aliyun-huang 48m 5% 1137Mi 65%
nuc-vm-ubuntu 509m 26% 1869Mi 24%
最后基本像正常使用一个k8s集群就完事了。
边缘计算k8s集群SuperEdge初体验的更多相关文章
- 边缘计算k8s集群之SuperEdge
什么是边缘计算? 边缘计算,是指在靠近物或数据源头的一侧,采用网络.计算.存储.应用核心能力为一体的开放平台,就近提供最近端服务.其应用程序在边缘侧发起,产生更快的网络服务响应,满足行业在实时业务.应 ...
- 利用容器逃逸实现远程登录k8s集群节点
某天, 某鱼说要吃瞄, 于是...... 李国宝:边缘计算k8s集群SuperEdge初体验 zhuanlan.zhihu.com 图标 照着上一篇文章来说,我这边边缘计算集群有一堆节点. 每个节 ...
- kubeadm搭建K8s集群及Pod初体验
基于Kubeadm 搭建K8s集群: 通过上一篇博客,我们已经基本了解了 k8s 的基本概念,也许你现在还是有些模糊,说真的我也是很模糊的.只有不断地操作去熟练,强化自己对他的认知,才能提升境界. 我 ...
- 用 edgeadm 一键安装边缘 K8s 集群和原生 K8s 集群
背景 目前,很多边缘计算容器开源项目在使用上均存在一个默认的前提:用户需要提前准备一个标准的或者特定工具搭建的 Kubernetes 集群,然后再通过特定工具或者其他方式在集群中部署相应组件来体验边缘 ...
- 如何在 Serverless K8s 集群中低成本运行 Spark 数据计算?
作者 | 柳密 阿里巴巴阿里云智能 ** 本文整理自<Serverless 技术公开课>,关注"Serverless"公众号,回复"入门",即可获取 ...
- 万级K8s集群背后etcd稳定性及性能优化实践
背景与挑战 随着腾讯自研上云及公有云用户的迅速增长,一方面,腾讯云容器服务TKE服务数量和核数大幅增长, 另一方面我们提供的容器服务类型(TKE托管及独立集群.EKS弹性集群.edge边缘计算集群.m ...
- 万级K8s集群背后 etcd 稳定性及性能优化实践
1背景与挑战随着腾讯自研上云及公有云用户的迅速增长,一方面,腾讯云容器服务TKE服务数量和核数大幅增长, 另一方面我们提供的容器服务类型(TKE托管及独立集群.EKS弹性集群.edge边缘计算集群.m ...
- 在 Nebula K8s 集群中使用 nebula-spark-connector 和 nebula-algorithm
本文首发于 Nebula Graph Community 公众号 解决思路 解决 K8s 部署 Nebula Graph 集群后连接不上集群问题最方便的方法是将 nebula-algorithm / ...
- 强大多云混合多K8S集群管理平台Rancher入门实战
@ 目录 概述 定义 为何使用 其他产品 安装 简述 规划 基础环境 Docker安装 Rancher安装 创建用户 创建集群 添加Node节点 配置kubectl 创建项目和名称空间 发布应用 偏好 ...
随机推荐
- JVM虚拟机(一):类加载机制
类加载的时机 类加载的生命周期为: 加载.验证.准备.解析.初始化.使用.卸载七个阶段,其中验证.准备.解析三个阶段统称为连接.其中加载与连接时交叉执行的. 类必须初始化的六种情况 遇到new.g ...
- CTF练习三 —— 命令注入&命令执行绕过
这个题是第四届强网杯也就是2020.8.22号开始的那场一道简单的命令注入题,再这之前我并没有学习过命令注之类的知识,,,看到题之后先搜在学,,误打误撞解了出来,过段时间wp就会放出来,所以这里就不对 ...
- Django中ORM的使用
Django中ORM的使用 ORM orm(object-relation-mapping)对象关系映射,即用对象来表示关系数据库中的表: 类 --> 表, 对象-->一行数据 对象的属性 ...
- python爬虫之解析链接
解析链接 1. urlparse() & urlunparse() urlparse() 是对url链接识别和分段的,API用法如下: urllib.parse.urlparse(urlstr ...
- 【k8s实战一】Jenkins 部署应用到 Kubernetes
[k8s实战一]Jenkins 部署应用到 Kubernetes 01 本文主旨 目标是演示整个Jenkins从源码构建镜像到部署镜像到Kubernetes集群过程. 为了简化流程与容易重现文中效果, ...
- RPC 核心,万变不离其宗
微信搜 「yes的练级攻略」干货满满,不然来掐我,回复[123]一份20W字的算法刷题笔记等你来领. 个人文章汇总:https://github.com/yessimida/yes 欢迎 star ! ...
- 深入理解MySQL系列之索引
索引 查找一条数据的过程 先看下InnoDB的逻辑存储结构: 表空间:可以看做是InnoDB存储引擎逻辑结构的最高层,所有的数据都存放在表空间中.默认有个共享表空间ibdata1.如果启用innodb ...
- PPT技术干货1(下)——数据图表分析、逻辑梳理、高效办公
数据分析 让数据指导决策,帮你获得业绩增长 数据展示是PPT必备的基础技能, 有些人是简单粗暴的将数据直接堆在页面上: 这样的汇报缺乏重点,不具有针对性. 图表该如何设计呢? 1.数据可视化,内容交互 ...
- 【命令】ps命令
1.功用: <---用于报告当前系统的进程状态,实际是将/proc/目录下的各个进程的相关信息转换为我们易读的模式展现出来:可以搭配kill指令随时中断.删除不必要的程序---> 语法格式 ...
- Ubuntu系统的ifconfig命令不能执行
新安装的Ubuntu想要用WinSCP传文件时发现,ifconfig命令用不了 ping www.baidu.com 获得回应,应该是ifconfig未安装 解决这个问题,首先如图(时间较长,获取:[ ...