Pouze pro návštěvníky našeho blogu Získejte další 3 měsíce zdarma + 10% slevu na tříletý plán YSBLOG10
Chyťte dohodu

Jak monitorovat a zabezpečit Kubernetes na Linuxovém serveru – snadný průvodce

Monitorování a zabezpečení Kubernetes na Linuxovém serveru, nasadit kompletní stack pro sledování (Prometheus, Grafana a centralizované protokoly), definovat upozornění, vynucovat RBAC s nejnižšími oprávněními, Pod Security Admission a NetworkPolicies, skenovat a podepisovat obrazy, chránit tajné kódy, povolit protokoly auditu, posílit zabezpečení linuxových uzlů a přidat detekci hrozeb za běhu (Falco) s automatizovaným vynucováním politik (OPA/Kyverno).

Pokud provozujete kontejnery ve velkém měřítku, je naučení se monitorovat a zabezpečovat Kubernetes na linuxovém serveru neoddiskutovatelné. Tato příručka vás provede osvědčeným plánem připraveným pro produkční prostředí, který zahrnuje metriky, protokoly, upozornění, RBAC, izolaci sítě, řízení přístupu, skenování dodavatelského řetězce, posílení Linuxu a průběžné dodržování předpisů, a to s využitím open source nástrojů, kterým toto odvětví důvěřuje.


Co znamenají pojmy „monitorování“ a „zabezpečení“ v Kubernetes

Monitorování je průběžný sběr a vizualizace metrik, protokolů a trasování, abyste viděli stav clusteru, výkon aplikací a kapacitu.

Zabezpečení je vícevrstvá ochrana vaší řídicí roviny, uzlů, úloh a dodavatelského řetězce softwaru pomocí politik, izolace, skenování a detekce. Obojí je povinné pro provozuschopnost, reakci na incidenty a dodržování předpisů.

Předpoklady a referenční architektura

Předpoklady: cluster Kubernetes založený na Linuxu (containerd nebo CRI-O), přístup ke kubectl/Helm a základní znalost jmenných prostorů a RBAC. Referenční stack obsahuje:

  • Monitoring: server metrik, operátor Prometheus (kube-prometheus-stack), Grafana, exportér uzlů, cAdvisor
  • Protokolování: Fluent Bit + Loki (nebo Fluent Bit/Fluentd + OpenSearch/Elasticsearch + Kibana)
  • upozornění: Upozorněnímanager s akčními pravidly
  • Zabezpečení RBAC, přístup k zabezpečení podu, síťové zásady, OPA Gatekeeper nebo Kyverno, skenování obrázků (Trivy), podepisování (Cosign), ochrana tajných dat (Sealed Secrets nebo Vault), protokolování auditu, zabezpečení běhového prostředí Falco
  • Kalení: Ovládací prvky benchmarku CIS Kubernetes, SELinux/AppArmor, kernel/sysctl, opravy uzlů, firewall

Krok 1: Nastavení základních metrik a dashboardů

Instalace serveru metrik

Server metrik využívá kubectl top a automatické škálování. Nasaďte ho pomocí oficiálních manifestů nebo Helmu:

kubectl apply -f https://github.com/kubernetes-sigs/metrics-server/releases/latest/download/components.yaml
# Validate
kubectl top nodes
kubectl top pods -A

Nasazení Prometheuse a Grafany (kube-prometheus-stack)

Pro instalaci balíčku Prometheus Operator použijte Helm. Dodává se s ServiceMonitors, Alert.manager a dashboardy Grafana.

helm repo add prometheus-community https://prometheus-community.github.io/helm-charts
helm repo update
kubectl create ns monitoring
helm install kps prometheus-community/kube-prometheus-stack -n monitoring \
  --set grafana.adminPassword='StrongPassw0rd!'

# Get Grafana URL and admin creds
kubectl get svc -n monitoring
kubectl get secret kps-grafana -n monitoring -o jsonpath="{.data.admin-user}" | base64 -d; echo
kubectl get secret kps-grafana -n monitoring -o jsonpath="{.data.admin-password}" | base64 -d; echo

Importujte dashboardy pro Kubernetes/Nodes/etcd/APIServer. Sledujte CPU, paměť, latenci etcd, chybovost API a restartování podů. Toto jsou kritické indikátory SLO.

Metriky na úrovni uzlů: Node Exporter a cAdvisor

Stack kube-prometheus standardně nasazují Node Exporter a scrapingují cAdvisor z kubeletu. Ujistěte se, že má kubelet povolené metriky pouze pro čtení (výchozí nastavení ve většině distribucí).


