Kubectl expose: Difference between revisions
Jump to navigation
Jump to search
Line 2: | Line 2: | ||
* [[Kubectl#Commands|kubectl]] | * [[Kubectl#Commands|kubectl]] | ||
The default service type is [[Kubernetes_Service_Concepts#ClusterIP|ClusterIP]], other type ([[Kubernetes_Service_Concepts#NodePort|NodePort]], [[Kubernetes_Service_Concepts#LoadBalancer|LoadBalancer]], or [[Kubernetes_Service_Concepts#ExternalName|ExternalName]]) can be specified with --type. | |||
kubectl [-n default] expose pod pg-0 --port=5432 --target-port=5432 --name=postgres --type=NodePort | |||
<font color=darkgray>TODO: I don't seem to see the service with kubectl get services, but attempting to connect to the database works.</font> | |||
=Overview= | =Overview= |
Revision as of 00:08, 20 September 2020
Internal
The default service type is ClusterIP, other type (NodePort, LoadBalancer, or ExternalName) can be specified with --type.
kubectl [-n default] expose pod pg-0 --port=5432 --target-port=5432 --name=postgres --type=NodePort
TODO: I don't seem to see the service with kubectl get services, but attempting to connect to the database works.
Overview
expose
dynamically exposes a resource, which can be a pod, service, replicationcontroller, deployment or replicaset as a new service.
Expose a Pod
If a pod is used, the command reads the pod's labels and creates a service with a matching selector. By default, if no type is specified, ClusterIP is assumed.
kubectl [-n <namespace>] expose pod <pod-name> --port=<port> --target-port=<target-port> --name=<service-name> [--type=ClusterIP|NodePort|...]
kubectl expose pod httpd --port=9898 --target-port=80 --name=httpd-svc
Expose a Higher Level Controller
If a replication controller, deployment or replicaset are used, the command reads their selector and re-uses it for the service being created.
Expose a Service
TODO