Kubernetes practice
December 7, 2022
Полезные для сдачи СКА команды
Здесь будет список полезных команд для сдачи СКА, которые надо выучить:
kubectl create deploy cam-nginx --image=nginx:latest kubectl scale deploy cam-nginx --replicas=2 #увеличиваем кол-во реплик до двух kubectl expose deploy cam-nginx --type=LoadBalancer --port=80 #создаём для него Service типа LB с открытым портом 80. kubectl set image deploy cam-nginx nginx=nginx:1.23 kubectl rollout undo deploy cam-nginx
kubectl get svc kubectl get po kubectl get deploy kubectl get ds kubectl get sts kubectl get ing kubectl gey pc kubectl get pdb kubectl get quota kubectl get limits kubectl get np
Запускаем какой-то манифест: cat <<<EOF | kubectl apply -f - ... EOF
kubectl run nginx --image=nginx kubectl expose po nginx --port 80 kubectl set image po nginx nginx=nginx:latest
Императивный подход к созданию ресурсов.
kubectl create deployment nginx --image=nginx:latest # создаём деплоймент kubectl create secret generic cam-secret --from-literal=cameda=goodPa$word # создаём секрет kubectl create cm nginx-config --from-file /etc/nginx/site-available/default kubectl create sa cameda-sa kubectl create ns prod kubectl run httpd --image=httpd:alpine --port=80 --expose # создаём под и сервис kubectl run --restart=Never --image=busybox:1.28.4 static-busybox --dry-run=client -o yaml --command — sleep 1000 > /etc/kubernetes/manifests/static-busybox.yaml
Посмотреть на ноде taints/label/annotations:
kubectl get no cl1k0lmd1e01fb8jfc48-ofit -ojson | jq -r '.spec.taints' kubectl get no cl1k0lmd1e01fb8jfc48-ofit -ojson | jq -r '.metadata.labels' kubectl get no cl1k0lmd1e01fb8jfc48-ofit -ojson | jq -r '.metadata.annotations'
kubectl taint no cl1k0lmd1e01fb8jfc48-ofit cam=taint:NoSchedule kubectl taint no cl1k0lmd1e01fb8jfc48-ofit cam=taint:NoExecute kubectl taint no cl1k0lmd1e01fb8jfc48-ofit cam=taint:NoSchedule- kubectl taint no cl1k0lmd1e01fb8jfc48-ofit cam=taint:NoExecute- kubectl label no cl1k0lmd1e01fb8jfc48-ofit cam=taint kubectl label no cl1k0lmd1e01fb8jfc48-ofit cam- kubectl annotate no cl1k0lmd1e01fb8jfc48-ofit author=cameda kubectl annotate no cl1k0lmd1e01fb8jfc48-ofit author-
kubectl patch deployment/deployment_name --patch "{\"spec\": {\"template\": {\"spec\": {\"initContainers\": [{\"name\": \"container_name\",\"image\": \"url_to_container\"}]}}}}"
kubectl top po kubectl logs cam-nginx kubectl label po cam-nginx app=nginx kubectl get po -A -l app=nginx
Открываем доступ к контейнеру извне через форвардинг портов: kubectl port-forward pod_name hostPort:podPort kubectl port-forward cam-nginx 8080:80
kubectl api-resources - смотрим какие ресурсы можно создавать в k8s
kubectl create service nodeport my-ns --tcp=5678:8080 #port/targetport kubectl create service nodeport my-ns --tcp=5678:8080 --node-port=32000 kubectl create service clusterip my-cs --tcp=5678:8080 kubectl create service loadbalancer my-lbs --tcp=5678:8080
kubectl drain <node-name> --ignore-daemonsets
kubectl delete po <pod_name> --grace-period=0 --force
kubectl config set-context $(kubectl config current-context) --namespace=dev