Beberapa tim mungkin menjadi rutinitas harian bagi sebagian pembaca, tetapi jika ada yang akan menemukan hal-hal baru untuk diri mereka sendiri, sehingga meningkatkan keefektifannya, tujuan artikel akan tercapai.
NB : Beberapa dari perintah yang tercantum di bawah ini disusun oleh teknisi kami, sementara yang lain ditemukan di Internet. Dalam kasus terakhir, mereka telah diuji dan terbukti bermanfaat.
Jadi ayo pergi!
pod'
- , pod'
--all-namespaces. , β-A( , Kubernetes 1.15). - pod', (..
Running)?
kubectl get pods -A --field-selector=status.phase!=Running | grep -v Complete
,--field-selector(. ). - :
kubectl get no -o json | \ jq -r '.items | sort_by(.status.capacity.memory)[]|[.metadata.name,.status.capacity.memory]| @tsv'

- pod' :
kubectl get po -o json --all-namespaces | \ jq '.items | group_by(.spec.nodeName) | map({"nodeName": .[0].spec.nodeName, "count": length}) | sort_by(.count)'

- , - DaemonSet - . β , - , DaemonSet':
ns=my-namespace pod_template=my-pod kubectl get node | grep -v \"$(kubectl -n ${ns} get pod --all-namespaces -o wide | fgrep ${pod_template} | awk '{print $8}' | xargs -n 1 echo -n "\|" | sed 's/[[:space:]]*//g')\" -
kubectl toppod', :
# cpu kubectl top pods -A | sort --reverse --key 3 --numeric # memory kubectl top pods -A | sort --reverse --key 4 --numeric - pod' β , :
kubectl get pods --sort-by=.status.containerStatuses[0].restartCount
, (. PodStatus ContainerStatus).
- Ingress', pod' . ,
-o wide:
kubectl -n jaeger get svc -o wide NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE SELECTOR jaeger-cassandra ClusterIP None <none> 9042/TCP 77d app=cassandracluster,cassandracluster=jaeger-cassandra,cluster=jaeger-cassandra
, , pod'. - pod' limits requests:
kubectl get pods -n my-namespace -o=custom-columns='NAME:spec.containers[*].name,MEMREQ:spec.containers[*].resources.requests.memory,MEMLIM:spec.containers[*].resources.limits.memory,CPUREQ:spec.containers[*].resources.requests.cpu,CPULIM:spec.containers[*].resources.limits.cpu'

-
kubectl run(create,apply,patch) β--dry-run.-o yaml, . :
kubectl run test --image=grafana/grafana --dry-run -o yaml apiVersion: apps/v1 kind: Deployment metadata: creationTimestamp: null labels: run: test name: test spec: replicas: 1 selector: matchLabels: run: test strategy: {} template: metadata: creationTimestamp: null labels: run: test spec: containers: - image: grafana/grafana name: test resources: {} status: {}
, / . - - :
kubectl explain hpa KIND: HorizontalPodAutoscaler VERSION: autoscaling/v1 DESCRIPTION: configuration of a horizontal pod autoscaler. FIELDS: apiVersion <string> APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#resources kind <string> Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds metadata <Object> Standard object metadata. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#metadata spec <Object> behaviour of autoscaler. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#spec-and-status. status <Object> current information about the autoscaler.
!
- IP- :
kubectl get nodes -o json | \ jq -r '.items[].status.addresses[]? | select (.type == "InternalIP") | .address' | \ paste -sd "\n" -

- nodePort, :
kubectl get --all-namespaces svc -o json | \ jq -r '.items[] | [.metadata.name,([.spec.ports[].nodePort | tostring ] | join("|"))]| @tsv'

- , CNI (, Flannel), pod' . pod', :
kubectl get nodes -o jsonpath='{.items[*].spec.podCIDR}' | tr " " "\n"

- pod' c timestamp :
kubectl -n my-namespace logs -f my-pod --timestamps 2020-07-08T14:01:59.581788788Z fail: Microsoft.EntityFrameworkCore.Query[10100]
, ? - , pod' β
--tail:
kubectl -n my-namespace logs -f my-pod --tail=50 - pod':
kubectl -n my-namespace logs -f my-pod --all-containers - pod' label':
kubectl -n my-namespace logs -f -l app=nginx - , , , :
kubectl -n my-namespace logs my-pod --previous
- ?
kubectl get secrets -o json --namespace namespace-old | \ jq '.items[].metadata.namespace = "namespace-new"' | \ kubectl create-f - - :
openssl req -x509 -nodes -days 365 -newkey rsa:2048 -keyout tls.key -out tls.crt -subj "/CN=grafana.mysite.ru/O=MyOrganization" kubectl -n myapp create secret tls selfsecret --key tls.key --cert tls.crt
Alih-alih kesimpulan - daftar kecil bahan dan koleksi serupa yang ditemukan di Internet:
- Cheatsheet resmi dari dokumentasi Kubernetes;
- Pengenalan singkat dan tablet 2 halaman yang bagus dari Akademi Linux untuk membantu mengurangi waktu bagi calon insinyur:

- Daftar perintah yang sangat luas dari Blue Matador, dibagi menjadi beberapa bagian;
- Pilihan tautan pada intinya ke tabel dengan perintah, artikel tentang topik dan beberapa perintah;
- Repositori GitHub Kubernetes-Cheat-Sheet dari enthusiast lain hanya berisi perintah yang dikategorikan;
- Repositori kubectl-aliases GitHub adalah surga bagi para singkatan.
PS
Baca juga di blog kami:
- Β« Kubernetes kubectlΒ»;
- Β« Kubernetes kubectlΒ»;
- Β« KubernetesΒ».