Kubernetes (kubectl)

test

11 cards


Klaster bilan har kuni işlatiladigan kubectl buyruqlari: kontekst, podlar, deploymentlar, servislar, konfiguratsiya, loglar, masştablaş va YAML namunalari.

Kontekst va klaster

Qaysi klaster va namespace bilan işlayotganingizni biling.

kubectl versionKlient va server versiyasi
kubectl cluster-infoKlaster manzillari
kubectl config get-contextsBarça kontekstlar
kubectl config use-context prodKontekstni almaştiradi
kubectl config set-context --current --namespace=devJoriy namespace ni özgartiradi
kubectl api-resourcesMavjud resurs turlari

Podlar

Konteynerlar işlaydigan eng kiçik birlik.

kubectl get podsJoriy namespace dagi podlar
kubectl get pods -ABarça namespace lardagi podlar
kubectl get pods -o wideNode va IP manzil bilan
kubectl describe pod web-7d4bPod haqida töliq maʼlumot va hodisalar
kubectl delete pod web-7d4bPodni öçiradi (deployment yangisini yaratadi)
kubectl get pods --watchÖzgarişlarni real vaqtda kuzatadi

Deploymentlar

Ilovani kerakli nusxalar soni bilan işlatiş.

kubectl get deployDeploymentlar röyxati
kubectl create deploy web --image=nginxYangi deployment yaratadi
kubectl set image deploy/web nginx=nginx:1.27Image ni yangilaydi
kubectl rollout status deploy/webYangilaş tugaşini kutadi
kubectl rollout history deploy/webVersiyalar tarixi
kubectl rollout undo deploy/webOldingi versiyaga qaytaradi

Masştablaş

Nusxalar sonini qölda yoki avtomatik boşqariş.

kubectl scale deploy/web --replicas=55 ta nusxa
kubectl autoscale deploy/web --min=2 --max=10 --cpu-percent=70HPA yaratadi
kubectl get hpaAvtomatik masştablaş holati
kubectl top podsPodlarning CPU / xotira sarfi
kubectl top nodesNode larning yuklamasi

Servislar va tarmoq

Podlarga barqaror manzil beriş va taşqaridan kiriş.

kubectl get svcServislar röyxati
kubectl expose deploy/web --port=80 --target-port=8080Deployment uçun servis yaratadi
kubectl port-forward svc/web 8080:80Servisni lokal portga ulaydi
kubectl get ingressIngress qoidalari
kubectl get endpoints webServis ortidagi pod manzillari

Konfiguratsiya

ConfigMap va Secret — sozlamalarni koddan ajratiş.

kubectl create configmap app-config --from-file=config.yamlFayldan ConfigMap
kubectl create secret generic db --from-literal=password=...Maxfiy qiymat
kubectl get secret db -o jsonpath='{.data.password}'Qiymatni öqiş (base64)
kubectl edit configmap app-configMuharrirda tahrirlaş
kubectl get cm,secretIkkalasini bir röyxatda

Loglar va debug

Muammo qayerda ekanini topiş.

kubectl logs web-7d4bPod logi
kubectl logs -f deploy/webDeployment logini kuzatadi
kubectl logs web-7d4b --previousQayta işga tuşgan konteynerning oldingi logi
kubectl exec -it web-7d4b -- shPod içida shell oçadi
kubectl get events --sort-by=.lastTimestampOxirgi hodisalar
kubectl debug -it web-7d4b --image=busyboxVaqtinçalik debug konteyner

Resurslarni qöllaş

Deklarativ usul: holatni YAML da yozib, klasterga uzatiş.

kubectl apply -f deploy.yamlFaylni qöllaydi (yaratadi yoki yangilaydi)
kubectl apply -f k8s/Papkadagi barça fayllar
kubectl diff -f deploy.yamlNima özgarişini oldindan köradi
kubectl delete -f deploy.yamlFayldagi resurslarni öçiradi
kubectl get deploy web -o yamlMavjud resursni YAML da çiqaradi

YAML namunalari

Deployment

yaml
apiVersion: apps/v1kind: Deploymentmetadata:  name: webspec:  replicas: 3  selector:    matchLabels: { app: web }  template:    metadata:      labels: { app: web }    spec:      containers:        - name: web          image: nginx:1.27          ports:            - containerPort: 80

Service

yaml
apiVersion: v1kind: Servicemetadata:  name: webspec:  selector: { app: web }  ports:    - port: 80      targetPort: 80  type: ClusterIP

Qisqa nomlar

popods
deploydeployments
svcservices
cmconfigmaps
nsnamespaces
hpahorizontalpodautoscalers