> ## Documentation Index
> Fetch the complete documentation index at: https://docs.coreweave.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Expose a Service

> Use a LoadBalancer Service to expose Pods on CKS to the public Internet

This page explains how to expose Pods running on CoreWeave Kubernetes Service (CKS) to the public Internet by creating a `LoadBalancer` Service. Use this approach when you need workloads in your cluster to be reachable from outside the cluster over a public IPv4 address, and optionally a public DNS name.

One way to expose Pods on CKS to the public Internet is to use a [`LoadBalancer` Service](https://kubernetes.io/docs/concepts/services-networking/service/#loadbalancer). These Services expose Pods to the Internet through public IPv4 addresses. You can also assign public DNS names to them.

## Create a Load Balancer Service

To expose your Pods, you must create a `LoadBalancer` Service manifest and deploy it to your cluster. The following sections walk through each part of that process.

### Create the manifest

To create a Service of `type: LoadBalancer`, deploy a Service manifest onto CKS. The following sample manifest defines a `LoadBalancer` Service that exposes an `sshd` Pod on port 22:

```yaml title="loadbalancer-example.yaml" highlight={5,8} theme={"system"}
apiVersion: v1
kind: Service
metadata:
  annotations:
    service.beta.kubernetes.io/coreweave-load-balancer-type: public
  name: example-sshd
spec:
  type: LoadBalancer
  externalTrafficPolicy: Local
  ports:
    - name: sshd
      port: 22
      protocol: TCP
      targetPort: sshd
  selector:
    app.kubernetes.io/name: sshd
```

In the preceding example:

* The Service (`example-sshd`) is configured as `type: LoadBalancer`.
* The `coreweave-load-balancer-type` annotation is `public`.

This creates a publicly accessible Load Balancer Service.

<Info>
  The address assigned to the Service is the next available address from CoreWeave's default [egress IP addresses](/platform/regions/about-regions-and-azs) for each Region.
</Info>

### Deploy the manifest

After you save the manifest, apply it to your cluster so that CKS provisions the Load Balancer. Apply the manifest with `kubectl`. For example:

```bash theme={"system"}
kubectl apply -f example-sshd.yaml
```

### Locate the IPv4 address

After you deploy the Service, you need its assigned public IPv4 address to reach the Pods from outside the cluster. After you apply the manifest, use `describe` to see the deployed Service. For example:

```bash theme={"system"}
kubectl describe services example-sshd
```

Find the assigned public IPv4 address under the `LoadBalancer Ingress` field. With this address, the Pods that the Service selects are now reachable from the public Internet on the ports that the manifest defines.

<Info>
  For more information, see [the official Kubernetes documentation](https://kubernetes.io/docs/tasks/access-application-cluster/create-external-load-balancer/#finding-your-ip-address).
</Info>