Krok 2: Centralizace protokolů pomocí lehkého a škálovatelného zásobníku

Loki + Promtail/Fluent Bit

Loki je cenově efektivní pro logy Kubernetes. Promtail nebo Fluent Bit odesílá logy z uzlů do Loki. Grafana je vizualizuje spolu s metrikami pro rychlou korelaci.

helm repo add grafana https://grafana.github.io/helm-charts
helm repo update
kubectl create ns logging
helm install loki grafana/loki -n logging
helm install promtail grafana/promtail -n logging \
  --set "config.clients[0].url=http://loki.logging:3100/loki/api/v1/push"

Alternativně nasaďte Fluent Bit + OpenSearch/Elasticsearch + Kibana, pokud vaše organizace standardizuje ELK/EFK.

Definování akčních upozornění

Vytvořte v Prometheusu pravidla upozornění pro saturaci uzlů, CrashLoopBackOff, API 5xx, kvorum etcd a vypršení platnosti certifikátu. Integrujte upozorněnímanager s e-mailem, Slackem nebo PagerDuty. Propojte upozornění s runbooky.


Krok 3: Zablokování přístupu pomocí RBAC a nejnižších oprávnění

Zakázat používání administrace clusteru pro aplikace. Vytvořit ServiceAccounts s vymezenými rolemi a vazbami rolí. Mapovat lidi. uživatele přes vašeho IdP do skupin a navázat je na čtení nebo zapisovat role pouze tam, kde je to potřeba.

apiVersion: v1
kind: ServiceAccount
metadata:
  name: app-sa
  namespace: team-a
---
apiVersion: rbac.authorization.k8s.io/v1
kind: Role
metadata:
  name: app-reader
  namespace: team-a
rules:
- apiGroups: [""]
  resources: ["pods","services","endpoints"]
  verbs: ["get","list","watch"]
---
apiVersion: rbac.authorization.k8s.io/v1
kind: RoleBinding
metadata:
  name: app-reader-binding
  namespace: team-a
subjects:
- kind: ServiceAccount
  name: app-sa
  namespace: team-a
roleRef:
  kind: Role
  name: app-reader
  apiGroup: rbac.authorization.k8s.io

Krok 4: Vynucení zabezpečení podů a segmentace sítě

Vstup do bezpečnostní zóny (PSA)

Použijte PSA k blokování rizikových oprávnění. Začněte s enforce=baseline pro dev a enforce=restricted pro prod. Jmenné prostory štítků:

kubectl label ns prod \
  pod-security.kubernetes.io/enforce=restricted \
  pod-security.kubernetes.io/audit=restricted \
  pod-security.kubernetes.io/warn=restricted

Síťové zásady

Výchozí síť Kubernetes je otevřená. Použijte NetworkPolicies, abyste povolili pouze zamýšlený provoz a odchozí provoz.

apiVersion: networking.k8s.io/v1
kind: NetworkPolicy
metadata:
  name: allow-frontend-to-api
  namespace: prod
spec:
  podSelector:
    matchLabels:
      app: api
  policyTypes: ["Ingress","Egress"]
  ingress:
  - from:
    - namespaceSelector:
        matchLabels:
          name: prod
      podSelector:
        matchLabels:
          app: frontend
  egress:
  - to:
    - ipBlock:
        cidr: 10.0.0.0/8
    ports:
    - protocol: TCP
      port: 5432

Krok 5: Zabezpečení dodavatelského řetězce softwaru

Skenování zranitelností pomocí Trivy

Skenovat image kontejnerů v CI a pravidelně v clusteru. Selhání se sestavuje na základě problémů s vysokou závažností.

# Scan a local or registry image
trivy image --severity HIGH,CRITICAL --exit-code 1 myrepo/myapp:1.2.3

Podepište obrázky pomocí Cosign a ověřte je při přijetí

Podepisujte obrázky v CI. Pro povolení pouze podepsaných artefaktů použijte Kyverno nebo Gatekeeper.

# Sign an image
cosign sign --key cosign.key myrepo/myapp:1.2.3

# Kyverno policy sketch (admit only signed)
apiVersion: kyverno.io/v1
kind: ClusterPolicy
metadata:
  name: verify-image-signatures
spec:
  rules:
  - name: check-signature
    match:
      resources:
        kinds: ["Pod"]
    verifyImages:
    - image: "myrepo/*"
      key: "k8s://kyverno/cosign-pub"

Krok 6: Chraňte tajemství a šifrujte data

