J'ai un pod appelé mysql-1 avec les ports 3306 et 3307 ouverts.
Je veux créer une politique réseau qui autorise la connexion entrante de backend-1 au 3306 et backend-2 au 3307.
Pour l'instant, tout ce que j'ai pu penser est cette politique :
apiVersion: networking.k8s.io/v1
kind: NetworkPolicy
metadata:
name: mysql-ingress-policy-1
namespace: v2ci
spec:
podSelector:
matchLabels:
app: mysql-1
release: v2
types:
- Ingress
ingress:
- from:
- podSelector:
matchLabels:
app: backend-1
release: v2
- podSelector:
matchLabels:
app: backend-1
release: v2
ports:
- protocol: TCP
port: 3306
- protocol: TCP
port: 3307
Le problème est que avec cette politique, chaque pod backend a accès aux deux ports.
Est-il possible de combiner ports
avec podSelector
d'une manière ou d'une autre, ou dois-je juste créer une politique réseau pour chaque pod backend ?
0 votes
Tel que je le sais, il n'y a pas de moyen évident d'obtenir un tel comportement. Ainsi, créer deux politiques réseau semble être une option viable.
0 votes
Je suis arrivé à la même conclusion aussi. J'ai également parcouru le code k8s pour voir s'il y a un moyen de combiner les ports et podSelectors, je n'ai rien trouvé. Je suppose que c'est intentionnel. Comme vous l'avez dit, il devrait s'agir de deux politiques réseau différentes.
0 votes
Je ne peux pas voir l'étiquette
backend-2
dans ce fichier yaml. Mais à part cela, vous pouvez fournir deux sections- from
différentes...