This shows you the differences between two versions of the page.
Both sides previous revision Previous revision Next revision | Previous revision | ||
automatizace:kubernetes [2024/02/18 10:52] tomas |
automatizace:kubernetes [2024/10/17 09:32] (current) tomas |
||
---|---|---|---|
Line 41: | Line 41: | ||
Calico - síťový doplnek na toky mezi namespacema atd. používá Container Network Interface ([[https:// | Calico - síťový doplnek na toky mezi namespacema atd. používá Container Network Interface ([[https:// | ||
Flannel - Síťový plugin (CNI)\\ | Flannel - Síťový plugin (CNI)\\ | ||
- | Weave - Síťový plugin (CNI)\\ | + | WeaveNet |
Romana - Síťový plugin (CNI)\\ | Romana - Síťový plugin (CNI)\\ | ||
Kube-router - CNI\\ | Kube-router - CNI\\ | ||
Line 48: | Line 48: | ||
[[https:// | [[https:// | ||
+ | '' | ||
Istio - service mesh - doplnek na bezbecnost mezi podama (kdo s kym muze a nesmi)\\ | Istio - service mesh - doplnek na bezbecnost mezi podama (kdo s kym muze a nesmi)\\ | ||
Gremlin ... doplnek na testovani bezpecnosti, | Gremlin ... doplnek na testovani bezpecnosti, | ||
Line 59: | Line 60: | ||
[[https:// | [[https:// | ||
[[https:// | [[https:// | ||
- | [[https:// | ||
[[https:// | [[https:// | ||
[[https:// | [[https:// | ||
fluentd - logovaní služba na sběr logů. Kubernetes nedisponuje sbíráním logů\\ | fluentd - logovaní služba na sběr logů. Kubernetes nedisponuje sbíráním logů\\ | ||
prometheus - logování, monitoring, alerting\\ | prometheus - logování, monitoring, alerting\\ | ||
+ | OpenTelemetry - poskytuje tracing a metriky dalším nástrojům\\ | ||
+ | Jaeger ... konzumuje metriky\\ | ||
+ | |||
===Nástroje=== | ===Nástroje=== | ||
Line 73: | Line 76: | ||
Oktant ... Web GUI na spravu Kubernetes clusteru\\ | Oktant ... Web GUI na spravu Kubernetes clusteru\\ | ||
Lens ... Web GUI na spravu Kubernetes clusteru\\ | Lens ... Web GUI na spravu Kubernetes clusteru\\ | ||
+ | [[https:// | ||
+ | [[https:// | ||
+ | k9s ... interaktivni GUI v konzoli na správu kubernetes\\ | ||
+ | |||
==Managovane Kubernetí clustery== | ==Managovane Kubernetí clustery== | ||
Line 121: | Line 128: | ||
* podAffinity - snaží se dát pody dohromady | * podAffinity - snaží se dát pody dohromady | ||
* podAntiAffinity - snaží se dát na jiné nody | * podAntiAffinity - snaží se dát na jiné nody | ||
+ | |||
+ | ===HA=== | ||
+ | * vše konfigurovat pomocí hostname, ne IP | ||
+ | * použít loadbalancery, | ||
+ | * na přidáni dalšího Control Plane bude nejspíš potřeba přegenerovat klíče, budou expirované | ||
+ | * etcd lze použít externí, musí se udělat první (nonColocated etcd) | ||
====DNS==== | ====DNS==== | ||
SERVICE.NAMESPACE.svc.cluster.local\\ | SERVICE.NAMESPACE.svc.cluster.local\\ | ||
Line 268: | Line 281: | ||
kubectl get horizontalpodautoscalers ... ukáže pravidla pro automatické horizontálí škálování\\ | kubectl get horizontalpodautoscalers ... ukáže pravidla pro automatické horizontálí škálování\\ | ||
+ | kubectl describe hpa ... ukáže nastavení HPA\\ | ||
===replicaset, | ===replicaset, | ||
Line 344: | Line 358: | ||
==network policies== | ==network policies== | ||
+ | [[https:// | ||
+ | |||
'' | '' | ||
'' | '' | ||
Line 373: | Line 389: | ||
'' | '' | ||
- | ===clusterroles, | + | ===Bezpečnost=== |
+ | ==Autorizace== | ||
+ | Kontrolována Autorizačním controlerem API serveru, umí používat různé formy autentifikace, | ||
+ | |||
+ | useradd user1\\ | ||
+ | passwd user1\\ | ||
+ | openssl genrsa -out ~user1/ | ||
+ | openssl req -new -key ~user1/ | ||
+ | sudo openssl x509 -req -in ~user1/ | ||
+ | kubectl config set-credentials DevDan --client-certificate=~user1/ | ||
+ | kubectl config set-context minukume-user1 --cluster=minikube --namespace=development --user=user1\\ | ||
+ | |||
+ | |||
+ | ==clusterroles, | ||
+ | Je kontrolována module authorization controllerem API serveru | ||
'' | '' | ||
'' | '' | ||
Line 381: | Line 412: | ||
'' | '' | ||
'' | '' | ||
+ | |||
+ | ==Admission Controler== | ||
+ | PodSecurityPolicy - vynucení pravidel je od 1.25 nahrazeno Pod Security Admission. PSP/PSA je kontrolováno Admission Controlerem API serveru. | ||
+ | SecurityContext je nastavení bezpečnosti Podu pomocí SELinux/ | ||
+ | |||
+ | grep admission / | ||
===poddisruptionbudgets=== | ===poddisruptionbudgets=== | ||
Line 388: | Line 425: | ||
===kubectl pluginy=== | ===kubectl pluginy=== | ||
- | kube [[https:// | + | kubectl |
+ | kubectl krew search ... seznam dostupných kubectl pluginů\\ | ||
kubectl whoami ... spusti plugin, co ukaze, jaký uživatel jsem\\ | kubectl whoami ... spusti plugin, co ukaze, jaký uživatel jsem\\ | ||
+ | kubectl tail --rs staging/ | ||
+ | kubectl sniff bigpod-abcd-123 -c mainapp -n accounting ... odposlech síťového provozu a přeposílání do Wiresharku\\ | ||
+ | |||
====Další rozšíření==== | ====Další rozšíření==== | ||
+ | Rozšíření, | ||
+ | |||
k get customresourcedefinitions.apiextensions.k8s.io ... zesnam API rozšíření\\ | k get customresourcedefinitions.apiextensions.k8s.io ... zesnam API rozšíření\\ | ||
+ | kubectl get crd --all-namespaces ... kratší zápis\\ | ||
+ | cilium\\ | ||
+ | linkerd\\ | ||
[https:// | [https:// | ||
[https:// | [https:// | ||
Line 413: | Line 459: | ||
'' | '' | ||
+ | kubeadm config print init-defaults ... ukáže konfiguraci\\ | ||
'' | '' | ||
'' | '' | ||
Line 464: | Line 511: | ||
'' | '' | ||
'' | '' | ||
+ | |||
+ | ====Troubleshooting==== | ||
+ | systemctl status kubelet.service\\ | ||
+ | journalctl -u kubelet\\ | ||
+ | sudo find /var/log -name " | ||
+ | / | ||
+ | / | ||
+ | / | ||
+ | Zapnotut/ | ||
+ | Bezpečnostní problém? RBAC, SELinux, AppArmor\\ | ||
+ | Síťový problém - přidat ephemeral kontejner s network nástroji\\ | ||
+ | logy a status podu\\ | ||
+ | Probél na node?\\ | ||
+ | / | ||
+ | [[https:// | ||
+ | [[https:// | ||
+ | [[https:// | ||
+ | |||
====REST API==== | ====REST API==== | ||
Line 492: | Line 557: | ||
/ | / | ||
/ | / | ||
+ | / | ||
+ | / |