The fact that you have tagged this ticket with google-cloud-platform I am assuming your question is with reference to GKE (though this will also apply to kubernetes in general):
You can solve your problem using network policies object. You can create network policies to manage traffic between two pods and to outside world:
apiVersion: networking.k8s.io/v1
kind: NetworkPolicy
metadata:
name: test-network-policy
namespace: default
spec:
podSelector:
matchLabels:
role: db
policyTypes:
- Ingress
- Egress
ingress:
- from:
- ipBlock:
cidr: 172.17.0.0/16
except:
- 172.17.1.0/24
- namespaceSelector:
matchLabels:
project: myproject
- podSelector:
matchLabels:
role: frontend
ports:
- protocol: TCP
port: 6379
egress:
- to:
- ipBlock:
cidr: 10.0.0.0/24
ports:
- protocol: TCP
port: 5978
see: https://kubernetes.io/docs/concepts/services-networking/network-policies/