Momentan habe ich K8s API-Pods in einem K8s-Service, der mit einem K8s Redis-Service verbunden ist, mit eigenen K8s-Pods. Das Problem ist, ich benutze NodePort, BEIDE sind der Öffentlichkeit zugänglich. Ich möchte nur die API für die Öffentlichkeit zugänglich machen. Das Problem ist, dass das API es nicht sehen kann, wenn ich den Redis-Service nicht öffentlich mache. Gibt es eine Möglichkeit, zwei Dienste miteinander zu verbinden, ohne sie der Öffentlichkeit zugänglich zu machen?Wie können zwei Kubernetes-Dienste miteinander kommunizieren?
Das ist mein API-Service yaml:
apiVersion: v1
kind: Service
metadata:
name: app-api-svc
spec:
selector:
app: app-api
tier: api
ports:
- protocol: TCP
port: 5000
nodePort: 30400
type: NodePort
Und das ist mein Redis Service yaml:
apiVersion: v1
kind: Service
metadata:
name: app-api-redis-svc
spec:
selector:
app: app-api-redis
tier: celery_broker
ports:
- protocol: TCP
port: 6379
nodePort: 30537
type: NodePort
Ich brauche einen Dienst, um NodePort zu sein, so kann die Öffentlichkeit oder jemand auf einem anderen Computer es treffen. So funktioniert es richtig? Ich bin ziemlich langsam, wenn es um die Vernetzung geht –
Der Redis-Dienst sollte ClusterIP sein, wenn Sie möchten, dass es privat ist. Die API könnte NodePort oder LoadBalancer sein, das ist in Ordnung. –
Wie löst die App "app-api-redisis-svc" auf die Cluster-IP auf? – kaizenCoder