Kubernetes
Узлы
``bash kubectl get no # Показать всю информацию об узлах kubectl get no -o wide # Показать дополнительную информацию обо всех узлах kubectl describe no # Показать подробную информацию об узле kubectl get no -o yaml # Показать подробную информацию об узле в формате yaml kubectl get node –selector=[имя_метки] # Отфильтровать узлы с указанной меткой kubectl get nodes -o jsonpath=’{.items[*].status.addresses[?(@.type=“ExternalIP”)].address}'
Вывести информацию о поле, заданную выражением jsonpath
kubectl top node [имя_узла] # Отображение использования узла (процессор/память/хранилище)
Имя ресурса: nodes, сокращение: no
### Узлы
``bash
kubectl get po # Отображение информации обо всех группах контейнеров
kubectl get po -o wide
kubectl describe po
kubectl get po --show-labels # Просмотр меток группы контейнеров
kubectl get po -l app=nginx
kubectl get po -o yaml
kubectl get pod [pod_name] -o yaml --export
kubectl get pod [pod_name] -o yaml --export > nameoffile.yaml
# Экспорт информации о группе контейнеров в файл в формате yaml
kubectl get pods --field-selector status.phase=Running
# Используйте селектор полей для фильтрации информации о группах контейнеров
Имя ресурса: pods, сокращение: po
Пространства имен
``bash kubectl get ns kubectl get ns -o yaml kubectl describe ns
Имя ресурса: пространства имен, сокращение: ns
### Развертывания
``bash
kubectl get deploy
kubectl describe deploy
kubectl get deploy -o wide
kubectl get deploy -o yaml
Имя ресурса: deployments, сокращение: deploy
Услуги
``bash kubectl get svc kubectl describe svc kubectl get svc -o wide kubectl get svc -o yaml kubectl get svc –show-labels
Имя ресурса: services, сокращение: svc
### Наборы демонов
``bash
kubectl get ds
kubectl describe ds --all-namespaces
kubectl describe ds [имя_демона] -n [имя_пространства_имен]
kubectl get ds [ds_name] -n [ns_name] -o yaml
Имя ресурса: daemonsets, сокращение: ds
События
``bash kubectl get events kubectl get events -n kube-system kubectl get events -w
Имя ресурса: events, сокращение: ev
### Журналы
``bash
kubectl logs [pod_name]
kubectl logs --since=1h [pod_name]
kubectl logs --tail=20 [pod_name]
kubectl logs -f -c [имя_контейнера] [имя_пода]
kubectl logs [pod_name] > pod.log
Учетные записи служб
``bash kubectl get sa kubectl get sa -o yaml kubectl get serviceaccounts default -o yaml >./sa.yaml kubectl replace serviceaccounts default -f ./sa.yaml
Имя ресурса: serviceaccounts, сокращение: ev
### Наборы реплик
``bash
kubectl get rs
kubectl describe rs
kubectl get rs -o wide
kubectl get rs -o yaml
Имя ресурса: replicasets, сокращение: rs
Роли
``bash kubectl get roles –all-namespaces kubectl get roles –all-namespaces -o yaml
### Секреты
``bash
kubectl get secrets
kubectl get secrets --all-namespaces
kubectl get secrets -o yaml
Карты конфигурации
Имя ресурса: configmaps, сокращение: cm
``bash kubectl get cm kubectl get cm –all-namespaces kubectl get cm –all-namespaces -o yaml
### Ингрессы
Название ресурса: ingresses, сокращение: ing
``bash
kubectl get ing
kubectl get ing --all-namespaces
Постоянные тома
Имя ресурса: persistentvolumes, сокращение: pv
``bash kubectl get pv kubectl describe pv
### Объявление постоянного тома
Имя ресурса: persistentvolumeclaims, сокращение: pvc
``bash
kubectl get pvc
kubectl describe pvc
класс хранилища
Имя ресурса: storageclasses, Сокращение: sc
``bash kubectl get sc kubectl get sc -o yaml
### Множественные ресурсы
``bash
kubectl get svc, po
kubectl get deploy, no
kubectl get all
kubectl get all --all-namespaces
Обновление ресурсов
Taint
``bash kubectl taint [node_name] [taint_name]
### Label
``bash
kubectl label [имя_узла] disktype=ssd
kubectl label [pod_name] env=prod
Поддерживаемые/настраиваемые
``bash kubectl cordon [имя_узла] # обслуживание узла kubectl uncordon [имя_узла] # узел доступен для планирования
### clear
``bash
kubectl drain [имя_узла] # очистить узел
Node/Pod
``bash kubectl delete node [имя_узла] kubectl delete pod [pod_name] kubectl edit node [node_name] kubectl edit pod [pod_name]
### Stateless/Namespaced {.row-span-2}
``bash
kubectl edit deploy [deploy_name]
kubectl delete deploy [deploy_name]
kubectl expose deploy [deploy_name] --port=80 --type=NodePort
kubectl scale deploy [deploy_name] --replicas=5
kubectl delete ns
kubectl edit ns [ns_name]
Сервис
``bash kubectl edit svc [svc_name] kubectl delete svc [svc_name]
### Набор демонов
``bash
kubectl edit ds [ds_name] -n kube-system
kubectl delete ds [ds_name]
Учетная запись службы
``bash kubectl edit sa [sa_name] kubectl delete sa [sa_name]
### Примечания
``bash
kubectl annotate po [pod_name] [annotation]
kubectl annotateno [имя_узла]
Создание ресурсов
Создать капсулу
``bash kubectl create -f [имя_of_файла] kubectl apply -f [имя_of_файла] kubectl run [pod_name] –image=nginx –restart=Never kubectl run [pod_name] –generator=run-pod/v1 –image=nginx kubectl run [pod_name] –image=nginx –restart=Never
### Создать службу
``bash
kubectl create svc nodeport [svc_name] --tcp=8080:80
Создание приложения без статического состояния
``bash kubectl create -f [имя_of_файла] kubectl apply -f [имя_of_файла] kubectl create deploy [имя_развертывания] –image=nginx
### взаимодействие
``bash
kubectl run [pod_name] --image=busybox --rm -it --restart=Never --sh
Выходной YAML
``bash kubectl create deploy [deploy_name] –image=nginx –dry-run -o yaml > deploy.yaml kubectl get po [имя_под] -o yaml –export > pod.yaml
### Справка
``bash
kubectl -h
kubectl create -h
kubectl run -h
kubectl explain deploy.spec
Разное
API
``bash kubectl get –raw /apis/metrics.k8s.io/
### Информация
``bash
kubectl config
kubectl cluster-info
kubectl get componentstatus
Также см.
- Kubernetes Official Documentation (kubernetes.io)