Šifrování v klidu

umožnit Šifrování Kubernetes Secret na serveru APIŠifrování úložiště klíče bezpečně (KMS nebo trezor).

# Example EncryptionConfiguration (point kube-apiserver --encryption-provider-config to this file)
apiVersion: apiserver.config.k8s.io/v1
kind: EncryptionConfiguration
resources:
- resources: ["secrets"]
  providers:
  - aescbc:
      keys:
      - name: key1
        secret: <base64-encoded-32-byte-key>
  - identity: {}

Zapečetěná tajemství nebo trezor

Použijte Bitnami Sealed Secrets k odeslání šifrovaných tajných dat do Gitu nebo integrujte HashiCorp Vault s ovladačem CSI pro dynamická tajná data a rotace.


Krok 7: Povolte protokoly auditu a detekci hrozeb za běhu

Protokolování auditu API

Auditní protokoly odpovídají na otázku „kdo co udělal“. Zachycují selhání při vytváření/aktualizaci/mazání a autorizaci.

# Example audit policy (pass to kube-apiserver --audit-policy-file)
apiVersion: audit.k8s.io/v1
kind: Policy
rules:
- level: Metadata
  verbs: ["get","list","watch"]
- level: RequestResponse
  verbs: ["create","update","patch","delete","deletecollection"]
- level: Request
  users: ["system:kube-scheduler","system:kube-controller-manager"]
  resources: [{group: "*", resources: ["*"]}]

Falco pro detekci úrovně systémových volání

Falco sleduje události jádra a sleduje podezřelé chování (např. těžaře kryptoměn, shell uvnitř kontejneru, čtení citlivých souborů). Přeposílá upozornění do Slacku nebo SIEM.

helm repo add falcosecurity https://falcosecurity.github.io/charts
helm repo update
kubectl create ns security
helm install falco falcosecurity/falco -n security

Krok 8: Zabezpečení linuxových uzlů

Dodržování benchmarků CIS Kubernetes a Linux podstatně snižuje riziko. Klíčové akce:

  • Použijte containerd/CRI‑O; zakažte připojení socketů Dockeru.
  • Povolte profily SELinux (vynucování) nebo AppArmor; omezte privilegované pody.
  • Zamkněte Kubelet pomocí TLS, authn/authz; zakažte anonymní ověřování.
  • Zpevnění jádra: pouze nezbytné moduly jádra, nastavte sysctls (např. net.ipv4.conf.all.rp_filter=1), zakažte IPv6, pokud se nepoužívá.
  • Firewall uzlu: Povolit pouze porty vyžadované pro Kubelet, API server a CNI.
  • Udržujte uzly opravené; povolte bezobslužné aktualizace nebo kadenci oprav.
  • Střídejte certifikáty, tokeny a klíče certifikační autority clusteru podle plánu.

Ověřujte pomocí nástrojů jako kube-bench (kontroly CIS) a kube-hunter (testování síťové expozice). Opravte zjištění a pravidelně test opakujte.


Krok 9: Pracujte s jistotou – zálohy, DR a SLO

Zálohy a obnova po havárii

Naplánujte snapshoty etcd a externí úložiště. Použijte Velero k zálohování stavu clusteru a perzistentních svazků. Čtvrtletně procvičujte obnovovací cvičení.

SLO a plánování kapacity

Definujte SLO pro latenci API a dostupnost aplikací. Používejte HPA/VPA a automatické škálování clusteru k uspokojení poptávky a splnění rozpočtu. Nastavte rozpočtové alarmy pro plýtvání zdroji (nečinné uzly, přetížené požadavky).


Běžná úskalí a jak se jim vyhnout

  • Žádné síťové zásady: Výsledkem je laterální pohyb, vždy výchozí nastavení je zamítnutí a povolení.
  • Přes privilegované ServiceAccounts: audit RBAC alespoň čtvrtletně.
  • Přeskakování skenování/podepisování obrázků: vynucení Trivy + Cosign v CI a přijímání.
  • Nešifrovaná tajemství: Povolte šifrování API v klidovém stavu; v Gitu se vyhněte používání prostého textu.
  • Tiché selhání: vytvářet upozornění pro chybové hroty CrashLoopBackOff, OOMKill a 5xx.
  • Pouze jednopodlažní řídicí panely: korelovat metriky A protokoly pro analýzu skutečné příčiny.

