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

# Run StreamNative on Kubernetes

> Self-managed StreamNative platform on your own Kubernetes — operators, custom resources, and full operational control.

<div
  style={{
paddingTop: '40px',
maxWidth: '1200px',
margin: '0 auto',
padding: '40px 20px 0'
}}
>
  <div
    style={{
display: 'grid',
gridTemplateColumns: 'repeat(auto-fit, minmax(420px, 1fr))',
gap: '32px',
alignItems: 'start',
marginBottom: '64px'
}}
  >
    <div>
      <p style={{ fontSize: '0.875rem', fontWeight: 600, letterSpacing: '0.05em', color: 'rgb(107, 114, 128)', textTransform: 'uppercase', margin: '0 0 12px 0' }}>
        StreamNative Private Cloud
      </p>

      <h1
        style={{
fontFamily: "'Funnel Display', sans-serif",
fontSize: '3rem',
fontWeight: 500,
lineHeight: 1.1,
letterSpacing: '-0.02em',
margin: '0 0 16px 0'
}}
      >
        Run StreamNative<br />on Kubernetes
      </h1>

      <p style={{ fontSize: '1.0625rem', lineHeight: 1.55, color: 'rgb(75, 85, 99)', margin: '0 0 28px 0', maxWidth: '460px' }}>
        Deploy and operate the StreamNative platform on your own Kubernetes. Operators, custom resources, and full operational control.
      </p>

      <div style={{ display: 'flex', gap: '12px', flexWrap: 'wrap' }}>
        <a href="/private-cloud/v2/quick-start/private-cloud-quickstart" style={{ display: 'inline-flex', alignItems: 'center', gap: '8px', padding: '10px 18px', borderRadius: '999px', border: '1px solid rgb(229, 231, 235)', background: 'white', color: 'inherit', fontSize: '0.9375rem', textDecoration: 'none' }}>
          ▶ Quick Start
        </a>

        <a href="/private-cloud/v2/overview/private-cloud-overview" style={{ display: 'inline-flex', alignItems: 'center', gap: '8px', padding: '10px 18px', borderRadius: '999px', border: '1px solid rgb(229, 231, 235)', background: 'white', color: 'inherit', fontSize: '0.9375rem', textDecoration: 'none' }}>
          <svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" strokeWidth="2" strokeLinecap="round" strokeLinejoin="round">
            <polyline points="4 17 10 11 4 5" />

            <line x1="12" y1="19" x2="20" y2="19" />
          </svg>

          Overview
        </a>

        <a href="/private-cloud/v2/references/release-notes" style={{ display: 'inline-flex', alignItems: 'center', gap: '8px', padding: '10px 18px', borderRadius: '999px', border: '1px solid rgb(229, 231, 235)', background: 'white', color: 'inherit', fontSize: '0.9375rem', textDecoration: 'none' }}>
          <svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" strokeWidth="2" strokeLinecap="round" strokeLinejoin="round">
            <polyline points="16 18 22 12 16 6" />

            <polyline points="8 6 2 12 8 18" />
          </svg>

          Release notes
        </a>
      </div>
    </div>

    <div>
      <CodeGroup>
        ```bash Helm theme={null}
        helm repo add streamnative https://charts.streamnative.io
        helm repo update

        helm install sn-operator streamnative/sn-operator \
          --namespace sn-system \
          --create-namespace \
          --set image.tag=v0.18.0
        ```

        ```yaml CRD (PulsarCoordinator) theme={null}
        apiVersion: pulsar.streamnative.io/v1alpha1
        kind: PulsarCoordinator
        metadata:
          name: sn-platform
          namespace: sn-platform
        spec:
          zookeeper:
            replicas: 3
            storage:
              size: 20Gi
          bookkeeper:
            replicas: 3
            storage:
              size: 100Gi
          broker:
            replicas: 3
          proxy:
            replicas: 2
        ```

        ```bash kubectl theme={null}
        kubectl apply -f sn-platform.yaml
        kubectl -n sn-platform get pulsarcoordinator sn-platform -w
        ```
      </CodeGroup>
    </div>
  </div>

  <p style={{ fontSize: '0.875rem', fontWeight: 600, letterSpacing: '0.05em', color: 'rgb(107, 114, 128)', textTransform: 'uppercase', margin: '0 0 8px 0' }}>
    Platform
  </p>

  <h2 style={{ fontSize: '1.875rem', fontWeight: 500, fontFamily: "'Funnel Display', sans-serif", margin: '0 0 12px 0' }}>
    Choose how you deploy
  </h2>

  <p style={{ fontSize: '1rem', color: 'rgb(75, 85, 99)', margin: '0 0 24px 0', maxWidth: '720px' }}>
    Two supported deployment lines. Pick v2 for new installations; v1 stays supported for existing clusters.
  </p>

  <CardGroup cols={2}>
    <Card title="Private Cloud v2" icon="rocket" href="/private-cloud/v2/overview/private-cloud-overview">
      **Stable** — operator-driven, CRD-first, recommended for new deployments.

      * [Quick Start](/private-cloud/v2/quick-start/private-cloud-quickstart)
      * [Configure](/private-cloud/v2/configure-private-cloud/license/private-cloud-licenses)
      * [Deploy with Helm](/private-cloud/v2/operate-private-cloud/deploy/private-cloud-helm)
    </Card>

    <Card title="Private Cloud v1" icon="server" href="/private-cloud/v1/overview/private-cloud-overview">
      **Legacy** — established deployments running v1. Migration guides available.

      * [Quick Start](/private-cloud/v1/quick-start/platform-quickstart)
      * [References](/private-cloud/v1/references/release-notes)
      * [StreamNative Console](/private-cloud/v1/streamnative-console/dashboard)
    </Card>
  </CardGroup>

  <p style={{ fontSize: '0.875rem', fontWeight: 600, letterSpacing: '0.05em', color: 'rgb(107, 114, 128)', textTransform: 'uppercase', margin: '40px 0 8px 0' }}>
    Operator journey
  </p>

  <h2 style={{ fontSize: '1.875rem', fontWeight: 500, fontFamily: "'Funnel Display', sans-serif", margin: '0 0 12px 0' }}>
    From install to production
  </h2>

  <p style={{ fontSize: '1rem', color: 'rgb(75, 85, 99)', margin: '0 0 24px 0', maxWidth: '720px' }}>
    Follow the lifecycle to jump to what you need.
  </p>

  <CardGroup cols={5}>
    <Card title="Install" icon="download" href="/private-cloud/v2/quick-start/private-cloud-quickstart">
      Helm chart or OLM
    </Card>

    <Card title="Configure" icon="sliders" href="/private-cloud/v2/configure-private-cloud/license/private-cloud-licenses">
      License, storage, security
    </Card>

    <Card title="Deploy" icon="cubes" href="/private-cloud/v2/operate-private-cloud/deploy/private-cloud-helm">
      Clusters, Console, protocols
    </Card>

    <Card title="Observe" icon="chart-line" href="/private-cloud/v2/operate-private-cloud/observability/private-cloud-monitor">
      Metrics, logs, dashboards
    </Card>

    <Card title="Upgrade" icon="arrow-up-right" href="/private-cloud/v2/operate-private-cloud/upgrade/upgrade-sn-operator">
      Operator and platform upgrades
    </Card>
  </CardGroup>

  <p style={{ fontSize: '0.875rem', fontWeight: 600, letterSpacing: '0.05em', color: 'rgb(107, 114, 128)', textTransform: 'uppercase', margin: '40px 0 8px 0' }}>
    Resources
  </p>

  <h2 style={{ fontSize: '1.875rem', fontWeight: 500, fontFamily: "'Funnel Display', sans-serif", margin: '0 0 12px 0' }}>
    Keep learning
  </h2>

  <CardGroup cols={2}>
    <Card title="Release notes" icon="list-check" href="/private-cloud/v2/references/release-notes">
      Private Cloud version history.
    </Card>

    <Card title="pulsarctl" icon="terminal" href="/tools/cli/pulsarctl/pulsarctl-overview">
      CLI for Pulsar admin operations.
    </Card>
  </CardGroup>
</div>
