Skip to content

Notes

ContainerD GPLv3 license

#!/usr/bin/env bash
mkdir -p /etc/apt/keyrings
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | gpg --dearmor -o /etc/apt/keyrings/docker.gpg
chmod a+r /etc/apt/keyrings/docker.gpg
echo "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.gpg] https://download.docker.com/linux/debian $(lsb_release -cs) stable" | tee /etc/apt/sources.list.d/docker.list > /dev/null
apt update
apt install -y containerd.io
containerd config default > /etc/containerd/config.toml
sed -i 's#SystemdCgroup = false#SystemdCgroup = true#g' /etc/containerd/config.toml
sed -i 's#pause:3.6#pause:3.9#g' /etc/containerd/config.toml
service containerd restart
#images
ctr images list
ctr images pull docker.io/library/alpine:latest
#containers
ctr containers list
ctr run -d docker.io/library/hello-world:latest hello-world
ctr containers info hello-world
ctr tasks list
install
#!/usr/bin/env bash
https://github.com/containerd/nerdctl/releases
wget https://github.com/containerd/nerdctl/releases/download/v1.7.0/nerdctl-1.7.0-linux-amd64.tar.gz
tar zxvf *.gz
chmod +x nerdctl
mv nerdctl /usr/local/bin/
rm containerd-rootless*.sh nerdctl-*.gz

Crictl GPLv3 license

crictl pods
crictl ps
crictl inspectp [pod-id]
crictl inspect [container-id]
crictl stop [container-id]
crictl rm [container-id]
crictl stopp [pod-id]
crictl rmp [pod-id]
crictl logs [container-id]
crictl exec -i -t [container-id] [command]
crictl pull [image-name]
crictl images
crictl rmi [image-name]

etcd GPLv3 license

etcdctl member list
etcdctl endpoint health
etcdctl endpoint status --write-out=table
etcdctl alarm list
etcdctl check perf

#backups
etcdctl snapshot save backup.db

#delete all db
etcdctl del --prefix /

Kubectl GPLv3 license

source <(kubectl completion bash)
kubectl run nginx --image=nginx --dry-run=client -o yaml
kubectl scale --replicas=3 deployment/nginx
KUBE_EDITOR="nano" kubectl edit deployment/nginx
kubectl create deployment nginx --image=nginx --replicas=4 --dry-run=client -o yaml
kubectl config set-context $(kubectl config current-context) --namespace=pruebas

DemoAPP GPLv3 license

apiVersion: v1
kind: Namespace
metadata:
  name: pruebas
  labels:
    name: pruebas
apiVersion: apps/v1
kind: Deployment
metadata:
  name: deployment-test
  namespace: pruebas
  labels:
    app: front
spec:
  replicas: 1
  selector:
    matchLabels:
      app: front
  template:
    metadata:
      labels:
        app: front
    spec:
      containers:
      - name: nginx
        image: nginx:alpine
        command: ["sh", "-c", "echo TEST from $HOSTNAME > /usr/share/nginx/html/index.html && nginx -g 'daemon off;'"]
apiVersion: v1
kind: Service
metadata:
  name: test-service
  namespace: pruebas
  labels:
    app: front
spec:
  type: ClusterIP
  selector:
    app: front
  ports:
    - protocol: TCP
      port: 7788
      targetPort: 80
apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
  name: test-ingress
  namespace: pruebas
  annotations:
    kubernetes.io/ingress.class: "nginx"
spec:
  rules:
  - host: demoapp.trastero.org
    http:
      paths:
      - path: /
        pathType: Prefix
        backend:
          service:
            name: test-service
            port:
              number: 7788
apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
  name: test-ingress
  namespace: pruebas
  annotations:
    kubernetes.io/ingress.class: "nginx"
    cert-manager.io/cluster-issuer: "letsencrypt-prod"
spec:
  tls:
  - hosts:
    - demoapp.trastero.org
    secretName: ssl-cert-test
  rules:
  - host: demoapp.trastero.org
    http:
      paths:
      - path: /
        pathType: Prefix
        backend:
          service:
            name: test-service
            port:
              number: 7788

CKA NOTES GPLv3 license

kubectl get nodes
kubectl drain <node-name> --ignore-daemonsets --delete-local-data
kubectl delete node <node-name>
kubectl get nodes
kubectl -n intelion delete pod frontend-5569594d66-x6bw7 --force --grace-period=0
az login
az aks get-credentials --subscription "<sub-name>" --resource-group <resource.group.name> --name <cluster.name>

Scheduling GPLv3 license

apiVersion: v1
kind: Pod
metadata:
  name: nginx
spec:
  containers:
  - name: nginx
    image: nginx
  nodeName: kube-01
kubectl get pods -A -o wide --show-labels
kubectl get pods -A -l app=lala,tier=front
#Taints:
#show:
kubectl describe node kube-01 | grep -i taint
#Types:
# NoSchedule | PreferNoSchedule | NoExecute
kubectl taint nodes kube-01 key=value:taint-effect
#remove:
kubectl taint nodes controlplane node-role.kubernetes.io/control-plane:NoSchedule-

#Tolerations:
apiVersion:
kind: Pod
metadata:
  name: nginx
spec:
  containers:
  - name: nginx
    image: nginx
  tolerations:
  - key: "key"
    operator: "Equal"
    value: "value"
    effect: "NoSchedule"

LifeCycle GPLv3 license

#status
kubectl rollout status deployment nginx-deployment
#history
kubectl rollout history deployment nginx-deployment
#undo
kubectl rollout undo deployment nginx-deployment