邊緣計算k8s叢集SuperEdge初體驗

李國寶發表於2021-01-21

前言
手上一直都有一堆的學生主機,各種各樣渠道途徑拿來的機器。

一直管理裡面都比較蛋疼,甚至也不太記得住它們在哪是什麼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叢集就完事了。

相關文章