Faydalı komutlar listesi

Kubernetes – linux ve genelde kullandığımız diğer ürünler üzerinde kullandığımız işinize yarayacak bazı komutları paylaşıyorum;

Kubernetes üzerinde çalışmayan – Running ve Completed durumda olmayan tüm podların delete edilmesi için;

kubectl get po -A -o wide| grep -vE "Compl|Runn"|awk {'print $1,$2'}|grep -v NAMESPACE|sed "s,^,kubectl delete pod --force -n  ,g"|bash

Kubernetes üzerinde belirli podların içerisinde olan redislere flushall ve /data/ altındaki db file silmek için;

for pod in `kubectl get pods -l 'label' --field-selector=status.phase==Running -o name |cut -f 2 -d /`;do echo $pod;kubectl exec -it $pod -c redis -- redis-cli  -s /sock/redis.sock flushall ; kubectl exec -it $pod -c redis -- rm -f /data/* ;done

KubernetesPhp podu içerisinde opcache status için;

curl -sLO https://github.com/gordalina/cachetool/releases/latest/download/cachetool.phar

php cachetool.phar opcache:status --fcgi=/sock/php-fpm.sock

Portworx üzerinde disk ekleme – büyütme vb. için;

1-) drain portworx-node

pxctl service node drain-attachments submit --node <NODE_ID>

drain sürecini izlemek icin

pxctl service node drain-attachments status --job-id <ONCEKI_KOMUTUN_CIKTISINDAKI_JOB_ID>


2-) drain k8s node
kubectl drain <K8S_NODE_NAME> --delete-emptydir-data --ignore-daemonsets

3-) ilgili worker'da su komutlari calistir

systemctl stop portworx
rm -f /etc/systemd/system/portworx*
grep -q '/opt/pwx/oci /opt/pwx/oci' /proc/self/mountinfo && umount /opt/pwx/oci

pxctl service node-wipe --all


4-) diger workerlardan birinde sunlari calistir

silinecek node'un idsi ile

pxctl cluster delete <NODE_ID>


5-) vcenter'da gerekli disk ekleme cikarma islemini yap

6-) node'u uncordon et

kubectl uncordon <K8S_NODE_NAME>

Kubernetes secret içindeki sertifikaların okunulabilir olması için;

kubectl -n namespace get secret secretname  -o=json | jq -r '.data["tls.crt"]' | base64 -d | openssl x509 -in /dev/stdin -noout -text

Loki üzerinde örnek bir namespace içindeki ngix loglarını incelemek için;

{namespace="namespace", container="nginx"} !~ "health_check.php" | pattern `<remote_ip> - - <time_local> "<request_method> <request_path> <http_ver>" <status> <bytes_sent> <referrer> "<user_agent>" <x_forwarded_for>` | line_format "{{ .x_forwarded_for }} - {{.remote_ip}} - {{.request_path}} - {{.status}} - {{.request_method}} - {{.user_agent}} - {{.referrer}}" 

Loki ingress-nginx namespace için arama patterni;

{namespace="ingress-nginx"} |~ "armagan-armag" !~ `" 503` | pattern `<remote_ip> - - <time_local> "<request_method> <request_path> <http_ver>" <status> <bytes_sent> <referrer> "<user_agent>" <_>` | line_format "{{.remote_ip}} - - {{.request_path}} - {{.status}} - {{.request_method}} - {{.user_agent}} - {{.referrer}}" 

Kubernetes ortamında “ingress-nginx” namespaceinde loglarını alıp, yalnızca belirli hata mesajlarını (HTTP 400 ve HTTP 404) getirme;

kubectl -n ingress-nginx logs pod --tail=100000 |grep -Ei 'HTTP/2.0" 400|HTTP/2.0" 404'| awk {print'$1,$3,$4,$5,$6,$7,$8,$9,$13,$14'}

Mongodump exclude pattern

mongodump -d databasename --excludeCollection=exclude-collection-name1  --excludeCollection=exclude-collection-name2 --gzip --archive=file.gz

Mongodump just 1 collection

mongodump -d middleware -c sales_order --gzip --archive=/tmp/salesorder.gz

Mongorestore full

mongorestore --gzip --archive=file.gz --db databasename

Mongorestore only one collection

mongorestore --gzip --nsInclude=DB_NAME.COLL_NAME --archive=file.gz

Bash – Bir sql file dosyasından core config data tablosunu yeni bir sql file dosyasına almaya yarar;

grep -E "(CREATE TABLE|INTO)"\ \`core_config_data\` dbdump.sql > core_config_data.sql

Bir yanıt yazın

E-posta adresiniz yayınlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir

Bu site, istenmeyenleri azaltmak için Akismet kullanıyor. Yorum verilerinizin nasıl işlendiği hakkında daha fazla bilgi edinin.