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 :)