
Hiljuti teatas ĂŒks tuntud ettevĂ”te, et viib oma sĂŒlearvutite seeria ĂŒle ARM-arhitektuurile. Seda uudist kuuldes meenus mulle, et kui jĂ€lle vaatasin AWS-i EC2 hindu, siis mĂ€rkasin Gravitoniid, mille hinnad olid tĂ”eliselt ahvatlevad. Loomulikult oli aga pĂ”hikĂŒsimus, et need on ARM. Siis ei tulnud mul ĂŒldse pĂ€he, et ARM on tĂ”eliselt tĂ”sineâŠ
Minu jaoks oli see arhitektuur alati seotud mobiilsete seadmete ja muude IoT-vidinatega. âTĂ”elisedâ serverid ARM-is tundusid kuidagi ebatavalised, isegi hirmutavad⊠Siiski, uus mĂ”te jĂ€i mulle pĂ€he kummitama, seega otsustasin ĂŒhel nĂ€dalavahetusel uurida, mida tĂ€pselt saab tĂ€na ARM-il kĂ€ivitada. Ja selleks tahtsin alustada millegagi tuttavast â Kubernetes'e klasstrist. Ja mitte lihtsalt mĂ”nest âklastristâ, vaid kĂ”ik pidi olema tĂ”siseltvĂ”etav, et see oleks maksimaalselt sarnane sellele, kuidas ma olen harjunud seda nĂ€gema tootmises.
Minu plaani kohaselt peaks klaster olema ligipÀÀsetav Internetis, seal peaks töötama veebirakendus ja olema vĂ€hemalt ĂŒks seire. Selle idee elluviimiseks on vajalik paar (vĂ”i rohkem) Raspberry Pi vĂ€hemalt mudelist 3B+. Eksperimentideks sobiks ka AWS, kuid mind huvitasid just «maliinid» (mis seisis niisama). Seega loome neile Kubernetes klastriga koos Ingress, Prometheus ja Grafana.
«Maliinide» ettevalmistamine
OpsĂŒsteemi ja SSH installimine
OpsĂŒsteemi valimisel ei viibinud ma palju: lihtsalt vĂ”tsin kĂ”ige vĂ€rskema Raspberry Pi OS Lite koos . Seal on saadaval , kĂ”ik toimingud tuleb teha kĂ”ikidel tulevase klastrite sĂ”lmedel. Edasi tuleb teha jĂ€rgmised toimingud (samuti kĂ”ikidel sĂ”lmedel).
Monitori ja klaviatuuri ĂŒhendamisel tuleb eelnevalt seadistada vĂ”rk ja SSH:
- Klastri tööks peab pÔhiklosseril olema kindlasti staatiline IP-aadress, töötluspunktidel - vastavalt soovile. Mina eelistasin igal pool staatilisi aadresse seadistamise mugavuse nimel.
- Staatilist aadressi saab konfigureerida opsĂŒsteemis (failis
/etc/dhcpcd.confon sobib nĂ€ide) vĂ”i tĂ€nu lease fikseerimisele DHCP-serveris, mida kasutatakse (minu puhul â kodus) ruuteris. - ssh-server lĂŒlitatakse lihtsalt sisse raspi-configis (liidese valikud â ssh).
PĂ€rast seda saab juba sisse logida SSH kaudu (vaikimisi on kasutajanimi â pi, ja parool â raspberry vĂ”i see, millele see on muutunud) ja jĂ€tkata seadistustega.
Muud seadistused
- Seadistame hostinime. Minu nÀites kasutatakse
pi-controljapi-worker. - Kontrollime, et failisĂŒsteem on laiendatud kogu ketas (
df -h /). Vajadusel saab seda laiendada raspi-configi abil. - Muudame vaikimisi kasutaja parooli raspi-configis.
- Keen muutame swap-faili vÀlja (see on Kubernetes'e nÔue; kui teid huvitavad detailid, vaadake ):
dphys-swapfile swapoff systemctl disable dphys-swapfile - Uuendame paketid uusimatele versioonidele:
apt-get update && apt-get dist-upgrade -y - Installeerime Dockeri ja tÀiendavad paketid:
apt-get install -y docker docker.io apt-transport-https curl bridge-utils iptables-persistentInstalleerimisel
iptables-persistenton vajalik iptables'i seadistused salvestada ipv4 jaoks, ja faili/etc/iptables/rules.v4â lisada reeglid kettasseFORWARD, 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 - Alles jÀÀb vaid restartida.
NĂŒĂŒd on kĂ”ik valmis Kubernetes'e klastri installimiseks.
Kubernetes'e installatsioon
Sel etapil olen spetsiaalselt lisanud kÔik oma ja meie ettevÔtte automatiseerimise rakendamise ja K8s klustrierimise arendused. Selle asemel kasutame ametlikku dokumentatsiooni saidilt (veidi tÀiendatud kommentaaride ja kokkuvÔtetega).
Lisame Kubernetes'i reposi:
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 updateEdasi dokumendis soovitatakse installida CRI (container runtime interface). Kuna Docker on juba installitud, liigume edasi ja installime pÔhikomponendid:
sudo apt-get install -y kubelet kubeadm kubectl kubernetes-cni PÔhikomponentide installimise etapis lisasin kohe kubernetes-cni, mis on vajalik klusteri tööks. Siin on oluline punkt: pakett kubernetes-cni mingil pÔhjusel ei loo vaikimisi kausta CNI-liideste seadistamiseks, seega pidin selle kÀsitsi looma:
mkdir -p /etc/cni/net.dNetwork-bÀkendi tööks, millest rÀÀgitakse allpool, on vajalik CNI plugina tÀiendav installimine. Valisin tuttava ja arusaadava plugina portmap (tÀielik nimekiri on nÀhtav punktis ):
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/ ./portmapKubernetesi seadistamine
Control plane'i sÔlm
Klastri installimine on ĂŒsna lihtne. Protsessi kiirendamiseks ja selle kontrollimiseks, et Kubernetesi pildid on kergesti saadaval, vĂ”ite eelnevalt kĂ€ivitada jĂ€rgmise kĂ€su:
kubeadm config images pullNĂŒĂŒd teeme installatsiooni â initsialiseerime klastris control plane'i:
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 ega olemasolevate vĂ”rkudega kattuda.
LÔpus kuuleme sÔnumit, et kÔik on hÀsti, ja antakse ka juhised, kuidas liita tööseisundid control plane'iga:
Teie Kubernetes juhtimislennuk on edukalt initsialiseeritud!
Klastri kasutamiseks peate tavalise 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 kasutusele vĂ”tma 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 suvalise arvu juhtimislennuki sĂ”lmi, kĂ€ivitades jĂ€rgmise kĂ€su igaĂŒhel juurena:
kubeadm join 192.168.88.30:6443 --token a485vl.xjgvzzr2g0xbtbs4
--discovery-token-ca-cert-hash sha256:9da6b05aaa5364a9ec59adcc67b3988b9c1b94c15e81300560220acb1779b050
--control-plane --certificate-key 72a3c0a14c627d6d7fdade1f4c8d7a41b0fac31b1faf0d8fdf9678d74d7d2403
Palun pidage meeles, et sertifikaadi vÔti annab juurdepÀÀsu klastrite tundlikule teabele, hoidke seda saladuses!
Kaitseks kustutatakse ĂŒleslaaditud sertifikaadid kahe tunni pĂ€rast; Kui vajalik, saate kasutada
"kubeadm init phase upload-certs --upload-certs" sertifikaatide uuesti laadimiseks.
SeejĂ€rel saate ĂŒhendada suvalise arvu töötlussĂ”lmi, kĂ€ivitades igaĂŒhel juurena jĂ€rgmise kĂ€su:
kubeadm join 192.168.88.30:6443 --token a485vl.xjgvzzr2g0xbtbs4
--discovery-token-ca-cert-hash sha256:9da6b05aaa5364a9ec59adcc67b3988b9c1b94c15e81300560220acb1779b050Teeme soovitused konfi lisamiseks kasutajale. Samuti soovitan kohe lisada kubectl jaoks automaatset tÀiendamist:
kubectl completion bash > ~/.kube/completion.bash.inc
printf "
# Kubectl shell completion
source '$HOME/.kube/completion.bash.inc'
" >> $HOME/.bash_profile
source $HOME/.bash_profileSelles etapis on juba vÔimalik nÀha klastris esimest sÔlme (kuigi see pole veel valmis):
root@pi-control:~# kubectl get no
NIMED OLEK ROLLID VANUS VERSIOON
pi-control NotReady master 29s v1.18.6VÔrgu konfiguratsioon
Edasi, nagu mainitud pĂ€rast installimist, on vaja seadistada vĂ”rk klastrisse. Dokumentatsioon pakub valikuid Calico, Cilium, contiv-vpp, Kube-router ja Weave Net... Siin ma kaldusin kĂ”rvale ametlikest juhistest ja valisin endale tuttavama ja arusaadavama variandi: host-gw reĆŸiimis (rohkem saadaval olevate taustade kohta vt ).
Selle installimine klastrisse on ĂŒsna lihtne. Esiteks - laadige alla manifestid:
wget https://raw.githubusercontent.com/coreos/flannel/master/Documentation/kube-flannel.yml SeejĂ€rel muudame seadetes tĂŒĂŒbi vxlan jĂ€rgnevaga host-gw:
sed -i 's/vxlan/host-gw/' kube-flannel.yml... ja pod'ide alamvÔrk - vaikimisi vÀÀrtusest sellele, mis on mÀÀratud 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 lÀheb esimene K8s sÔlm olekusse Valmis:
NIMED OLEK ROLLID VANUS VERSIOON
pi-control Valmis master 2m v1.18.6Töötava sÔlme lisamine
NĂŒĂŒd saab lisada töötaja. Selleks tuleb pĂ€rast Kubernetes'i installimist eespool kirjeldatud stsenaariumi jĂ€rgi lihtsalt tĂ€ita eelnevalt saadud kĂ€sk:
kubeadm join 192.168.88.30:6443 --token a485vl.xjgvzzr2g0xbtbs4
--discovery-token-ca-cert-hash sha256:9da6b05aaa5364a9ec59adcc67b3988b9c1b94c15e81300560220acb1779b050Selle vÔib lugeda klastriks valmis:
root@pi-control:~# kubectl get no
NIMI OLEK ROLLID VANUS VERSIOON
pi-control Valmis master 28m v1.18.6
pi-worker Valmis 2m8s v1.18.6Mul oli kĂ€epĂ€rast ainult kaks Raspberry Pi, nii et mulle ei meeldinud ĂŒks neist ainult control plane'ile anda. SeetĂ”ttu eemaldasin automaatselt mÀÀratud taandi sĂ”lme pi-control, kĂ€ivitades:
root@pi-control:~# kubectl edit node pi-control⊠ja kustutasin read:
- effect: NoSchedule
key: node-role.kubernetes.io/masterKlastri vajalik minimaalne tÀitmine
Esiteks vajame Helm. Muidugi, saab kĂ”ik teha ka ilma selleta, kuid Helm vĂ”imaldab mÀÀrata teatud komponente tĂ€iesti ilma failide muutmiseta. Ja tegelikult on see lihtsalt binaarfail, mis "leiba ei kĂŒsi".
Nii et, lÀheme docs/installatsiooni sektsiooni ja tÀidame sealt selle kÀsu:
curl -s https://raw.githubusercontent.com/helm/helm/master/scripts/get-helm-3 | bashPĂ€rast seda lisame chartide reposi:
helm repo add stable https://kubernetes-charts.storage.googleapis.com/NĂŒĂŒd paigaldame infrastruktuuri komponente vastavalt kavandatule:
- Ingress controller;
- Prometheus;
- Grafana;
- cert-manager.
Ingress controller
Esimene komponent â Ingress controller â on seda ĂŒsna lihtne seadistada ja see on «karbist» valmis kasutamiseks. Selleks piisab, kui minna ja kĂ€ivitada sealt installimiskĂ€sk:
kubectl apply -f https://raw.githubusercontent.com/kubernetes/ingress-nginx/controller-v0.34.1/deploy/static/provider/baremetal/deploy.yamlKuid sel hetkel hakkas «maliin» pingutama ja IOPS-i vastu seisma. Asi on selles, et koos Ingress-kontrolleriga installitakse suur hulk ressursse, tehtakse palju API-pĂ€ringuid ja seega kirjutatakse palju andmeid etcd-sse. ĂhesĂ”naga, kas 10. klassi mĂ€lukaart ei ole eriti efektiivne vĂ”i SD-kaartide maht ei piisa sellise koormuse jaoks. KĂŒll aga pĂ€rast viit minutit kĂ”ik kĂ€ivitus.
Loodi namespace ja sinna tekkis kontroller koos kogu vajalikuga:
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 repo'st.
Leiame Prometheus, loome namespace ja installime 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: ĂŒhte Prometheuse andmete jaoks ja teist AlertManageri andmete jaoks. Kuna klastris ei ole loodud storage class'i, ei tellita kettaid ja pod'id ei kĂ€ivitu. Bare metal'ite Kubernetes'i installatsioonide puhul kasutame tavaliselt Ceph rbd, kuid Raspberry Pi puhul on see ilmselge ĂŒlemÀÀrasus.
SeetĂ”ttu loome lihtsa kohalikku salvestust hostpath'il. PV (persistent volume) manifestid prometheus-server'i ja prometheus-alertmanager'i jaoks on ĂŒhendatud failis prometheus-pv.yaml ĂŒhes . PV jaoks tuleb ette luua kataloog soovitud sĂ”lmes, millega tahame Prometheust siduda: nĂ€ites on kirjeldatud nodeAffinity hostname jĂ€rgi pi-worker ja seal on loodud kataloogid. /data/localstorage/prometheus-server ja /data/localstorage/prometheus-alertmanager.
Laadime (kloneerime) manifesti ja lisame Kubernetesesse:
kubectl create -f prometheus-pv.yamlSellel etapil kohtasin esmakordselt ARM-arkitektuuri probleemi. Kube-state-metrics, mis installitakse vaikimisi Prometheuse charts, keeldus kÀivitumisest. 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 kasutab CoreOS projekti pilti, mis ei ole ARM-i jaoks koostatav:
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 guugeldama ja leidma nÀiteks . Selleks kasuta uuendame vÀlja, mÀrkides Àra, 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Àimas:
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
Kuidas graafikute ja dashboardide jaoks paigaldada Grafana:
helm install grafana --namespace monitoring stable/grafana --set ingress.enabled=true --set ingress.hosts={"grafana.home.pi"}VÀljundi lÔpus nÀitame, kuidas saada autentimiskoode:
kubectl get secret --namespace monitoring grafana -o jsonpath="{.data.admin-password}" | base64 --decode ; echoSertifikaatide tellimiseks paigaldame cert-manager. Selle paigaldamiseks saame juhinduda , mis pakub vastavaid kÀske Helm'i 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=trueIseendale allkirjastatud sertifikaatide jaoks on kodus selleks tĂ€iesti piisav. Kui aga soovite saada sama Letâs Encrypt, tuleb seadistada ka cluster issuer. TĂ€iendava teabe leiate meie artiklist â».
Olen ise valiku teinud dokumentatsioonis olevast , otsustades, et staging-versioon LE piisab. Muudame nÀites e-posti, salvestame faili ja lisame klastrisse ():
kubectl create -f cert-manager-cluster-issuer.yamlNĂŒĂŒd saab tellida sertifikaadi, nĂ€iteks Grafana jaoks. Selleks on vajalik domeen ja juurdepÀÀs klastrisse vĂ€ljastpoolt. Domeen mul on, ja olen seadistanud liikluse suunamise portidele 80 ja 443 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 23d80. port suunisesed ĂŒleviakse 31303 ja 443 â 30498. (Portid genereeritakse juhuslikult, seega vĂ”ivad need olla teised.)
Siin on nÀide sertifikaadist ():
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-stagingLisame selle klastrisse:
kubectl create -f cert-manager-grafana-certificate.yamlPĂ€rast seda ilmub Ingress ressurss, 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 valideerimise lĂ€bimist nĂ€eme, et ressurss certificate on valmis, ja ĂŒlaltoodud salajas grafana-tls â sertifikaat ja vĂ”ti. VĂ”ime kohe kontrollida, kes sertifikaadi vĂ€lja andis:
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 Grafanasse. Peame natuke muutma tema Helm-rakendust, muutes TLS-i seadeid vastavalt loodud sertifikaadile.
Selleks laadime charti alla, muudame ja vÀrskendame kohalikust kataloogist:
helm pull --untar stable/grafana Redigeerime failis grafana/values.yaml TLS-i seaded:
tls:
- secretName: grafana-tls
hosts:
- grafana.home.pi Siin on otse vÔimalik seadistada installitud Prometheust andmeallikaks:
datasources:
datasources.yaml:
apiVersion: 1
datasources:
- name: Prometheus
type: prometheus
url: http://prometheus-server:80
access: proxy
isDefault: trueNĂŒĂŒd vĂ€rskendame kohalikust kataloogist Grafana charti:
helm upgrade grafana --namespace monitoring ./grafana --set ingress.enabled=true --set ingress.hosts={"grafana.home.pi"} Kontrollime, et Ingress grafana oleks lisatud 443 port ja oleks juurdepÀÀs HTTPS-i kaudu:
root@pi-control:~# kubectl -n monitoring get ing grafana
NAME CLASS HOSTS ADDRESS PORTS AGE
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 toimimise demonstreerimiseks saab alla laadida ja lisada Nii see vÀlja nÀeb:

Soovitan ka lisada node exporter'i dashboardi: see nĂ€itab ĂŒksikasjalikult, mis toimub 'maliinidega' (CPU koormus, mĂ€lu, vĂ”rgu, ketta ja muu kasutus).
PÀrast seda usun, et klaster on valmis rakenduste vastuvÔtmiseks ja kÀitamiseks!
MĂ€rkus koostamise kohta
Rakenduste koostamiseks ARM-architektuuri alla on vĂ€hemalt kaks varianti. Esiteks, saab koostada ARM-seadmest. Kuid vaadates kahe Raspberry Pi praegust kasutust, sain aru, et nad ei peaks isegi koostamist vastu. Seega tellisin endale uue Raspberry Pi 4 (see on jĂ”ulisem ja seal on lausa 4 GB mĂ€lu) â plaanin sellel koostada.
Teine vĂ”imalus on multicontainer Docker'i pildi koostamine vĂ”imsamal masinal. Selleks on . Kui rakendus on koostatud keeles, mis vajab kompileerimist, siis on vajalik kross-kompileerimine ARM-i jaoks. Ma ei hakka kĂ”iki seadistusi sellise tee jaoks kirjeldama, kuna see tooks kaasa eraldi artikli. Selle lĂ€henemise rakendamisel on vĂ”imalik saavutada "ĂŒldised" pildid: Docker, mis töötab ARM-masinal, laadib automaatselt vastava arhitektuuri pildi.
KokkuvÔte
Tehtud katse ĂŒletas kĂ”ik mu ootused: [kuni] "vanilje" Kubernetes vajaliku baasi korral tunneb end ARM-il ĂŒsna hĂ€sti, ja selle seadistamise kĂ€igus tekkis vaid paar nĂŒanssi.
Isegi Raspberry Pi 3B+ peavad CPU koormust, kuid nende SD-kaardid on selge pudelikael. Kolllegid ĂŒtlesid, et mĂ”nedes versioonides on vĂ”imalus kĂ€ivituda USB-st, kuhu saab ĂŒhendada SSD: siis on tĂ”enĂ€oliselt olukord parem.
Siin on nÀide CPU koormusest Grafana installimisel:

Eksperimentide ja âkatsetamiseksâ arvan, et Kubernetes-klaster âmalinatelâ edastab tunde eksploateerimisest tunduvalt paremini kui sama Minikube, kuna kĂ”ik klaseeri komponendid seadistatakse ja töötavad âtĂ€iskasvanulikultâ.
Tulevikus on plaanis lisada klastrile kogu CI/CD tsĂŒkkel, mis on tĂ€ielikult Rakvere Pi peal teostatud. Samuti oleksin tĂ€nulik, kui keegi jagaks oma kogemusi K8s seadistamise osas AWS Graviton'itel.
P.S. Jah, "production" vÔib olla lÀhemal, kui ma arvasin:

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