J'essaie de limiter à mon OpenVPN pour permettre d'accéder à l'infrastructure interne et de ne pas limiter que par "Développement" d'espace de noms ", j'ai donc commencé avec une stratégie simple qui nie tout le trafic de sortie et ne voit aucun effet ou aucun retour de cluster qu'il a été appliqué, je J'ai lu toutes les documents officiels et non et n'a pas trouvé de solution, voici ma politique:
kind: NetworkPolicy
apiVersion: networking.k8s.io/v1
metadata:
name: policy-openvpn
namespace: default
spec:
podSelector:
matchLabels:
app: openvpn
policyTypes:
- Egress
egress: []
J'ai appliqué la politique de réseau ci-dessus avec kubectl apply -f policy.yaml
Commande, mais je ne vois aucun effet de cette politique, je suis toujours capable de vous connecter à quelque chose de mon POD OpenVPN, comment déboguer cela et voir ce qui ne va pas avec ma politique?
Cela ressemble à une boîte noire pour moi et que ne peut faire que la méthode d'erreur d'essai, ce qui ne semble pas fonctionner.
Comment puis-je valider cela qu'il trouve des pods et applique la stratégie à leur politique?
J'utilise le dernier cluster Kubettes fourni par GKE
J'ai remarqué que je n'ai pas vérifié "Utilisez NetworkPolicy" dans Google Cloud Paramètres et après avoir vérifié que mon VPN arrêté, mais je ne sais pas comment vérifier, ou pourquoi VPN me permet de vous connecter et de bloquer toutes les demandes de réseau. , très étrange, existe-t-il un moyen de déboguer est plutôt que de changer de manière aléatoire?
GKE utilise Calico pour la mise en œuvre de la politique de réseau. Vous devez activer la stratégie réseau réseau pour les maîtres et les nœuds avant d'appliquer la stratégie de réseau. Vous pouvez vérifier si Calico est activé en recherchant des pods calico dans l'espace de noms de Kube-System.
kubectl get pods --namespace=kube-system
Pour vérifier les stratégies de réseau, vous pouvez voir les commandes suivantes.
kubectl get networkpolicy
kubectl describe networkpolicy <networkpolicy-name>
Lorsque vous exécutez, vous pouvez vérifier l'étiquette utilisée pour un sélecteur de pod:
k describe netpol <networkpolicy-name>
Name: <networkpolicy-name>
Namespace: default
Created on: 2020-06-08 15:19:12 -0500 CDT
Labels: <none>
Annotations: Spec:
PodSelector: app=nginx
Le sélecteur de pod vous montrera les étiquettes de ce NetPol appliqué également. Ensuite, vous pouvez présenter tous les pods avec cette étiquette par:
k get pods -l app=nginx
NAME READY STATUS RESTARTS AGE
nginx-deployment-f7b9c7bb-5lt8j 1/1 Running 0 19h
nginx-deployment-f7b9c7bb-cf69l 1/1 Running 0 19h
nginx-deployment-f7b9c7bb-cxghn 1/1 Running 0 19h
nginx-deployment-f7b9c7bb-ppw4t 1/1 Running 0 19h
nginx-deployment-f7b9c7bb-v76vr 1/1 Running 0 19h