Kubernetes - Plugins
Par pepin le mardi, juin 16 2020, 16:30 - Kubernetes - Lien permanent
Il est possible pour simplifier ou enrichir, selon sa propre topologie de cluster kubernetes, d'enrichir celui-ci de plugins. Les plus plugins les plus simple sont des scripts shells, que l'ont va simplement déclarer comme tel. Pour plus d'informations, lire la documentation
Mais ce qui nous intéresse vraiment ici, c'est un petit bloc de cette documentaiton, qui parle du manager de plugin krew
Pour l'installer, il suffit de suivre cette documentation
Mettre à jour la liste de plugins
kubectl krew update
Lister les plugins
kubectl krew search
Installer un plugin
kubectl krew install access-matrix
utiliser le plugin
kubectl access-matrix
L'un des plugin les plus intéressant est ksniff
kubectl krew install ksniff kubectl sniff db2http-6cb54d9c6f-w7dcn -f "port 5000" -o - | tshark -r -
Et nous obtenons une écoute réseau du port 5000 de notre container flask dans un contexte interne à kubernetes !!!
1 0.000000 10.60.0.1 → 10.60.0.19 TCP 76 54502 → 5000 [SYN] Seq=0 Win=64240 Len=0 MSS=1460 SACK_PERM=1 TSval=2264947788 TSecr=0 WS=128 2 0.000018 10.60.0.19 → 10.60.0.1 TCP 76 5000 → 54502 [SYN, ACK] Seq=0 Ack=1 Win=28160 Len=0 MSS=1420 SACK_PERM=1 TSval=3960258476 TSecr=2264947788 WS=128 3 0.026261 10.60.0.1 → 10.60.0.19 TCP 68 54502 → 5000 [ACK] Seq=1 Ack=1 Win=64256 Len=0 TSval=2264947814 TSecr=3960258476 4 0.028300 10.60.0.1 → 10.60.0.19 IPA 150 unknown 0x54 5 0.028316 10.60.0.19 → 10.60.0.1 TCP 68 5000 → 54502 [ACK] Seq=1 Ack=83 Win=28160 Len=0 TSval=3960258504 TSecr=2264947815 6 0.030224 10.60.0.19 → 10.60.0.1 IPA 85 unknown 0x54 7 0.030369 10.60.0.19 → 10.60.0.1 IPA 205 unknown 0x6e 8 0.055745 10.60.0.1 → 10.60.0.19 TCP 68 54502 → 5000 [ACK] Seq=83 Ack=18 Win=64256 Len=0 TSval=2264947844 TSecr=3960258506 9 0.056696 10.60.0.1 → 10.60.0.19 TCP 68 54502 → 5000 [FIN, ACK] Seq=83 Ack=156 Win=64128 Len=0 TSval=2264947845 TSecr=3960258506 10 0.056708 10.60.0.19 → 10.60.0.1 TCP 68 5000 → 54502 [ACK] Seq=156 Ack=84 Win=28160 Len=0 TSval=3960258533 TSecr=2264947845
Les ip nous confrment bien que nous sommes dans le réseau interne de kubernetes, et non pas sur une écouté externe. D'ailleurs pour une écoute externe, le problème serait d'être positionné sur le load balancer, donc l'ip est attribuée dynamiquement, et n'est pas une ressource physique en tant que tel