
Dhawaan, mid ka mid ah shirkadaha caanka ah ayaa ku dhawaaqay in ay u wareejinayso khadkeeda laptop-yada dhismaha ARM. Markii aan maqlay warkan, waxaan xasuustay: Anigoo mar kale eegaya qiimaha EC2 ee AWS, waxaan ogaaday Gravitons oo leh qiimo aad u wanaagsan. Qabashada, dabcan, waxay ahayd inay ahayd ARM. Waligey iguma dhicin markaas in ARM ay aad u daran tahay...
Aniga ahaan, qaab-dhismeedkani wuxuu had iyo jeer ahaa goobta mobilada iyo waxyaabaha kale ee IoT. Adeegayaasha "Real" ee ARM waa kuwo aan caadi ahayn, siyaabaha qaarkood xitaa duurjoogta ah ... Si kastaba ha ahaatee, fikrad cusub ayaa ku dhegtay madaxayga, sidaas darteed hal usbuuc ka dib waxaan go'aansaday inaan hubiyo waxa lagu socon karo ARM maanta. Oo tan waxaan go'aansaday inaan ku bilaabo wax dhow oo qaali ah - kooxda Kubernetes. Oo ma aha oo kaliya nooc ka mid ah "kutlada" caadiga ah, laakiin wax walba "hab qaangaar ah", si ay u noqoto inta ugu badan ee suurtogalka ah oo la mid ah sida aan u isticmaalo inaan ku arko wax soo saarka.
Sida fikradeyda qabo, kooxdu waa inay noqotaa mid laga heli karo internetka, qaar ka mid ah codsiyada webka waa inay ku dhex socdaan, waana inay jirtaa ugu yaraan kormeer. Si loo hirgeliyo fikradan, waxaad u baahan doontaa labo (ama ka badan) oo ah Raspberry Pi ugu yaraan moodel 3B+. AWS waxay noqon kartaa goob lagu tijaabiyo, laakiin waxaan xiisaynayay "raspberries" (kuwaas oo weli taagan shaqo la'aan). Markaa, waxaanu geyn doonaa kooxda Kubernetes oo wata Ingress, Prometheus iyo Grafana.
Diyaarinta "raspberries"
Ku rakibida OS iyo SSH
Wax badan kama dhibin doorashada OS si aan u rakibo: Kaliya waxaan qaatay Raspberry Pi OS Lite kii ugu dambeeyay . Halkaas laga heli karo , dhammaan falalka laga soo bilaabo kuwaas oo ay tahay in lagu sameeyo dhammaan qanjidhada kooxda mustaqbalka. Marka xigta, waxaad u baahan doontaa inaad sameyso manipulations soo socda (sidoo kale dhammaan qanjidhada).
Ka dib marka aad isku xirto kormeeraha iyo kiiboodhka, waa inaad marka hore habaysaa shabakada iyo SSH:
- Kooxdu si ay u shaqeyso, sayidku waa in uu leeyahay ciwaanka IP-ga ee taagan, qanjidhada shaqalahana waa in ay lahaadaan cinwaan IP ah oo taagan. Waxaan doorbiday ciwaanno taagan si ay u fududaato habaynta.
- Ciwaanka taagan waxa lagu habayn karaa OS-ka (faylka
/etc/dhcpcd.confwaxaa jira tusaale ku haboon) ama adoo hagaajinaya heshiis kiro serverka DHCP ee loo isticmaalo (xaaladkayga, guriga) router. - Ssh-server si fudud ayaa loogu daray raspi-config (ikhtiyaarada isdhexgalka → ssh).
Taas ka dib, waxaad ku gali kartaa SSH (galitaanka caadiga ah waa pi, furahana waa raspberry ama kan aad u bedeshay) oo sii wad dejinta.
Goobaha kale
- Aynu dejino magaca martida loo yahay. Tusaalahayga waxay isticmaali doonaan
pi-controlиpi-worker. - Aynu eegno in nidaamka faylka loo fidiyay si uu u daboolo diskka oo dhan (
df -h /). Haddii loo baahdo, waxaa lagu ballaarin karaa iyadoo la isticmaalayo raspi-config. - Aan bedelno erayga sirta ah ee isticmaale ee raspi-config.
- Aynu daminno faylka isku beddelka (tani waa shuruudaha Kubernetes; haddii aad xiisaynayso faahfaahinta mawduucan, eeg ):
dphys-swapfile swapoff systemctl disable dphys-swapfile - Aan u cusboonaysiinno xirmooyinka noocyadii ugu dambeeyay:
apt-get update && apt-get dist-upgrade -y - Aynu rakibno Docker iyo baakado dheeraad ah:
apt-get install -y docker docker.io apt-transport-https curl bridge-utils iptables-persistentMarka la rakibayo
iptables-persistentWaxaad u baahan doontaa inaad kaydiso goobaha iptables ee ipv4, iyo faylka/etc/iptables/rules.v4- ku dar xeerar silsiladdaFORWARD, sida tan:# Generated by xtables-save v1.8.2 on Sun Jul 19 00:27:43 2020 *filter :INPUT ACCEPT [0:0] :FORWARD ACCEPT [0:0] :OUTPUT ACCEPT [0:0] -A FORWARD -s 10.1.0.0/16 -j ACCEPT -A FORWARD -d 10.1.0.0/16 -j ACCEPT COMMIT - Waxa hadhay oo dhan waa in dib loo bilaabo
Hadda waxaad diyaar u tahay inaad rakibto kutladaada Kubernetes.
Rakibaadda Kubernetes
Marxaladdan, waxaan si badheedh ah dhinac iskaga dhigay dhammaan horumarkayga iyo shirkadeenaba si aan u toosiyo rakibidda iyo habaynta kooxda K8s. Taa beddelkeeda, aan u isticmaalno dukumeentiga rasmiga ah (wax yar oo lagu kabo faallooyin iyo gaabin).
Aynu ku darno kaydka Kubernetes:
curl -s https://packages.cloud.google.com/apt/doc/apt-key.gpg | sudo apt-key add -
cat <<EOF | sudo tee /etc/apt/sources.list.d/kubernetes.list
deb https://apt.kubernetes.io/ kubernetes-xenial main
EOF
sudo apt-get updateDheeraad ah dukumeentiyada waxaa la soo jeediyay in la rakibo CRI (kontaynar runtime interface). Maadaama Docker mar hore la rakibay, aan dhaqaaqno oo aan rakibno qaybaha ugu muhiimsan:
sudo apt-get install -y kubelet kubeadm kubectl kubernetes-cni Tallaabada lagu rakibayo qaybaha ugu muhiimsan, waxaan isla markiiba ku daray kubernetes-cni, taasoo lagama maarmaan u ah in kooxdu ay shaqeyso. Oo halkan waxaa ku yaal qodob muhiim ah: xirmada kubernetes-cni Sababaha qaar uma abuurto tusaha caadiga ah ee goobaha interface CNI, marka waa inaan gacanta ku abuuraa:
mkdir -p /etc/cni/net.dShabakadda dhabarka shaqada, taas oo hoos looga hadli doono, waxaad u baahan tahay inaad ku rakibto plugin ee CNI. Waxaan doortay plugin-ka portmap-ka ee la yaqaan oo aniga la fahmi karo (liiska dhamaystiran, eeg ):
curl -sL https://github.com/containernetworking/plugins/releases/download/v0.7.5/cni-plugins-arm-v0.7.5.tgz | tar zxvf - -C /opt/cni/bin/ ./portmapHabaynta Kubernetes
Node leh diyaarad kontorool
Ku rakibida kooxda lafteedu waa wax fudud. Iyo si loo dedejiyo habkan oo loo xaqiijiyo in sawirada Kubernetes la heli karo, waxaad marka hore ordi kartaa:
kubeadm config images pullHadda waxaan fulineynaa rakibidda lafteeda - bilow diyaaradda xakamaynta ee kooxda:
kubeadm init --pod-network-cidr=10.1.0.0/16 --service-cidr=10.2.0.0/16 --upload-certsFadlan ogow in shabakadaha hoose ee adeegyada iyo pods-yada aysan isku dul-taagnayn midba midka kale ama shabakadaha jira.
Dhamaadka, waxaa nala tusi doonaa fariin ah in wax walba ay fiican yihiin, isla markaana waxay noo sheegi doonaan sida loo xiro noodhka shaqaalaha ee diyaaradda xakamaynta:
Your Kubernetes control-plane has initialized successfully!
To start using your cluster, you need to run the following as a regular user:
mkdir -p $HOME/.kube
sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config
sudo chown $(id -u):$(id -g) $HOME/.kube/config
You should now deploy a pod network to the cluster.
Run "kubectl apply -f [podnetwork].yaml" with one of the options listed at:
https://kubernetes.io/docs/concepts/cluster-administration/addons/
You can now join any number of the control-plane node running the following command on each as root:
kubeadm join 192.168.88.30:6443 --token a485vl.xjgvzzr2g0xbtbs4
--discovery-token-ca-cert-hash sha256:9da6b05aaa5364a9ec59adcc67b3988b9c1b94c15e81300560220acb1779b050
--contrl-plane --certificate-key 72a3c0a14c627d6d7fdade1f4c8d7a41b0fac31b1faf0d8fdf9678d74d7d2403
Please note that the certificate-key gives access to cluster sensitive data, keep it secret!
As a safeguard, uploaded-certs will be deleted in two hours; If necessary, you can use
"kubeadm init phase upload-certs --upload-certs" to reload certs afterward.
Then you can join any number of worker nodes by running the following on each as root:
kubeadm join 192.168.88.30:6443 --token a485vl.xjgvzzr2g0xbtbs4
--discovery-token-ca-cert-hash sha256:9da6b05aaa5364a9ec59adcc67b3988b9c1b94c15e81300560220acb1779b050Aan raacno talooyinka ku darista isku xidhka isticmaalaha Isla mar ahaantaana, waxaan ku talinayaa isla markiiba ku darista autocompletion ee kubectl:
kubectl completion bash > ~/.kube/completion.bash.inc
printf "
# Kubectl shell completion
source '$HOME/.kube/completion.bash.inc'
" >> $HOME/.bash_profile
source $HOME/.bash_profileMarxaladdan, waxaad horeba u arki kartaa noodhka kowaad ee kutlada (inkasta oo aanay wali diyaar ahayn):
root@pi-control:~# kubectl get no
NAME STATUS ROLES AGE VERSION
pi-control NotReady master 29s v1.18.6Qaabeynta shabakada
Marka xigta, sida lagu sheegay fariinta ka dib marka la rakibo, waxaad u baahan doontaa inaad ku rakibto shabakada kutlada. Dukumeentigu wuxuu bixiyaa doorasho ka Calico, Cilium, contiv-vpp, Kube-router iyo Weave Net qaabka host-gw (si aad u hesho macluumaad dheeraad ah oo ku saabsan dhabarka dambe ee la heli karo, eeg ).
Ku rakibida kooxdu waa wax fudud. Marka hore, soo deji muujinta:
wget https://raw.githubusercontent.com/coreos/flannel/master/Documentation/kube-flannel.yml Kadibna ku beddel nooca goobaha vxlan on host-gw:
sed -i 's/vxlan/host-gw/' kube-flannel.ymliyo subnet-ka pods-ka - laga bilaabo qiimaha caadiga ah ilaa kan la cayimay inta lagu guda jiro bilowga kooxda:
sed -i 's#10.244.0.0/16#10.1.0.0/16#' kube-flannel.ymlIntaa ka dib, waxaan abuurnaa ilo:
kubectl create -f kube-flannel.yml Diyaar! Muddo ka dib, noodhka ugu horreeya ee K8s wuxuu u wareegayaa heerka Ready:
NAME STATUS ROLES AGE VERSION
pi-control Ready master 2m v1.18.6Ku darista Node Shaqaale
Hadda waxaad ku dari kartaa shaqaale. Si tan loo sameeyo - ka dib markii la rakibo Kubernetes lafteeda sida ku cad muuqaalka kore ee lagu sharraxay - waxaad u baahan tahay oo kaliya inaad socodsiiso amarkii hore ee la helay:
kubeadm join 192.168.88.30:6443 --token a485vl.xjgvzzr2g0xbtbs4
--discovery-token-ca-cert-hash sha256:9da6b05aaa5364a9ec59adcc67b3988b9c1b94c15e81300560220acb1779b050Halkaa marka ay marayso waxaan u qaadan karnaa in kooxdu ay diyaar tahay:
root@pi-control:~# kubectl get no
NAME STATUS ROLES AGE VERSION
pi-control Ready master 28m v1.18.6
pi-worker Ready <none> 2m8s v1.18.6Kaliya waxa aan gacanta ku haystay laba Raspberry Pis, si aan u bixiyo mid ka mid ah oo keliya Ma aanan rabin in ay hoos timaado diyaaradda. Markaa waxaan ka saaray wasakhdii si toos ah loogu rakibay qanjirka pi-control anigoo ordaya:
root@pi-control:~# kubectl edit node pi-control... oo ka saara xadhkaha:
- effect: NoSchedule
key: node-role.kubernetes.io/masterBuuxinta kutlada ugu yaraan loo baahan yahay
Marka hore waxaan u baahanahay Helm. Dabcan, wax walba waad samayn kartaa la'aanteed, laakiin Helm wuxuu kuu ogolaanayaa inaad si dhab ah u habayso qaybo ka mid ah go'aankaaga adigoon tafatirin faylasha. Run ahaantiina, waa faylal binary ah oo "aan ku waydiisan rooti."
Markaa aan aadno Qaybta dukumeenti/rakibaadda oo ka dhaqan geli amarka:
curl -s https://raw.githubusercontent.com/helm/helm/master/scripts/get-helm-3 | bashIntaa ka dib, ku dar kaydka jaantusyada:
helm repo add stable https://kubernetes-charts.storage.googleapis.com/Hadda aan u rakibno qaybaha kaabayaasha sida loo qorsheeyay:
- Xakamaynta soo galitaanka;
- Prometheus;
- Grafana;
- shahaado-maareeyaha.
Xakamaynta soo galitaanka
Qaybta koowaad waa Xakamaynta soo galitaanka - Rakibadu waa mid fudud oo diyaar u ah in la isticmaalo meel ka baxsan sanduuqa. Si tan loo sameeyo, kaliya u tag oo ka socodsii amarka rakibida halkaas:
kubectl apply -f https://raw.githubusercontent.com/kubernetes/ingress-nginx/controller-v0.34.1/deploy/static/provider/baremetal/deploy.yamlSi kastaba ha ahaatee, wakhtigan "raspberry" wuxuu bilaabay inuu cadaadiso oo uu galo IOPS disk ah. Xaqiiqdu waxay tahay in ay la socdaan kontaroolaha Ingress, tiro badan oo agab ah ayaa lagu rakibay, codsiyo badan oo API ah ayaa la sameeyaa, sidaas awgeed, xog badan ayaa loo qoraa iwm. Guud ahaan, mid ka mid ah kaarka xusuusta ee fasalka 10 ma aha mid aad waxtar u leh, ama kaarka SD asal ahaan kuma filna culeyska noocaas ah. Si kastaba ha noqotee, qiyaastii 5 daqiiqo ka dib wax walbaa way bilowdeen.
Waxaa la sameeyay goob magaceed waxaana ka dhex muuqday maamule iyo wax kasta oo ay u baahan tahay:
root@pi-control:~# kubectl -n ingress-nginx get pod
NAME READY STATUS RESTARTS AGE
ingress-nginx-admission-create-2hwdx 0/1 Completed 0 31s
ingress-nginx-admission-patch-cp55c 0/1 Completed 0 31s
ingress-nginx-controller-7fd7d8df56-68qp5 1/1 Running 0 48sPrometheus
Labada qaybood ee soo socda aad bay u fududahay in lagu rakibo iyada oo loo marayo Helm shaxda repo.
Hel Prometheus, samee meel magac oo u dhig:
helm search repo stable | grep prometheus
kubectl create ns monitoring
helm install prometheus --namespace monitoring stable/prometheus --set server.ingress.enabled=True --set server.ingress.hosts={"prometheus.home.pi"}Sida caadiga ah, Prometheus wuxuu dalbanayaa 2 saxan: xogta Prometheus lafteeda iyo xogta AlertManager. Mar haddii fasalka kaydinta aan lagu dhex abuurin kutlada, saxanadaha lama dalban doono mana bilaaban doono galalka. Qalabka Kubernetes ee birta qaawan, waxaan caadi ahaan u isticmaalnaa Ceph rbd, laakiin marka laga hadlayo Raspberry Pi tani waa mid si cad u liidata.
Sidaa darteed, aynu ku abuurno kayd maxalli ah oo fudud marinka martida loo yahay. PV (mugga joogtada ah) ee muujinaya adeegaha-prometheus iyo prometheus-alertmanager ayaa lagu daraa fayl prometheus-pv.yaml в . Hagaha PV waa loo baahan yahay horay ku samee saxanka noodhka kaas oo aan rabno inaan ku xidhno Prometheus: tusaale ahaan waa ku qoran tahay nodeAffinity magaca martida loo yahay pi-worker waxaana dusheeda lagu abuuray hagayaal /data/localstorage/prometheus-server и /data/localstorage/prometheus-alertmanager.
Soo deji (clone) muujinta oo ku dar Kubernetes:
kubectl create -f prometheus-pv.yamlMarxaladdan, waxaan marka hore la kulmay dhibaatada dhismaha ARM. Kube-state-metrics, oo si caadi ah loogu rakibay shaxanka Prometheus, ayaa diiday inuu bilaabo. Waxay bixisay khalad:
root@pi-control:~# kubectl -n monitoring logs prometheus-kube-state-metrics-c65b87574-l66d8
standard_init_linux.go:207: exec user process caused "exec format error"Xaqiiqdu waxay tahay in kube-state-metrics adeegsato sawirka mashruuca CoreOS, kaas oo aan loo diyaarin ARM:
kubectl -n monitoring get deployments.apps prometheus-kube-state-metrics -o=jsonpath={.spec.template.spec.containers[].image}
quay.io/coreos/kube-state-metrics:v1.9.7Waxay ahayd inaan wax yar sameeyo oo aan helo, tusaale ahaan, . Si aan u isticmaalno, aan cusboonaysiinno sii deynta si aan u muujino sawirka loo isticmaalo kube-state-metrics:
helm upgrade prometheus --namespace monitoring stable/prometheus --set server.ingress.enabled=True --set server.ingress.hosts={"prometheus.home.pi"} --set kube-state-metrics.image.repository=carlosedp/kube-state-metrics --set kube-state-metrics.image.tag=v1.9.6Aan hubino in wax walba ay bilaabeen:
root@pi-control:~# kubectl -n monitoring get po
NAME READY STATUS RESTARTS AGE
prometheus-alertmanager-df65d99d4-6d27g 2/2 Running 0 5m56s
prometheus-kube-state-metrics-5dc5fd89c6-ztmqr 1/1 Running 0 5m56s
prometheus-node-exporter-49zll 1/1 Running 0 5m51s
prometheus-node-exporter-vwl44 1/1 Running 0 4m20s
prometheus-pushgateway-c547cfc87-k28qx 1/1 Running 0 5m56s
prometheus-server-85666fd794-z9qnc 2/2 Running 0 4m52sGrafana iyo maamulaha shahaadada
Jaantusyada iyo dashboard-yada waanu dejinay Grafana:
helm install grafana --namespace monitoring stable/grafana --set ingress.enabled=true --set ingress.hosts={"grafana.home.pi"}Dhamaadka wax soo saarka waxaa nala tusi doonaa sida loo helo erayga sirta ah:
kubectl get secret --namespace monitoring grafana -o jsonpath="{.data.admin-password}" | base64 --decode ; echoSi aad u dalbato shahaadooyin waanu rakibi doonaa maamule ceer. Si aad u rakibto, fadlan tixraac , kaas oo bixiya amarada u dhigma ee Helm:
helm repo add jetstack https://charts.jetstack.io
helm install
cert-manager jetstack/cert-manager
--namespace cert-manager
--version v0.16.0
--set installCRDs=trueShahaadooyinka iskiis u saxeexay ee isticmaalka guriga, tani waa ku filan tahay. Haddii aad u baahan tahay inaad sidaas oo kale hesho Aan isku dayno, markaa waxaad sidoo kale u baahan tahay inaad habayso soo saaraha kooxeed. Faahfaahinta tan waxaa laga heli karaa maqaalkeena "".
Aniga qudhaydu waxaan ku dejiyey dookh ka , go'aaminta in doorashada habaynta ee LE ay ku filnaan doonto. Waxaan bedelnaa iimaylka tusaalaha, ku keydi faylka oo ku darnaa kooxda ():
kubectl create -f cert-manager-cluster-issuer.yamlHadda waxaad dalban kartaa shahaado, tusaale ahaan, Grafana. Tani waxay u baahan doontaa domain iyo gelitaanka kooxda dibadda. Waxaan haystaa domain, waxaanan habeeyay taraafikada anigoo u soo gudbinaya dekedaha 80 iyo 443 routerka gurigayga si waafaqsan adeega xakamaynta gudaha ee la abuuray:
kubectl -n ingress-nginx get svc
NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE
ingress-nginx-controller NodePort 10.2.206.61 <none> 80:31303/TCP,443:30498/TCP 23dXaaladdan oo kale, dekedda 80 waxaa loo tarjumay 31303, iyo dekedda 443 ilaa 30498. (Dekedo si aan kala sooc lahayn ayaa loo sameeyay, marka taadu way ka duwanaan doontaa.)
Waa kan tusaale shahaado ah ():
apiVersion: cert-manager.io/v1alpha2
kind: Certificate
metadata:
name: grafana
namespace: monitoring
spec:
dnsNames:
- grafana.home.pi
secretName: grafana-tls
issuerRef:
kind: ClusterIssuer
name: letsencrypt-stagingKudar kooxda:
kubectl create -f cert-manager-grafana-certificate.yamlTaas ka dib, ilaha Ingress ayaa soo bixi doona, iyada oo loo marayo Aynu sir qaadno ansaxinta ayaa dhici doonta:
root@pi-control:~# kubectl -n monitoring get ing
NAME CLASS HOSTS ADDRESS PORTS AGE
cm-acme-http-solver-rkf8l <none> grafana.home.pi 192.168.88.31 80 72s
grafana <none> grafana.home.pi 192.168.88.31 80 6d17h
prometheus-server <none> prometheus.home.pi 192.168.88.31 80 8d Ka dib markii ansixinta dhaafto, waxaan arki doonaa in khayraadka certificate diyaar ah, iyo sirta kore grafana-tls - shahaado iyo fure. Waxaad isla markiiba hubin kartaa cidda bixisay shahaadada:
root@pi-control:~# kubectl -n monitoring get certificate
NAME READY SECRET AGE
grafana True grafana-tls 13m
root@pi-control:~# kubectl -n monitoring get secrets grafana-tls -ojsonpath="{.data['tls.crt']}" | base64 -d | openssl x509 -issuer -noout
issuer=CN = Fake LE Intermediate X1Aan ku soo laabano Grafana. Waxaan u baahan doonaa inaan wax yar hagaajino siideynteeda Helm annagoo bedelayna dejinta TLS si ay ugu dhigmaan shahaadada la soo saaray.
Si tan loo sameeyo, soo deji jaantuska, ka beddel oo ka cusboonaysii tusaha deegaanka:
helm pull --untar stable/grafana Tafatirka faylka grafana/values.yaml Halbeegyada TLS:
tls:
- secretName: grafana-tls
hosts:
- grafana.home.pi Halkan waxaad isla markiiba u habeyn kartaa Prometheus-ka la rakibay sida datasource:
datasources:
datasources.yaml:
apiVersion: 1
datasources:
- name: Prometheus
type: prometheus
url: http://prometheus-server:80
access: proxy
isDefault: trueHadda waxaan ka cusboonaysiinnay jaantuska Grafana hagaha maxalliga ah:
helm upgrade grafana --namespace monitoring ./grafana --set ingress.enabled=true --set ingress.hosts={"grafana.home.pi"} Hubinta waxa ku jira gudaha grafana dekedda 443 ayaa lagu daray oo waxaa jira marin loo maro HTTPS:
root@pi-control:~# kubectl -n monitoring get ing grafana
NAME CLASS HOSTS ADDRESS PORTS AGE
grafana <none> grafana.home.pi 192.168.88.31 80, 443 63m
root@pi-control:~# curl -kI https://grafana.home.pi
HTTP/2 302
server: nginx/1.19.1
date: Tue, 28 Jul 2020 19:01:31 GMT
content-type: text/html; charset=utf-8
cache-control: no-cache
expires: -1
location: /login
pragma: no-cache
set-cookie: redirect_to=%2F; Path=/; HttpOnly; SameSite=Lax
x-frame-options: deny
strict-transport-security: max-age=15724800; includeSubDomainsSi loo muujiyo Grafana ficil ahaan, waad soo dejisan kartaa oo ku dari kartaa . Tani waa sida ay u egtahay:

Waxaan sidoo kale ku talinayaa in lagu daro dashboard loogu talagalay dhoofiyaha noodhka: waxay si faahfaahsan u muujin doontaa waxa ku dhacaya "raspberries" (loader CPU, xusuusta, shabakada, isticmaalka diskka, iwm.).
Intaa ka dib waxaan qabaa taas kooxdu waxay diyaar u tahay inay aqbasho oo ay qabato codsiyada!
Fiiro gaar ah oo ku saabsan shirka
Waxaa jira ugu yaraan laba ikhtiyaar oo loogu talagalay dhisidda codsiyada dhismaha ARM. Marka hore, waxaad ku dhisi kartaa qalabka ARM. Si kastaba ha ahaatee, ka dib markii aan eegay tuurista hadda ee laba Raspberry Pis, waxaan ogaaday in aanay ka badbaadi doonin kulanka midkood. Sidaa darteed, waxaan dalbaday naftayda Raspberry Pi 4 cusub (waa aad ka awood badan waxayna leedahay illaa 4 GB oo xusuusta ah) - Waxaan qorsheynayaa inaan ku dhiso.
Doorashada labaad waa in la dhiso sawirka Docker-ka badan ee mashiinka ka xoog badan. Tan waxaa jira . Haddii codsigu ku qoran yahay luqad la soo ururiyey, markaa isku-dubbaridka ARM ayaa loo baahan doonaa. Ma sifayn doono dhammaan habaynta waddadan, sababtoo ah... Tani waxay u baahan doontaa maqaal gaar ah. Marka la hirgeliyo habkan, waxaa suurtagal ah in la gaaro sawirro "caalami ah": Docker oo ku shaqeeya mashiinka ARM ayaa laftiisa si toos ah u soo dejisan doona sawirka u dhigma dhismaha.
gunaanad
Tijaabadu waxay dhaaftay dhammaan filashooyinka: [ugu yaraan] "vanilla" Kubernetes oo leh saldhigga lagama maarmaanka ah ayaa ku faraxsan ARM, oo kaliya dhowr nuances ayaa la soo baxay qaabeynta.
Raspberry Pi 3B+ laftoodu waxay ku hayaan culayska CPU, laakiin kaadhadhkooda SD waa cilad cad. Asxaabtu waxay soo jeediyeen in noocyada qaarkood ay suurtagal tahay in laga soo bilaabo USB, halkaas oo aad ku xiri karto SSD: markaa waxay u badan tahay in xaaladdu ay fiicnaan doonto.
Waa kuwan tusaale culeyska CPU marka la rakibayo Grafana:

Tijaabooyin iyo "isku day", fikradeyda, kooxda Kubernetes ee "raspberries" waxay soo gudbisaa dareenka hawlgalka si ka fiican isla Minikube, sababtoo ah dhammaan qaybaha kooxda ayaa la rakibay oo u shaqeeya "sida qof weyn".
Mustaqbalka, waxaa jira fikrad ah in lagu daro kooxda dhammaan wareegga CI/CD, oo lagu hirgeliyay gebi ahaanba Raspberry Pi. Waxaan sidoo kale ku farxi doonaa haddii qof la wadaago khibradooda ku saabsan dejinta K8s ee AWS Gravitons.
PS Haa, "wax-soo-saar" ayaa laga yaabaa inay ka dhowaato sidii aan moodayay:

PPS
Sidoo kale ka akhri boggayaga:
- «".
Source: www.habr.com