Kontrolní seznam pro zrychlený postup

  • Nasazení metrik: metriky serveru, Prometheus, Grafana
  • Lodní deníky: Plynulý Bit/Promtail → Loki nebo EFK
  • upozornění: Upozorněnímanager s dokumentovanými runbooky
  • RBAC: minimální oprávnění, žádná administrace clusteru pro aplikace
  • P.S.A.: vynucovat omezené ve výrobě
  • Síťové zásady: výchozí zamítnutí + explicitní povolení
  • Dodavatelský řetězec: Trivy skeny, podepisování Cosign, ověření přijetí
  • tajemství: šifrování v klidovém stavu + zapečetěná tajemství/trezor
  • Protokoly auditu: zachycení a odeslání do centralizovaného úložiště
  • Zabezpečení za běhu: Pravidla Falco a integrace SIEM
  • Zpevnění uzlů: SELinux/AppArmor, TLS v Kubeletu, firewall, záplaty
  • Zálohy a cvičení po havárii: atd. + Velero

Příklad z reálného světa: Od nuly k monitorování a zabezpečení za jediný den

Středně velký SaaS tým s tříuzlovým Linuxovým clusterem implementoval kube-prometheus-stack a Loki pro okamžitý přehled. Povolili pravidla PSA restricted, default deny NetworkPolicies a pravidla Kyverno pro blokování nepodepsaných imagí.

Falco během testu kanárkovské krysy zachytil podezřelý výskyt skořápky. Díky upozorněním směrovaným na Slack a runbooky v provozu se MTTR v prvním měsíci snížil o 60 %.

Poslední tip: Vytvářejte „monitorování a zabezpečení jako kód“. Uchovávejte grafy Helm, dashboardy, zásady a pravidla upozornění v Gitu; kontrolujte je pomocí pull requestů; a průběžně ověřujte podle CIS a NSA/CISA Kubernetes Hardening Guide. Takto budete důsledně monitorovat a Zabezpečený Kubernetes na Linuxu serveru ve velkém měřítku.


Nejčastější dotazy

Jaké jsou nejlepší nástroje pro monitorování Kubernetes v Linuxu?

Prometheus (s operátorem) a Grafana jsou standardem pro metriky a dashboardy. Server metrik podporuje kubectl top a automatické škálování. Pro logy použijte Loki s Promtail/Fluent Bit nebo EFK (Elasticsearch/OpenSearch + Fluent Bit/Fluentd + Kibana).manager zpracovává směrování upozornění.

Jak rychle zabezpečím úlohy Kubernetes?

Použijte Pod Security Admission (omezený), ve výchozím nastavení zamítněte NetworkPolicies a RBAC s nejnižšími oprávněními. Skenujte a podepisujte obrazy (Trivy + Cosign) a ověřujte při přístupu pomocí Kyverna nebo Gatekeeperu. Povolte auditní protokoly a nasaďte Falco pro detekci za běhu.

Stačí Kubernetes Secrets k ochraně přihlašovacích údajů?

Tajné kódy Kubernetes jsou ve výchozím nastavení kódovány v base64. Povolte šifrování v klidovém stavu v API. server a pro zabezpečení použijte Sealed Secrets nebo Vault v klidu a při přepravě, a pokud možno i při automatizované rotaci.

Jak často bych měl provádět bezpečnostní testy?

Spouštějte kontroly CIS na úrovni kube-bench a operačního systému alespoň jednou měsíčně a po každém větším upgradu nebo změně konfigurace. Automatizujte v CI/CD a jako plánovanou úlohu clusteru; sledujte nápravu ve vašem systému ticketingu.

Jaký je rozdíl mezi Pod Security Admission a NetworkPolicies?

Zabezpečení podu (Pod Security Admission) určuje, co může pod požadovat (úrovně oprávnění, jmenné prostory hostitelů, možnosti). NetworkPolicies reguluje, které pody/služby mohou komunikovat na L3/L4. Je potřeba jak snížit rádius BLASTu, tak vynutit co nejnižší oprávnění.

Sdílet přes:

Prahlad Prajapati

Prahlad je specialista na webhosting a expert na organický růst zaměřený na SEO z Indie. V digitálním prostoru působí od roku 2019 a pomáhá lidem rozvíjet jejich webové stránky pomocí čistých a udržitelných strategií. Je nadšený pro učení a rychlou adaptaci a věří, že malé detaily vedou k velkému úspěchu. Objevte jeho poznatky o webhostingu a SEO, které vám pomohou vylepšit vaši online prezentaci.

Zanechat komentář

Vaše e-mailová adresa nebude zveřejněna. Povinné položky jsou označeny *

Přejděte na začátek