k8s - bozkurtmithat/glaptop GitHub Wiki
#Kubernetes Notes
ssh-keygen -t rsa -b 4096
ssh-copy-id hedef_makine_ip
#Hedef makinede, ~/.ssh dizininin izinleri 700, authorized_keys dosyasının izinleri ise 600 olmalıdır:
chmod 700 ~/.ssh
chmod 600 ~/.ssh/authorized_keys
#Hedef makinede SSH servisinin anahtar tabanlı kimlik doğrulamayı desteklediğinden emin olun.
# /etc/ssh/sshd_config dosyasında aşağıdaki özellikler ayarlı olmalıdır.
PubkeyAuthentication yes
AuthorizedKeysFile .ssh/authorized_keys
#değilse ayarlayın ve sshd servisini restart edin.
#sudo systemctl restart sshd
#Hedef makinede SELinux etkinse, authorized_keys dosyasının bağlamını düzeltmek gerekebilir:
restorecon -R -v ~/.ssh
#hala şifre soruyorsa authorized_keys dosyasındaki birden fazla kayıt olabilir. Silip adımları tekrar yapın.
alias k-cloud='export KUBECONFIG=/mylinuz/kubernetes-works/kubernetes-rke-configs/cloud/kube_config_cluster.yml'
#profili aktifle
k-cloud
#ilk komutu çalıştır.
kubectl get pods -A
kubectl get pods -A | grep POD_NAME | grep Running| awk '{print "kubectl logs --tail=200 -f "$2" -n "$1" &"}'
kubectl get pods -A | grep POD_NAME | grep Running| awk '{print "kubectl exec --stdin --tty -n "$1" "$2" -- /bin/sh"}'
cat << 'EOF' > nc.sh
#!/bin/bash
if [ -z "$1" ]; then
echo "Kullanım: $0 <PID>"
exit 1
fi
PID=$1
if [ ! -d /proc/$PID ]; then
echo "PID $PID bulunamadı."
exit 2
fi
echo "PID: $PID için açık bağlantılar listeleniyor..."
echo ""
for PROTO in tcp tcp6 udp udp6; do
FILE="/proc/net/$PROTO"
[ -f $FILE ] || continue
echo "### $PROTO bağlantıları ###"
for INODE in $(ls -l /proc/$PID/fd/ 2>/dev/null | grep socket: | awk -F'[' '{print $2}' | awk -F']' '{print $1}'); do
MATCH=$(grep " $INODE" $FILE)
[ -z "$MATCH" ] && continue
echo "$MATCH" | while read -r LINE; do
LADDR=$(echo $LINE | awk '{print $2}')
RADDR=$(echo $LINE | awk '{print $3}')
STATE=$(echo $LINE | awk '{print $4}')
LIP_HEX=${LADDR%:*}
LPORT_HEX=${LADDR#*:}
RIP_HEX=${RADDR%:*}
RPORT_HEX=${RADDR#*:}
IP4() {
printf "%d.%d.%d.%d" 0x${1:6:2} 0x${1:4:2} 0x${1:2:2} 0x${1:0:2}
}
LIP=$(IP4 $LIP_HEX)
LPORT=$((16#$LPORT_HEX))
RIP=$(IP4 $RIP_HEX)
RPORT=$((16#$RPORT_HEX))
echo "Local : $LIP:$LPORT <--> Remote: $RIP:$RPORT State: $STATE"
done
done
echo ""
done
EOF
chmod 777 nc.sh
Eğer Pod bir Deployment tarafından yönetiliyorsa önerilen yöntem:
kubectl rollout restart deployment <deployment-adı> -n <namespace>
Eğer Pod bir Deployment, StatefulSet veya DaemonSet altında çalışıyorsa:
kubectl delete pod <pod-adı> -n <namespace>
Label / Annotation Patch ile Trigger Et
kubectl patch deployment <deployment-adı> -n <namespace> -p \
"{\"spec\":{\"template\":{\"metadata\":{\"annotations\":{\"restarted-at\":\"$(date +%s)\"}}}}}"