Yhteenveto ja parhaat käytännöt
Koulutuksen yhteenveto, RKE2:n ylläpito, Rancherin hallinta, RBAC, resurssirajat, siivous ja Q&A.
Yhteenveto ja parhaat käytännöt
Tässä päätösosiossa kokoat yhteen koulutuksen opit, tutustut tuotannon parhaisiin käytäntöihin – RKE2:n ylläpitoon, Rancherin keskitettyyn hallintaan, RBAC-tietoturvan perusteisiin ja resurssirajoihin – ja lopuksi siivoat harjoitusresurssit. Osio päättyy vapaaseen kyselytuokioon.
1. Koulutuksen yhteenveto
Koulutuksen aikana kävit läpi Kuberneteksen perusteet käytännönläheisesti:
- Arkkitehtuuri – orkestrointi, deklaratiivinen malli ja sovittelusilmukka.
- Hallinta ja RKE2 – ohjaustaso, worker-solmut ja RKE2:n server/agent-rakenne.
- Verkko ja lisäosat – Service-tyypit, CoreDNS, CNI ja Ingress.
- Konfiguraatio ja tila – ConfigMapit, Secretit sekä PV/PVC/StorageClass.
- Paketinhallinta – Helm, Rancher Apps, Kustomize ja arjen työkalut.
Kaikki nämä hallitaan saman kube-apiserverin kautta – niin kubectl kuin Rancherkin.
2. RKE2:n päivitykset ja ylläpito
RKE2 on suunniteltu helposti ylläpidettäväksi:
- etcd-varmuuskopiot – RKE2 tekee automaattisia tilannevedoksia (snapshots). Varmista, että ne tallennetaan myös klusterin ulkopuolelle (esim. S3).
- Päivitykset – tehdään hallitusti solmu kerrallaan (rolling upgrade). Rancher voi hoitaa päivitykset keskitetysti.
- Solmujen huolto – ota solmu pois käytöstä turvallisesti ennen huoltoa:
# Estä uudet Podit solmulle ja siirrä olemassa olevat muualle
kubectl cordon <solmu>
kubectl drain <solmu> --ignore-daemonsets --delete-emptydir-data
# Palauta solmu käyttöön huollon jälkeen
kubectl uncordon <solmu>💡 Palautusharjoittelu: varmuuskopio on hyödyllinen vain, jos palautus on testattu. Harjoittele etcd-snapshotista palauttamista säännöllisesti.
3. Rancherin keskitetty hallinta
Rancher tuo useiden klustereiden hallinnan yhteen paikkaan:
- Monen klusterin hallinta – luo, tuo ja hallitse RKE2- ja muita klustereita.
- Projektit ja nimiavaruudet – ryhmittele nimiavaruudet projekteiksi ja hallitse käyttöoikeuksia projektitasolla.
- Käyttöoikeudet – Rancher liittää käyttäjät ja ryhmät klustereiden RBAC-rooleihin.
- Valvonta ja lokit – integroitu monitorointi (Prometheus/Grafana) ja lokien keruu.
- Fleet (GitOps) – jaa sovellukset ja konfiguraatiot monelle klusterille Gitistä.
4. Tietoturva: RBAC-perusteet
RBAC (Role-Based Access Control) määrittää, kuka saa tehdä mitä ja missä. Neljä peruskäsitettä:
- Role – joukko oikeuksia yhdessä nimiavaruudessa.
- ClusterRole – oikeudet koko klusterin tasolla.
- RoleBinding / ClusterRoleBinding – liittää roolin käyttäjälle, ryhmälle tai ServiceAccountille.
flowchart LR
U[Käyttäjä / ServiceAccount] --> RB[RoleBinding]
RB --> R[Role]
R --> P[Oikeudet:<br/>get, list, create, delete ...]Esimerkki: salli Podien lukeminen omassa nimiavaruudessa:
apiVersion: rbac.authorization.k8s.io/v1
kind: Role
metadata:
namespace: <oma-nimi>
name: pod-reader
rules:
- apiGroups: [""]
resources: ["pods"]
verbs: ["get", "list", "watch"]
---
apiVersion: rbac.authorization.k8s.io/v1
kind: RoleBinding
metadata:
name: read-pods
namespace: <oma-nimi>
subjects:
- kind: User
name: matti
apiGroup: rbac.authorization.k8s.io
roleRef:
kind: Role
name: pod-reader
apiGroup: rbac.authorization.k8s.io⚠️ Noudata pienimmän oikeuden periaatetta (least privilege): anna vain ne oikeudet, joita todella tarvitaan. Vältä
cluster-admin-oikeuksien jakamista.
5. Resurssirajat: requests ja limits
Jokaiselle kontille kannattaa määrittää resurssien pyynnöt ja rajat:
- requests – kuinka paljon CPU:ta/muistia kontti varaa vähintään. Scheduler käyttää tätä sijoituspäätökseen.
- limits – kova yläraja. Muistin ylitys johtaa kontin tappamiseen (OOMKilled), CPU:ta rajoitetaan (throttling).
resources:
requests:
cpu: "100m" # 0,1 CPU-ydintä
memory: "128Mi"
limits:
cpu: "500m"
memory: "256Mi"Nimiavaruustasolla rajoja voi valvoa:
- ResourceQuota – rajoittaa nimiavaruuden yhteenlaskettua resurssien käyttöä.
- LimitRange – asettaa oletus- ja maksimiarvot yksittäisille konteille.
💡 Ilman
requests- jalimits-arvoja yksi sovellus voi viedä koko solmun resurssit. Ne ovat tuotannon vakauden perusta.
6. Parhaat käytännöt (muistilista)
- Käytä omia nimiavaruuksia ja selkeitä labeleita resurssien ryhmittelyyn.
- Määritä aina requests/limits ja health-tarkistukset (liveness/readiness).
- Hallitse konfiguraatio ConfigMapeilla ja salaisuudet Secreteillä (+ etcd-salaus).
- Käytä deklaratiivista tapaa (
kubectl apply, Helm, GitOps) – vältä käsin muokkausta. - Kiinnitä konttikuvat versioituihin tageihin, älä
latest-tagiin. - Noudata RBAC:n pienimmän oikeuden periaatetta.
- Varmista etcd-varmuuskopiot ja testaa palautus.
7. Hands-on: resurssien siivous
Siivoa koulutuksen aikana luodut resurssit sekä komentoriviltä että Rancherista.
1. Katso, mitä nimiavaruudessasi on:
kubectl get all -n <oma-nimi>2. Poista Helm-releaset ja yksittäiset resurssit tarvittaessa:
# Helmillä asennetut sovellukset
helm list -n <oma-nimi>
helm uninstall web -n <oma-nimi>
# Yksittäiset resurssit
kubectl delete deployment web -n <oma-nimi>3. Poista koko oma nimiavaruus – tämä poistaa kaikki sen resurssit kerralla:
kubectl delete namespace <oma-nimi>4. Siivoa Rancherista:
- Avaa Cluster Explorer ja valitse nimiavaruutesi.
- Poista jäljellä olevat työkuormat tai koko nimiavaruus Delete-toiminnolla.
- Tarkista Apps → Installed Apps, ettei asennettuja releaseja jää jäljelle.
5. Varmista, ettei ylimääräisiä resursseja jää:
kubectl get namespaces8. Q&A – vapaa kyselytuokio
Käydään läpi kysymykset ja pohditaan, miten opittua sovelletaan omassa ympäristössäsi. Hyviä keskustelunaiheita:
- Miten Kubernetes/RKE2 istuu teidän nykyiseen infraanne?
- Mitkä sovellukset kannattaisi siirtää klusteriin ensimmäisenä?
- Miten CI/CD, monitorointi ja varmuuskopiot järjestetään?
Yhteenveto
- RKE2:n ylläpito nojaa etcd-varmuuskopioihin, hallittuihin päivityksiin ja solmujen
huoltoon (
cordon/drain). - Rancher keskittää monen klusterin hallinnan, käyttöoikeudet ja valvonnan.
- RBAC toteuttaa pienimmän oikeuden periaatteen roolien ja sidosten avulla.
- requests/limits takaavat sovellusten vakaan resurssien käytön.
- Siivoa aina harjoitusresurssit (
kubectl delete namespace,helm uninstall).