kubectl

Commands

  • View cluster information
  kubectl cluster-info

Apply & Create

  • Just creates a resource
  kubectl create ...
  • Create or modify a resource
  kubectl apply -f pod.yml

Delete

Deleting a pod won't prevent it from being recreated.

  kubectl delete pod [pod-name]

you need to delete it's deployment.

  kubectl delete deployment [deployment-name]

Describe

  kubectl describe pods <...>

Get

  • View all the resources
  kubectl get all
  • Get information about the pods
  kubectl get pods --watch
  kubectl get pods -o wide
  • Get information about deployments
  # Lists deployments and their labels
  kubectl get deployment --show-labels
  # Get deployments with a specific label
  kubectl get deployment -l app=nginx

Port-forward

  • Forward port to enables external calls
  kubectl port-forward [pod-name] [external-port]:[internal-port]
  # For instance...
  kubectl port-forward [pod-name] 8080:80

YAML

Pod

  apiVersion: v1
  kind: Pod
  metadata:
    name: nginx
    labels:
      app: nginx
      ref: stable
  spec:
    containers:
    - name: nginx
      image: nginx:alpine
      ports:
      - containerPort: 80

Pod Healthchecks

  • Probe Types
    • Readiness Probe: Defines when should a container start receiving traffic
    • Liveness Probe: Defines when a container is considered unhealthy and should, therefore, be restarted.
  • Action Types
    • ExecAction
    • TCPSocketAction
    • HTTPGetAction
  apiVersion: v1
  kind: Pod
  metadata:
    name: nginx
    labels:
      app: nginx
      ref: stable
  spec:
    containers:
    - name: nginx
      image: nginx:alpine
      ports:
      - containerPort: 80
      livenessProbe:
        httpGet:
          path: /index.html
          port: 80
        initialDelaySeconds: 15
        timeoutSeconds: 2
        periodSeconds: 5
        failureThreshold: 1
      readinessProbe:
        httpGet:
          path: /index.html
          port: 80
        initialDelaySeconds: 5
        periodSeconds: 10
        failureThreshold: 1
      resources:
        limits:
          memory: "128Mi" # 128 Mb
          cpu: "200m"     # 200 milicpu, i.e, 0.2 cpu or 20% cpu

References:

Backlinks: