Kihagyás

Kubernetes cheatsheet

Tematikus, gyors lookup kártyák. Minden kártyán a leggyakoribb parancsok – részletes magyarázatért nyisd meg a megfelelő aloldalt.

  • kubectl alias


    Gyorsabb gépelés napi használathoz.

    alias k=kubectl
    k get pods
    

    Részletek

  • Pod listázás és export


    Lekérdezés, futó erőforrás kimentése, sablon generálás.

    kubectl get pods
    kubectl get deployment my-app -o yaml > export.yaml
    kubectl create deployment my-java-app --image=nginx \
      --dry-run=client -o yaml > deployment.yaml
    

    Részletek

  • Logok és describe


    Hibakeresés ökölszabálya: logs ha hibát dob, describe ha el sem indul.

    kubectl logs <pod>
    kubectl logs -f <pod>
    kubectl logs --tail=50 <pod>
    kubectl logs -p <pod>          # előző (CrashLoop) konténer
    kubectl describe pod <pod>
    kubectl exec -it <pod> -- /bin/sh
    

    Részletek

  • Imperatív erőforrás létrehozás


    Komplett infrastruktúra parancssorból (CM, Secret, Deployment, Service, Ingress).

    kubectl create configmap java-app-config \
      --from-literal=SPRING_PROFILES_ACTIVE=prod
    kubectl create secret generic db-credentials \
      --from-literal=DB_PASSWORD=Titkos123
    kubectl create deployment my-java-app \
      --image=my-company/java-backend:v1.0 --port=8080
    kubectl expose deployment my-java-app --port=8080 \
      --target-port=8080 --name=my-java-svc --type=ClusterIP
    

    Részletek

  • Heredoc apply


    Komplett deklaratív YAML beküldése fájl létrehozása nélkül.

    cat << 'EOF' | kubectl apply -f -
    apiVersion: v1
    kind: ConfigMap
    metadata:
      name: spring-config
    data:
      application-prod.yaml: |
        server.port=8080
    EOF
    

    Részletek

  • ConfigMap és Secret beemelése


    Imperatív és deklaratív (env, envFrom, volume mount) módszerek.

    kubectl set env deployment/my-java-app --from=configmap/java-app-config
    kubectl set env deployment/my-java-app --from=secret/db-credentials
    
    envFrom:
      - configMapRef:
          name: app-config
    

    Részletek

  • Deployment rollout és stratégiák


    Rollout követés, pánikgomb, RollingUpdate vs Recreate.

    kubectl rollout restart deployment/my-java-app
    kubectl rollout status deployment/my-java-app
    kubectl rollout undo deployment/my-java-app   # PÁNIKGOMB
    

    Részletek

  • Resources, probes, HPA


    CPU/memória limit, liveness/readiness, automata skálázás.

    kubectl set resources deployment my-java-app \
      --limits=cpu=500m,memory=512Mi \
      --requests=cpu=200m,memory=256Mi
    kubectl autoscale deployment my-java-app \
      --cpu-percent=50 --min=1 --max=5
    kubectl get hpa
    

    JVM tipp

    A memory limit ~20%-kal nagyobb legyen a -Xmx-nél, különben OOMKilled.

    Részletek

  • Namespace és Service Account


    Névtér váltás és privát registry hitelesítés a SA-n keresztül.

    kubectl config set-context --current --namespace=dev
    # vagy: kubens dev
    
    kubectl patch serviceaccount default \
      -p '{"imagePullSecrets": [{"name": "nexus-creds"}]}'
    

    Részletek

  • JVM debug és JMX


    Breakpoint és profilozás futó podon port-forward-dal.

    # Debug:
    kubectl port-forward deployment/my-java-app 5005:5005
    # JMX (VisualVM):
    kubectl port-forward deployment/my-java-app 3000:3000
    

    JVM: -agentlib:jdwp=transport=dt_socket,server=y,suspend=n,address=*:5005

    Részletek

  • TLS és tanúsítvány


    Self-signed vagy CSR alapú HTTPS tanúsítvány Ingress számára.

    openssl genrsa -out tls.key 2048
    openssl req -new -key tls.key -out tls.csr -subj "/CN=api.ceged.hu"
    openssl x509 -req -days 365 -in tls.csr -signkey tls.key -out tls.crt
    kubectl create secret tls cegen-tls-secret --cert=tls.crt --key=tls.key
    

    Részletek

  • Hasznos eszközök


    k9s, Stern, Skaffold, kubens/kubectx, debug pod.

    kubectl run test-connection --rm -it \
      --image=curlimages/curl -- curl http://my-java-svc:8080
    

    Részletek

Általános tippek

Legfontosabb parancsok napi használatra

Művelet Parancs
Podok listája kubectl get pods
Élő logok követése kubectl logs -f <pod>
Pod események kubectl describe pod <pod>
Shell a podban kubectl exec -it <pod> -- /bin/sh
Rollout pánikgomb kubectl rollout undo deployment/<name>
Teljes manifest export kubectl get <res> <name> -o yaml > export.yaml
Tiszta sablon generálás kubectl create <res> --dry-run=client -o yaml