
Paar nĂ€dalat tagasi teatas ĂŒks tuntud ettevĂ”te, et nad viivad oma sĂŒlearvutite tooteportfelli ARM-arkitektuurile. Seda uudist kuuldes meenutasin, et kui jĂ€llegi AWS-i EC2 hindu sirvisin, siis mĂ€rkasin Graviton'e, mille hind oli tĂ”eliselt ahvatlev. Probleem oli muidugi selles, et see on ARM. Siis polnud mul veel pĂ€he tulnud, et ARM on tegelikult ĂŒsna tĂ”sine...
Minu jaoks on see arhitektuur alati olnud mobiilsete ja teiste IoT-vidinate pĂ€rusmaa. âTĂ”elisedâ serverid ARM-il - see tundus kuidagi ebatavaline, isegi kummaline... Kuid uus mĂ”te jĂ€i mu pĂ€he, seega otsustasin ĂŒhel nĂ€dalavahetusel uurida, mida tĂ€na ARM-il tĂ”eliselt kĂ€ivitada saab. Otsustasin alustada lĂ€hedasest ja tuntud - Kubernetes klastrist. Ja mitte lihtsalt mingist tinglikust âklastristâ, vaid kogu âpĂ€risâ moodi, et see oleks vĂ”imalikult sarnane sellele, millega olen harjunud tootmises.
Minu plaanis peaks klaster olema Internetis ligipÀÀsetav, seal peaks tööle hakkama mĂ”ni veebirakendus ja seal peab olema vĂ€hemalt ka monitooring. Selle idee elluviimiseks peab olema paar (vĂ”i rohkem) Raspberry Pi-d, mis ei ole madalamad mudelist 3B+. Katseteks vĂ”iks platvormiks olla ka AWS, kuid mind huvitavad just âmaliinidâ (mis nagunii seisavad tegemata). Nii et me seadistame nendele Kubernetes klastriga, mis sisaldab Ingressi, Prometheust ja Grafanat.
âMaliinideâ ettevalmistamine
OS-i ja SSH installimine
OperatsioonisĂŒsteemi valimisega ma vĂ€ga vaeva ei nĂ€inud: lihtsalt vĂ”tsin kĂ”ige vĂ€rskema Raspberry Pi OS Lite, milles on . Seal on ka saadaval , mida tuleb jĂ€rgida kĂ”ikides tulevase klastrite sĂ”lmedes. Edasi peame tegelema jĂ€rgmiste toimingutega (samuti kĂ”ikides sĂ”lmedes).
Monitori ja klaviatuuri ĂŒhendamisel tuleb eelnevalt seadistada vĂ”rk ja SSH:
- Klastri töötamiseks peab meistris olema kindlasti staatiline IP-aadress, töötavates sÔlmedes - vastavalt soovile. Mina eelistasin kÔikjal staatilisi aadresse, et seadistamine oleks mugavam.
- Staatilise aadressi saab seadistada operatsioonisĂŒsteemis (failis
/etc/dhcpcd.confon sobiv nĂ€ide) vĂ”i fikseerides lease'i DHCP-serveris (minu juhul - kodus) ruuteris. - ssh-serveri saab lihtsalt sisse lĂŒlitada raspi-configis (interfacing options â ssh).
PÀrast seda saab juba SSH-sse sisse logida (vaikimisi on kasutajanimi - pi, ja parool - raspberry vÔi see, mille peale vahetati) ja jÀtkata seadistamist.
Teised seadistused
- Seadame hostinime. Minu nÀites kasutatakse
pi-controljapi-worker. - Kontrollime, et failisĂŒsteem oleks laienenud kogu kettale (
df -h /). Vajadusel saab seda laiendada, kasutades raspi-config'i. - Muudame vaikimisi kasutaja parooli raspi-config'is.
- KĂŒljendame swap-faili vĂ€lja (see on Kubernetes'e nĂ”ue; kui teid huvitavad detailid selle teema kohta, vt. ):
dphys-swapfile swapoff systemctl disable dphys-swapfile - Uuendame paketid uusimale versioonile:
apt-get update && apt-get dist-upgrade -y - Paigaldame Dockeri ja lisapaketid:
apt-get install -y docker docker.io apt-transport-https curl bridge-utils iptables-persistentPaigaldamisel
iptables-persistentpeame salvestama iptables'i seadistused ipv4 jaoks, ja faili/etc/iptables/rules.v4â lisama reeglid ahelasseFORWARD, nii:# 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 - JĂ€etakse vaid taaskĂ€ivitamine.
NĂŒĂŒd on kĂ”ik valmis Kubernetes'e klastri paigaldamiseks.
Kubernetes'e paigaldamine
Selles etapis jĂ€tsin teadlikult kĂ”rvale kĂ”ik minu ja meie ettevĂ”tte automatiseerimise arendused Kubernetes'e klastri paigaldamiseks ja seadistamiseks. Selle asemel kasutame ametlikku dokumentatsiooni, (veidi tĂ€iendatud kommentaaride ja lĂŒhenditega).
Lisame Kubernetes'e hoidla:
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 updateJÀtkame dokumentatsioonis soovitatud CRI (container runtime interface) paigaldamisega. Kuna Docker on juba paigaldatud, liigume edasi ja paigaldame pÔhikomponendid:
sudo apt-get install -y kubelet kubeadm kubectl kubernetes-cni PÔhikomponentide paigaldamise etapil lisasin kohe kubernetes-cni, mis on vajalik klastri tööks. Oluline mÀrk: pakett kubernetes-cni mingitel pÔhjustel ei loo vaikimisi kausta CNI-liideste seadistuste jaoks, seega pidin selle kÀsitsi looma:
mkdir -p /etc/cni/net.dNetwork-bÀkkendi tööks, millest rÀÀgime allpool, on vajalik CNI lisandi paigaldamine. Valisin tuttava ja arusaadava lisandi portmap (tÀielikku nimekirja vt. ):
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/ ./portmapKubernetes'e seadistamine
Kontrollplaani sÔlm
Klastri paigaldamine toimub ĂŒsna lihtsalt. Selle protsessi kiirendamiseks ja kontrollimiseks, et Kubernetes'e pildid on kĂ€tte saadavad, vĂ”ib eelnevalt teostada:
kubeadm config images pullNĂŒĂŒd teeme ise paigalduse â initsialiseerime klastri kontrollplaani:
kubeadm init --pod-network-cidr=10.1.0.0/16 --service-cidr=10.2.0.0/16 --upload-certsPange tĂ€hele, et teenuste ja pod'ide alavĂ”rgud ei tohi ĂŒksteisega ning olemasolevate vĂ”rkudega kattuda.
LĂ”pus nĂ€idatakse meile sĂ”numit, et kĂ”ik on hĂ€sti, ja antakse ka nĂ”u, kuidas ĂŒhendada töökohti juhtimislennukiga:
Teie Kubernetes'i juhtimislennuk on edukalt algatatud!
Klastri kasutamiseks peate regulaarse kasutajana kÀivitama jÀrgmised kÀsud:
mkdir -p $HOME/.kube
sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config
sudo chown $(id -u):$(id -g) $HOME/.kube/config
NĂŒĂŒd peaksite klastrisse juurutama pod-vĂ”rgu.
KĂ€ivitage "kubectl apply -f [podnetwork].yaml" ĂŒhe valiku abil, mis on loetletud aadressil:
https://kubernetes.io/docs/concepts/cluster-administration/addons/
NĂŒĂŒd saate ĂŒhendada mis tahes arvu juhtimislennukeid, kĂ€ivitades igaĂŒhe peal jĂ€rgmise kĂ€su:
kubeadm join 192.168.88.30:6443 --token a485vl.xjgvzzr2g0xbtbs4
--discovery-token-ca-cert-hash sha256:9da6b05aaa5364a9ec59adcc67b3988b9c1b94c15e81300560220acb1779b050
--contrl-plane --certificate-key 72a3c0a14c627d6d7fdade1f4c8d7a41b0fac31b1faf0d8fdf9678d74d7d2403
Palun pange tÀhele, et sertifikaadi vÔtme abil pÀÀsete juurde klastri tundlikule teabele, hoidke see saladuses!
Kaitseks kustutatakse ĂŒleslaaditud sertifikaadid kahe tunni pĂ€rast; Vajadusel vĂ”ite kasutada
"kubeadm init phase upload-certs --upload-certs" sertifikaatide uuesti laadimiseks hiljem.
SeejĂ€rel vĂ”ite ĂŒhendada mis tahes arvu töökohti, kĂ€ivitades igaĂŒhe peal jĂ€rgmise kĂ€su:
kubeadm join 192.168.88.30:6443 --token a485vl.xjgvzzr2g0xbtbs4
--discovery-token-ca-cert-hash sha256:9da6b05aaa5364a9ec59adcc67b3988b9c1b94c15e81300560220acb1779b050JÀrgime soovitusi kasutaja konfigureerimise lisamiseks. Lisaks soovitan kohe lisada automaatse tÀiendamise kubectl jaoks:
kubectl completion bash > ~/ .kube / completion.bash.inc
printf "
# Kubectl shell automaatne tÀiendamine
source '$HOME/ .kube / completion.bash.inc'
" >> $HOME/.bash_profile
source $HOME/ .bash_profileSellel etapil on juba vÔimalik nÀha esimest sÔlme klastris (kuigi see pole veel valmis):
root@pi-control:~# kubectl get no
NIMI OLEK ROLLID VANUS VERSION
pi-control NotReady master 29s v1.18.6VÔrgu konfigureerimine
SeejĂ€rel, nagu öeldi paigaldamise jĂ€rel, on vaja klastrisse vĂ”rgu installimist. Dokumentatsioon pakub valikut Calico, Cilium, contiv-vpp, Kube-router ja Weave Net... Siin kĂ”rvaldasin ametlikest juhenditest ja valisin enda jaoks tuttavama ja arusaadavama variandi: host-gw reĆŸiimis (lisainfot saadaval olevate tagaplaanide kohta vt ).
Klastrisse paigaldamine on ĂŒsna lihtne. Esiteks - laeme mĂ€rke:
wget https://raw.githubusercontent.com/coreos/flannel/master/Documentation/kube-flannel.yml SeejĂ€rel muudame seadistustes tĂŒĂŒbi vxlan . Tundub, et host-gw:
sed -i 's/vxlan/host-gw/' kube-flannel.ymlâŠja pod'ide alavĂ”rk â muuda vaikevÀÀrtust sellest, mis mÀÀrati klastrit algatades:
sed -i 's#10.244.0.0/16#10.1.0.0/16#' kube-flannel.ymlPĂ€rast seda loome ressursid:
kubectl create -f kube-flannel.yml Valmis! MÔne aja pÀrast muutub esimene K8s sÔlm olekusse Valmis:
NIMI OLEK ROLLID VANUS VERSION
pi-control Ready master 2m v1.18.6Töökoha sÔlme lisamine
NĂŒĂŒd saab lisada worker'i. Selleks tuleb pĂ€rast Kubernetes'i paigaldamist eelmises osas kirjeldatud stsenaariumi jĂ€rgi lihtsalt kĂ€ivitada varasemalt saadud kĂ€sk:
kubeadm join 192.168.88.30:6443 --token a485vl.xjgvzzr2g0xbtbs4
--discovery-token-ca-cert-hash sha256:9da6b05aaa5364a9ec59adcc67b3988b9c1b94c15e81300560220acb1779b050Sellega vÔib arvata, et klooster on valmis:
root@pi-control:~# kubectl get no
NAME STATUS ROLES AGE VERSION
pi-control Ready master 28m v1.18.6
pi-worker Ready 2m8s v1.18.6Mul oli kĂ€epĂ€rast vaid kaks Raspberry Pi, seega ei tahtnud ma ĂŒhte neist anda seda kontrollplaanile. SeetĂ”ttu eemaldasin automaatselt seadistatud taint'i sĂ”lmele pi-control, kĂ€ivitades:
root@pi-control:~# kubectl edit node pi-control⊠ja kustutades read:
- effect: NoSchedule
key: node-role.kubernetes.io/masterKlastri tÀitmine vajaliku miinimummiga
Esiteks vajame me Helm. Loomulikult on kÔike vÔimalik teha ka ilma selleta, kuid Helm vÔimaldab paigaldada mÔningaid komponente tÀpselt vastavalt oma soovile ilma failide muutmata. Ja tegelikult on see lihtsalt binaarfail, mis "leiba ei palu".
Nii et logime sisse ja lÀheme jaotisse docs/installation ning kÀivitame sealt kÀsu:
curl -s https://raw.githubusercontent.com/helm/helm/master/scripts/get-helm-3 | bashPĂ€rast seda lisame chartide hoidla:
helm repo add stable https://kubernetes-charts.storage.googleapis.com/NĂŒĂŒd paigaldame infrastruktuuri komponendid vastavalt plaanile:
- Ingress kontroller;
- Prometheus;
- Grafana;
- cert-manager.
Ingress kontroller
Esimene komponent â Ingress kontroller â paigaldatakse suhteliselt lihtsalt ja on "kastist vĂ€lja" kasutamiseks valmis. Selleks piisab, kui minna ja kĂ€ivitada sealt paigaldamiskĂ€sk:
kubectl apply -f https://raw.githubusercontent.com/kubernetes/ingress-nginx/controller-v0.34.1/deploy/static/provider/baremetal/deploy.yamlKuid sel hetkel hakkas "maliina" pingutama ja jÀÀma diskio IOPS-i taha. Asi on selles, et koos Ingress-kontrolleriga paigaldatakse suur hulk ressursse, esitatakse palju pĂ€ringuid API-le ja seega salvestatakse palju andmeid etcd-sse. ĂhesĂ”naga, kas 10. klassi mĂ€lukaart ei ole eriti jĂ”udne vĂ”i SD-kaarte on selle koormuse jaoks lihtsalt vĂ€he. Siiski, umbes 5 minuti pĂ€rast kĂ”ik kĂ€ivitus.
Loodi namespace ja sinna ilmus kontroller ja kÔik, mis tal vajalik oli:
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
JĂ€rgmised kaks komponenti on ĂŒsna lihtne installida Helm'i kaudu chart repository'st.
Leidke Prometheus, looge namespace ja installige see sinna:
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"}Vaikimisi tellib Prometheus 2 ketast: ĂŒhe Prometheuse andmete jaoks ja teise AlertManageri andmete jaoks. Kuna klastris pole loodud storage class'i, ei tellita kettaid ja pod'id ei kĂ€ivitu. Bare metal'i Kubernetes installatsioonide jaoks kasutame tavaliselt Ceph rbd, kuid Raspberry Pi puhul on see ilmselgelt liialdus.
SeetÔttu loome lihtsa kohaliku salvestuse hostpath'il. PV (persistent volume) mansiifid prometheus-server'i ja prometheus-alertmanager'i jaoks on koondatud failis prometheus-pv.yaml ja . PV jaoks vajalik kataloog tuleb enne valmis loo diskil, millele soovime Prometheust siduda: nÀites on mÀÀratud nodeAffinity hostname'i kaudu pi-worker ja sellel on loodud kataloogid /data/localstorage/prometheus-server ja /data/localstorage/prometheus-alertmanager.
Laadige (kloneerige) mansiif ja lisage see Kubernetesesse:
kubectl create -f prometheus-pv.yamlSellel etapil seisime esmakordselt silmitsi ARM-arhitektuuri probleemiga. Kube-state-metrics, mis installitakse vaikimisi Prometheuse chart'iga, keeldus tööle hakkamast. See andis vea:
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"Asi on selles, et kube-state-metrics'i jaoks kasutatakse CoreOS projekti pilti, mida ARM-i jaoks ei lÔhuta:
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.7Pidin veidi googeldama ja leidma nÀiteks . Selleks, et seda kasutada, uuendame vÀljaande, nÀidates, millist pilti kasutada kube-state-metrics'i jaoks:
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.6Kontrollime, et kÔik oleks kÀivitunud:
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 ja cert-manager
Graafikute ja dashboard'ide jaoks paigaldame Grafana:
helm install grafana --namespace monitoring stable/grafana --set ingress.enabled=true --set ingress.hosts={"grafana.home.pi"}LÔpus nÀidatakse meile, kuidas saada juurdepÀÀsuks parool:
kubectl get secret --namespace monitoring grafana -o jsonpath="{.data.admin-password}" | base64 --decode ; echoSertifikaatide tellimiseks paigaldame cert-manager. Selle paigaldamiseks pöördume , mis pakub vastavaid kÀske Helmi jaoks:
helm repo add jetstack https://charts.jetstack.io
helm install
cert-manager jetstack/cert-manager
--namespace cert-manager
--version v0.16.0
--set installCRDs=trueKoduses kasutuses isesigneeritud sertifikaatide jaoks on sellest tĂ€iesti piisav. Kui aga soovite saada sama Letâs Encrypt, tuleb seadistada ka cluster issuer. TĂ€iendavad ĂŒksikasjad leiate meie artiklist â».
Otsustasin peatuda dokumentatsioonis oleva nÀite variandi peal cert-manager-cluster-issuer.yaml):
NĂŒĂŒd saab tellida sertifikaadi, nĂ€iteks Grafana jaoks. Selleks on vajalik domeen ja juurdepÀÀs ĐșлаŃŃŃisse vĂ€ljastpoolt. Mul on domeen, ja olen seadistanud portide 80 ja 443 edastamise kodu ruuteris vastavalt loodud ingress-controllerâi teenusele:kubectl -n ingress-nginx get svc NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE ingress-nginx-controller NodePort 10.2.206.61 80:31303/TCP,443:30498/TCP 23d
80. port edastatakse sel juhul 31303-sse ja 443 30498-sse.(Pordid genereeritakse juhuslikult, seega on teil need teised.) Siin on nÀidis sertifikaadist (
cert-manager-grafana-certificate.yaml):
Lisame selle klastrisse:kubectl create -f cert-manager-grafana-certificate.yaml
PĂ€rast seda ilmub ressursse Ingress, mille kaudu toimub Letâs Encrypt'i valideerimine:root@pi-control:~# kubectl -n monitoring get ing NAME CLASS HOSTS ADDRESS PORTS AGE cm-acme-http-solver-rkf8l grafana.home.pi 192.168.88.31 80 72s grafana grafana.home.pi 192.168.88.31 80 6d17h prometheus-server prometheus.home.pi 192.168.88.31 80 8d
PĂ€rast valideerimisprotsessi nĂ€eme, et ressurss sertifikaat on valmis ja ĂŒlaltoodud salajasus grafana-tls on sertifikaat ja vĂ”ti. Saame kohe kontrollida, kes sertifikaadi vĂ€lja andis: â sertifikaat ja vĂ”ti. Saate kohe kontrollida, kes on sertifikaadi vĂ€lja andnud:
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 X1Naasime tagasi Grafana juurde. Meil on vaja veidi muuta tema Helm-vÀljalaskmist, kohandades TLS-i seadeid vastavalt loodud sertifikaadile.
Selleks laadime alla chart'i, muuda ja uuendame kohalikust kataloogist:
helm pull --untar stable/grafana Muudame failis grafana/values.yaml TLS-i seadeid:
tls:
- secretName: grafana-tls
hosts:
- grafana.home.pi Siin saab kohe mÀÀrata ka paigaldatud Prometheuse kui andmeallika:
datasources:
datasources.yaml:
apiVersion: 1
datasources:
- name: Prometheus
type: prometheus
url: http://prometheus-server:80
access: proxy
isDefault: trueNĂŒĂŒd uuendame kohalikust kataloogist Grafana chart'i:
helm upgrade grafana --namespace monitoring ./grafana --set ingress.enabled=true --set ingress.hosts={"grafana.home.pi"} Kontrollime, et Ingress grafana oleks lisatud 443 port ning HTTPS-ile juurdepÀÀs oleks olemas:
root@pi-control:~# kubectl -n monitoring get ing grafana
NIMI KLASS HOSTID AADRESS PORTID VANUS
grafana 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=; Path=/; HttpOnly; SameSite=Lax
x-frame-options: deny
strict-transport-security: max-age=15724800; includeSubDomainsGrafana tegevuse demonstreerimiseks saab alla laadida ja lisada . Nii see vÀlja nÀeb:

