We can accomplish a similar result as the one using kubectl expose through the svc/go-demo-2-svc.yml specification.
cat svc/go-demo-2-svc.yml
The output is as follows:
apiVersion: v1 kind: Service metadata: name: go-demo-2 spec: type: NodePort ports: - port: 28017 nodePort: 30001 protocol: TCP selector: type: backend service: go-demo-2
You should be familiar with the meaning of apiVersion, kind, and metadata, so we'll jump straight into the spec section. Since we already explored some of the options through the kubectl expose command, the spec should be relatively easy to grasp.
The type of the Service is set to NodePort meaning that the ports will be available both within the cluster as well as from outside by sending requests to any of the nodes.
The ports section specifies that the requests should...