<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Taháky on Eriks training corner</title><link>https://training.caha.cloud/cs/kubernetesintro/cheatsheets/index.html</link><description>Recent content in Taháky on Eriks training corner</description><generator>Hugo -- gohugo.io</generator><language>cs</language><atom:link href="https://training.caha.cloud/cs/kubernetesintro/cheatsheets/index.xml" rel="self" type="application/rss+xml"/><item><title>Docker tahák</title><link>https://training.caha.cloud/cs/kubernetesintro/cheatsheets/docker/index.html</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://training.caha.cloud/cs/kubernetesintro/cheatsheets/docker/index.html</guid><description>&lt;h1 id="docker-tahák"&gt;Docker tahák&lt;/h1&gt;
&lt;p&gt;Na &lt;strong&gt;support01&lt;/strong&gt; spouštějte Docker se &lt;code&gt;sudo&lt;/code&gt; (vynechte ho, pokud je váš uživatel
ve skupině &lt;code&gt;docker&lt;/code&gt;).&lt;/p&gt;
&lt;h2 id="kontejnery"&gt;Kontejnery&lt;/h2&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Úkol&lt;/th&gt;
&lt;th&gt;Příkaz&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Spustit na pozadí a publikovat port&lt;/td&gt;
&lt;td&gt;&lt;code&gt;sudo docker run -d --name web -p 8080:80 nginx:1.27&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Spustit interaktivně, po skončení smazat&lt;/td&gt;
&lt;td&gt;&lt;code&gt;sudo docker run -it --rm busybox sh&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Výpis běžících / všech&lt;/td&gt;
&lt;td&gt;&lt;code&gt;sudo docker ps&lt;/code&gt; / &lt;code&gt;sudo docker ps -a&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Logy, sledovat průběžně&lt;/td&gt;
&lt;td&gt;&lt;code&gt;sudo docker logs -f web&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Shell do běžícího kontejneru&lt;/td&gt;
&lt;td&gt;&lt;code&gt;sudo docker exec -it web sh&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Stop / start / restart&lt;/td&gt;
&lt;td&gt;&lt;code&gt;sudo docker stop web&lt;/code&gt; / &lt;code&gt;start web&lt;/code&gt; / &lt;code&gt;restart web&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Smazat (vynuceně)&lt;/td&gt;
&lt;td&gt;&lt;code&gt;sudo docker rm -f web&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Procesy, živé statistiky&lt;/td&gt;
&lt;td&gt;&lt;code&gt;sudo docker top web&lt;/code&gt; / &lt;code&gt;sudo docker stats&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Kompletní detail v JSON&lt;/td&gt;
&lt;td&gt;&lt;code&gt;sudo docker inspect web&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Jedno pole z inspectu&lt;/td&gt;
&lt;td&gt;&lt;code&gt;sudo docker inspect -f '{{.NetworkSettings.IPAddress}}' web&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Omezit zdroje&lt;/td&gt;
&lt;td&gt;&lt;code&gt;sudo docker run -d --memory 128m --cpus 0.5 nginx:1.27&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;h2 id="image"&gt;Image&lt;/h2&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Úkol&lt;/th&gt;
&lt;th&gt;Příkaz&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Hledat / stáhnout&lt;/td&gt;
&lt;td&gt;&lt;code&gt;sudo docker search nginx&lt;/code&gt; / &lt;code&gt;sudo docker pull nginx:1.27&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Výpis / smazání&lt;/td&gt;
&lt;td&gt;&lt;code&gt;sudo docker images&lt;/code&gt; / &lt;code&gt;sudo docker rmi nginx:1.27&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Historie vrstev&lt;/td&gt;
&lt;td&gt;&lt;code&gt;sudo docker history nginx:1.27&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Build z Dockerfile&lt;/td&gt;
&lt;td&gt;&lt;code&gt;sudo docker build -t myapp:1.0 .&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Tag / push&lt;/td&gt;
&lt;td&gt;&lt;code&gt;sudo docker tag myapp:1.0 registry/myapp:1.0&lt;/code&gt; / &lt;code&gt;push&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Uložit / načíst tar&lt;/td&gt;
&lt;td&gt;&lt;code&gt;sudo docker save -o myapp.tar myapp:1.0&lt;/code&gt; / &lt;code&gt;load -i myapp.tar&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;h2 id="sítě"&gt;Sítě&lt;/h2&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Úkol&lt;/th&gt;
&lt;th&gt;Příkaz&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Výpis sítí&lt;/td&gt;
&lt;td&gt;&lt;code&gt;sudo docker network ls&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Vytvořit vlastní síť&lt;/td&gt;
&lt;td&gt;&lt;code&gt;sudo docker network create appnet&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Připojit při spuštění&lt;/td&gt;
&lt;td&gt;&lt;code&gt;sudo docker run -d --network appnet --name db mysql:8&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Připojit / odpojit později&lt;/td&gt;
&lt;td&gt;&lt;code&gt;sudo docker network connect appnet web&lt;/code&gt; / &lt;code&gt;disconnect&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Host / žádná síť&lt;/td&gt;
&lt;td&gt;&lt;code&gt;--network host&lt;/code&gt; / &lt;code&gt;--network none&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;Kontejnery na stejné uživatelsky vytvořené síti se najdou &lt;strong&gt;podle jména&lt;/strong&gt;.
Na výchozím bridge ne.&lt;/p&gt;</description></item><item><title>kubectl tahák</title><link>https://training.caha.cloud/cs/kubernetesintro/cheatsheets/kubectl/index.html</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://training.caha.cloud/cs/kubernetesintro/cheatsheets/kubectl/index.html</guid><description>&lt;h1 id="kubectl-tahák"&gt;kubectl tahák&lt;/h1&gt;
&lt;p&gt;Spouštějte na &lt;strong&gt;support01&lt;/strong&gt; s připraveným &lt;code&gt;~/.kube/config&lt;/code&gt; (Lab 01). Bez &lt;code&gt;sudo&lt;/code&gt;.&lt;/p&gt;
&lt;h2 id="nastavení-které-ušetří-hodiny"&gt;Nastavení, které ušetří hodiny&lt;/h2&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="nb"&gt;alias&lt;/span&gt; &lt;span class="nv"&gt;k&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;kubectl
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="nb"&gt;source&lt;/span&gt; &amp;lt;&lt;span class="o"&gt;(&lt;/span&gt;kubectl completion bash&lt;span class="o"&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="nb"&gt;complete&lt;/span&gt; -o default -F __start_kubectl k
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="nb"&gt;export&lt;/span&gt; &lt;span class="k"&gt;do&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s2"&gt;&amp;#34;--dry-run=client -o yaml&amp;#34;&lt;/span&gt; &lt;span class="c1"&gt;# pak: kubectl run x --image=nginx $do&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;kubectl config set-context --current --namespace&lt;span class="o"&gt;=&lt;/span&gt;dev
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h2 id="ptejte-se-clusteru-ne-internetu"&gt;Ptejte se clusteru, ne internetu&lt;/h2&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Otázka&lt;/th&gt;
&lt;th&gt;Příkaz&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Jaké druhy objektů existují? zkratky? namespace?&lt;/td&gt;
&lt;td&gt;&lt;code&gt;kubectl api-resources&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Které druhy jsou mimo namespace?&lt;/td&gt;
&lt;td&gt;&lt;code&gt;kubectl api-resources --namespaced=false&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Jaká pole má tenhle druh?&lt;/td&gt;
&lt;td&gt;&lt;code&gt;kubectl explain ingress.spec.rules&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Všechna pole najednou&lt;/td&gt;
&lt;td&gt;&lt;code&gt;kubectl explain deploy.spec --recursive&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Co tenhle příkaz umí?&lt;/td&gt;
&lt;td&gt;&lt;code&gt;kubectl create --help&lt;/code&gt; (příklady na konci)&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Globální přepínače&lt;/td&gt;
&lt;td&gt;&lt;code&gt;kubectl options&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Verze klienta / serveru&lt;/td&gt;
&lt;td&gt;&lt;code&gt;kubectl version&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Smím tohle udělat?&lt;/td&gt;
&lt;td&gt;&lt;code&gt;kubectl auth can-i create deployments -n dev&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;h2 id="rozhlédnout-se"&gt;Rozhlédnout se&lt;/h2&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Úkol&lt;/th&gt;
&lt;th&gt;Příkaz&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Je cluster dostupný?&lt;/td&gt;
&lt;td&gt;&lt;code&gt;kubectl cluster-info&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Uzly s IP a verzemi&lt;/td&gt;
&lt;td&gt;&lt;code&gt;kubectl get nodes -o wide&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Všechno v namespace&lt;/td&gt;
&lt;td&gt;&lt;code&gt;kubectl get all -n dev&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Napříč namespacy&lt;/td&gt;
&lt;td&gt;&lt;code&gt;kubectl get pods -A&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Sledovat změny živě&lt;/td&gt;
&lt;td&gt;&lt;code&gt;kubectl get pods -w&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Události podle času&lt;/td&gt;
&lt;td&gt;&lt;code&gt;kubectl get events --sort-by=.lastTimestamp&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Jen varování, všude&lt;/td&gt;
&lt;td&gt;&lt;code&gt;kubectl get events -A --field-selector type=Warning&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Spotřeba zdrojů&lt;/td&gt;
&lt;td&gt;&lt;code&gt;kubectl top nodes&lt;/code&gt; / &lt;code&gt;kubectl top pods&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Podle labelu&lt;/td&gt;
&lt;td&gt;&lt;code&gt;kubectl get pods -l app=web&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Vlastní sloupce&lt;/td&gt;
&lt;td&gt;&lt;code&gt;kubectl get pods -o custom-columns=NAME:.metadata.name,NODE:.spec.nodeName&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;h2 id="vytvářet-a-měnit"&gt;Vytvářet a měnit&lt;/h2&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Úkol&lt;/th&gt;
&lt;th&gt;Příkaz&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Nasadit manifest (i adresář)&lt;/td&gt;
&lt;td&gt;&lt;code&gt;kubectl apply -f pod.yaml&lt;/code&gt; / &lt;code&gt;-f ./manifests/&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Vygenerovat YAML bez vytvoření&lt;/td&gt;
&lt;td&gt;&lt;code&gt;kubectl run web --image nginx --dry-run=client -o yaml &amp;gt; web.yaml&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;YAML pro Deployment&lt;/td&gt;
&lt;td&gt;&lt;code&gt;kubectl create deploy web --image nginx --dry-run=client -o yaml&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Service pro deployment&lt;/td&gt;
&lt;td&gt;&lt;code&gt;kubectl expose deploy web --port 80 --type NodePort&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Ingress (starší)&lt;/td&gt;
&lt;td&gt;&lt;code&gt;kubectl create ingress web --rule=&amp;quot;web.k8s.lab/*=web-svc:80&amp;quot;&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Upravit živý objekt&lt;/td&gt;
&lt;td&gt;&lt;code&gt;kubectl edit deploy web&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Změnit jedno pole&lt;/td&gt;
&lt;td&gt;&lt;code&gt;kubectl patch svc web -p '{&amp;quot;spec&amp;quot;:{&amp;quot;type&amp;quot;:&amp;quot;NodePort&amp;quot;}}'&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Škálovat&lt;/td&gt;
&lt;td&gt;&lt;code&gt;kubectl scale deploy web --replicas=3&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Změnit image&lt;/td&gt;
&lt;td&gt;&lt;code&gt;kubectl set image deploy/web nginx=nginx:1.28&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Proměnné z ConfigMapy&lt;/td&gt;
&lt;td&gt;&lt;code&gt;kubectl set env deploy/web --from=configmap/app-cfg&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Label / anotace&lt;/td&gt;
&lt;td&gt;&lt;code&gt;kubectl label pod web tier=frontend&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Smazat&lt;/td&gt;
&lt;td&gt;&lt;code&gt;kubectl delete -f web.yaml&lt;/code&gt; / &lt;code&gt;kubectl delete pod web&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;h2 id="zkoumat-a-ladit"&gt;Zkoumat a ladit&lt;/h2&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Úkol&lt;/th&gt;
&lt;th&gt;Příkaz&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Všechno o objektu + události&lt;/td&gt;
&lt;td&gt;&lt;code&gt;kubectl describe pod web&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Živý objekt jako YAML&lt;/td&gt;
&lt;td&gt;&lt;code&gt;kubectl get pod web -o yaml&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Jedno pole&lt;/td&gt;
&lt;td&gt;&lt;code&gt;kubectl get pod web -o jsonpath='{.status.podIP}'&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Logy, průběžně, předchozí pád&lt;/td&gt;
&lt;td&gt;&lt;code&gt;kubectl logs -f web&lt;/code&gt; / &lt;code&gt;kubectl logs web --previous&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Logy jednoho kontejneru&lt;/td&gt;
&lt;td&gt;&lt;code&gt;kubectl logs web -c sidecar&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Logy podle labelu / přes kontroler&lt;/td&gt;
&lt;td&gt;&lt;code&gt;kubectl logs -l app=web --tail=50&lt;/code&gt; / &lt;code&gt;kubectl logs deploy/web&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Shell dovnitř&lt;/td&gt;
&lt;td&gt;&lt;code&gt;kubectl exec -it web -- sh&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Pod na jedno použití&lt;/td&gt;
&lt;td&gt;&lt;code&gt;kubectl run tmp --image busybox --restart=Never -it --rm -- sh&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Tunel na stanici&lt;/td&gt;
&lt;td&gt;&lt;code&gt;kubectl port-forward svc/web 8080:80&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Kopírování souborů&lt;/td&gt;
&lt;td&gt;&lt;code&gt;kubectl cp web:/etc/nginx/nginx.conf ./nginx.conf&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Endpointy služby&lt;/td&gt;
&lt;td&gt;&lt;code&gt;kubectl get endpointslices -l kubernetes.io/service-name=web&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;h2 id="aplikace"&gt;Aplikace&lt;/h2&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;kubectl rollout status deploy/web
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;kubectl rollout &lt;span class="nb"&gt;history&lt;/span&gt; deploy/web
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;kubectl rollout undo deploy/web
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;kubectl rollout restart deploy/web
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;kubectl get rs -l &lt;span class="nv"&gt;app&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;web &lt;span class="c1"&gt;# který ReplicaSet je aktivní&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;kubectl get ds -A &lt;span class="c1"&gt;# DaemonSety&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;kubectl get sts &lt;span class="c1"&gt;# StatefulSety&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h2 id="úložiště"&gt;Úložiště&lt;/h2&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;kubectl get pv &lt;span class="c1"&gt;# cluster-scoped&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;kubectl get pvc -A
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;kubectl describe pvc data &lt;span class="c1"&gt;# proč je Pending?&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;kubectl get sc &lt;span class="c1"&gt;# StorageClasses&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;kubectl get csidrivers &lt;span class="c1"&gt;# nainstalované CSI drivery&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;kubectl get pv -o custom-columns&lt;span class="o"&gt;=&lt;/span&gt;NAME:.metadata.name,STATUS:.status.phase,CLAIM:.spec.claimRef.name,POLICY:.spec.persistentVolumeReclaimPolicy
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;kubectl patch pv &amp;lt;pv&amp;gt; -p &lt;span class="s1"&gt;&amp;#39;{&amp;#34;spec&amp;#34;:{&amp;#34;claimRef&amp;#34;:null}}&amp;#39;&lt;/span&gt; &lt;span class="c1"&gt;# reuse a Released PV&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h2 id="gateway-api"&gt;Gateway API&lt;/h2&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;kubectl get gatewayclass
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;kubectl get gateway,httproute -A
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;kubectl describe gateway web-gw &lt;span class="c1"&gt;# PROGRAMMED + podmínky&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;kubectl describe httproute shop &lt;span class="c1"&gt;# Accepted + ResolvedRefs&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;kubectl explain httproute.spec.rules.backendRefs
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;CRD musí být nainstalované jako první – Gateway API není součástí Kubernetes.&lt;/p&gt;</description></item><item><title>Helm tahák</title><link>https://training.caha.cloud/cs/kubernetesintro/cheatsheets/helm/index.html</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://training.caha.cloud/cs/kubernetesintro/cheatsheets/helm/index.html</guid><description>&lt;h1 id="helm-tahák"&gt;Helm tahák&lt;/h1&gt;
&lt;p&gt;Helm 3 používá váš &lt;code&gt;~/.kube/config&lt;/code&gt;, takže míří na stejný cluster jako kubectl.&lt;/p&gt;
&lt;h2 id="repozitáře"&gt;Repozitáře&lt;/h2&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Úkol&lt;/th&gt;
&lt;th&gt;Příkaz&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Přidat&lt;/td&gt;
&lt;td&gt;&lt;code&gt;helm repo add podinfo https://stefanprodan.github.io/podinfo&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Výpis / aktualizace / odebrání&lt;/td&gt;
&lt;td&gt;&lt;code&gt;helm repo list&lt;/code&gt; / &lt;code&gt;helm repo update&lt;/code&gt; / &lt;code&gt;helm repo remove podinfo&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Hledat v repozitáři&lt;/td&gt;
&lt;td&gt;&lt;code&gt;helm search repo podinfo&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Hledat na Artifact Hubu&lt;/td&gt;
&lt;td&gt;&lt;code&gt;helm search hub postgres&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Zobrazit všechny verze&lt;/td&gt;
&lt;td&gt;&lt;code&gt;helm search repo podinfo --versions&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;h2 id="podívat-se-dřív-než-instalujete"&gt;Podívat se dřív, než instalujete&lt;/h2&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Úkol&lt;/th&gt;
&lt;th&gt;Příkaz&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Metadata chartu&lt;/td&gt;
&lt;td&gt;&lt;code&gt;helm show chart podinfo/podinfo&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Nastavitelné hodnoty&lt;/td&gt;
&lt;td&gt;&lt;code&gt;helm show values podinfo/podinfo&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Readme&lt;/td&gt;
&lt;td&gt;&lt;code&gt;helm show readme podinfo/podinfo&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Vyrenderovat lokálně, bez clusteru&lt;/td&gt;
&lt;td&gt;&lt;code&gt;helm template ./myapp&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Vyrenderovat na serveru, bez instalace&lt;/td&gt;
&lt;td&gt;&lt;code&gt;helm install web ./myapp --dry-run --debug&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;h2 id="release"&gt;Release&lt;/h2&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Úkol&lt;/th&gt;
&lt;th&gt;Příkaz&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Instalace&lt;/td&gt;
&lt;td&gt;&lt;code&gt;helm install web podinfo/podinfo&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Vygenerované jméno&lt;/td&gt;
&lt;td&gt;&lt;code&gt;helm install podinfo/podinfo --generate-name&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Do namespace, který se vytvoří&lt;/td&gt;
&lt;td&gt;&lt;code&gt;helm install web podinfo/podinfo -n dev --create-namespace&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Přebít na příkazové řádce&lt;/td&gt;
&lt;td&gt;&lt;code&gt;helm install web podinfo/podinfo --set replicaCount=3&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Přebít ze souboru&lt;/td&gt;
&lt;td&gt;&lt;code&gt;helm install web podinfo/podinfo -f my-values.yaml&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Počkat na připravenost&lt;/td&gt;
&lt;td&gt;&lt;code&gt;helm install web podinfo/podinfo --wait --timeout 5m&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Výpis&lt;/td&gt;
&lt;td&gt;&lt;code&gt;helm list&lt;/code&gt; / &lt;code&gt;helm list -A&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Co je nasazeno&lt;/td&gt;
&lt;td&gt;&lt;code&gt;helm get manifest web&lt;/code&gt; / &lt;code&gt;helm get values web&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Upgrade&lt;/td&gt;
&lt;td&gt;&lt;code&gt;helm upgrade web podinfo/podinfo --set replicaCount=5&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Upgrade nebo instalace&lt;/td&gt;
&lt;td&gt;&lt;code&gt;helm upgrade --install web podinfo/podinfo&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Historie&lt;/td&gt;
&lt;td&gt;&lt;code&gt;helm history web&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Návrat zpět&lt;/td&gt;
&lt;td&gt;&lt;code&gt;helm rollback web 1&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Odinstalace&lt;/td&gt;
&lt;td&gt;&lt;code&gt;helm uninstall web&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Stav&lt;/td&gt;
&lt;td&gt;&lt;code&gt;helm status web&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;&lt;code&gt;--set&lt;/code&gt; přebíjí &lt;code&gt;-f&lt;/code&gt; a pozdější &lt;code&gt;-f&lt;/code&gt; přebíjí dřívější.&lt;/p&gt;</description></item></channel></rss>