apiVersion: v1
kind: Service
metadata:
name: mysql-service
labels:
app: mysql
spec:
selector:
app: mysql
ports:
- port: 3309
targetPort: 3306
nodePort: 30301
clusterIP: None
This specification will create a Service which targets TCP port 3306 on any Pod with the app: mysql label, and expose it on an abstracted Service port 3309 (targetPort 3306: is the port the container accepts traffic on, port 3309: is the abstracted Service port, which can be any port other pods use to access the Service). nodePort 30301 is to expose service outside kubernete cluster via kube-proxy.
- The port is 3309 which represents that order-service can be accessed by other services in the cluster at port 3306(it is advised to be same as targetPort). However when type is LoadBalancer, the port 3309 would be on different scope. It is the service port on LoadBalancer. It is the port which LoadBalancer is listening on. Because type is not clusterIP any more.
- The targetPort is 3306 which represents the order-service is actually running on port 3306 on pods
- The nodePort is 30301 which represents that order-service can be accessed via kube-proxy on port 30301.
- containerPort which is similar as targetPort , it is used in pod defination yaml
No comments:
Post a Comment