Soovitan ka lisada node exporter dashboard'i: see nĂ€itab ĂŒksikasjalikult, mis toimub «maliinidega» (CPU koormus, mĂ€lu, vĂ”rgu, ketta kasutus jne).
PÀrast seda arvan, et klaster on valmis rakenduste vastuvÔtmiseks ja kÀitamiseks!
MĂ€rkused kogumise kohta
Rakenduste koostamiseks ARM-arhitektuuril on vĂ€hemalt kaks vĂ”imalust. Esiteks, saab koostada ARM-seadmest. Kuid vaatamata kahe Raspberry Pi praegusele kasutusele, sain aru, et nad ei suuda isegi koostet taluda. SeetĂ”ttu tellisin endale uue Raspberry Pi 4 (see on tugevam ja selles on lausa 4 GB mĂ€lu) â plaanin sellel koostada.
Teine variant on koostada multiarhitektuuriline Docker-pilt vĂ”imsamal masinal. Selleks on olemas Kui rakendus on kompileeritav, on ARM-i jaoks vajalik ristkompileerimine. Kirjeldan kĂ”iki seadeid sellise tee kohta eraldi artiklis, sest see vĂ”taks liiga palju aega. Sellise lĂ€henemise rakendamisel on vĂ”imalik saavutada "ĂŒlikĂ”rgetasemel" kujutised: Docker, mis töötab ARM-masinal, laadib automaatselt alla arhitektuurile vastava kujutise.
KokkuvÔte
Tehtud katse ĂŒletas kĂ”ik minu ootused: [vĂ€hemalt] "vanilli" Kubernetes vajaliku andmebaasiga tunneb ARM-is end hĂ€sti ja selle seadistamisel tekkis vaid paar nĂŒanssi.
Raspberry Pi 3B+ esitab koormuse CPU-le, kuid nende SD-kaardid on selge pudelikael. Kollegid ĂŒtlesid, et mĂ”nedes versioonides on vĂ”imalik kĂ€ivituda USB-st, kuhu saab ĂŒhendada SSD: siis on olukord tĂ”enĂ€oliselt parem.
Siin on nÀide CPU koormusest Grafana installimisel:

Eksperimentide ja "katsetamiseks" arvan, et Kubernetes-klasstri kasutamine "maliinidel" toob rohkem reaalset kogemust kui sama Minikube, sest kÔik klasstri komponendid seadistatakse ja töötavad "professionaalselt".
Tulevikus on plaan lisada klasstrisse kogu CI/CD protsess, mis rakendatakse tÀielikult Raspberry Pi-l. Samuti oleksin rÔÔmus, kui keegi jagaks oma kogemusi K8s seadistamise kohta AWS Gravitonitel.
P.S. Jah, "produktion" vÔib olla lÀhemal, kui ma arvasin:

P.P.S.
Lugege ka meie blogist:
- «».
Allikas: habr.com
