Skip to content
Closed
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
131 changes: 66 additions & 65 deletions docs/quick_start/quick_start_with_helm.md
Original file line number Diff line number Diff line change
Expand Up @@ -15,105 +15,106 @@
- limitations under the License.
-->

# Getting Started With Kyuubi on kubernetes
# Getting Started With Kyuubi on Kubernetes

## Running kyuubi with helm
## Running Kyuubi with Helm

[Helm](https://helm.sh/) is the package manager for Kubernetesit can be used to find, share, and use software built for Kubernetes.
[Helm](https://helm.sh/) is the package manager for Kubernetes, it can be used to find, share, and use software built for Kubernetes.

### Get helm and Install
### Install Helm

Please go to [Install Helm](https://helm.sh/docs/intro/install/) page to get and install an appropriate release version for yourself.
Please go to [Installing Helm](https://helm.sh/docs/intro/install/) page to get and install an appropriate release version for yourself.

### Get Kyuubi Started

#### [Optional] Create namespace on kubernetes
#### Install the chart

```bash
create ns kyuubi
```shell
helm install kyuubi ${KYUUBI_HOME}/charts/kyuubi -n kyuubi --create-namespace
```

#### Get kyuubi started
It will print release info with notes, including the ways to get Kyuubi accessed within Kubernetes cluster and exposed externally depending on the configuration provided.

```bash
helm install kyuubi-helm ${KYUUBI_HOME}/charts/kyuubi -n ${namespace_name}
```

It will print variables and the way to get kyuubi expose ip and port.

```bash
NAME: kyuubi-helm
LAST DEPLOYED: Wed Oct 20 15:22:47 2021
```shell
NAME: kyuubi
LAST DEPLOYED: Sat Feb 11 20:59:00 2023
NAMESPACE: kyuubi
STATUS: deployed
REVISION: 1
TEST SUITE: None
NOTES:
Get kyuubi expose URL by running these commands:
export NODE_PORT=$(kubectl get --namespace kyuubi -o jsonpath="{.spec.ports[0].nodePort}" services kyuubi-svc)
export NODE_IP=$(kubectl get nodes --namespace kyuubi -o jsonpath="{.items[0].status.addresses[0].address}")
echo $NODE_IP:$NODE_PORT
The chart has been installed!

In order to check the release status, use:
helm status kyuubi -n kyuubi
or for more detailed info
helm get all kyuubi -n kyuubi

************************
******* Services *******
************************
THRIFT_BINARY:
- To access kyuubi-thrift-binary service within the cluster, use the following URL:
kyuubi-thrift-binary.kyuubi.svc.cluster.local
- To access kyuubi-thrift-binary service from outside the cluster for debugging, run the following command:
kubectl port-forward svc/kyuubi-thrift-binary 10009:10009 -n kyuubi
and use 127.0.0.1:10009
```

#### Using hive beeline
#### Uninstall the chart

[Using Hive Beeline](./quick_start.html#using-hive-beeline) to opening a connection.
```shell
helm uninstall kyuubi -n kyuubi
```

#### Remove kyuubi
#### Configure chart release

```bash
helm uninstall kyuubi-helm -n ${namespace_name}
```
Specify configuration properties using `--set` flag.
For example, to install the chart with `replicaCount` set to `1`, use the following command:

#### Edit server config
```shell
helm install kyuubi ${KYUUBI_HOME}/charts/kyuubi -n kyuubi --create-namespace --set replicaCount=1
```

Modify `values.yaml` under `${KYUUBI_HOME}/docker/helm`:
Also, custom values file can be used to override default property values. For example, create `myvalues.yaml` to specify `replicaCount` and `resources`:

```yaml
# Kyuubi server numbers
replicaCount: 2

image:
repository: apache/kyuubi
pullPolicy: Always
# Overrides the image tag whose default is the chart appVersion.
tag: "master-snapshot"

server:
bind:
host: 0.0.0.0
port: 10009
conf:
mountPath: /opt/kyuubi/conf

service:
type: NodePort
# The default port limit of kubernetes is 30000-32767
# to change:
# vim kube-apiserver.yaml (usually under path: /etc/kubernetes/manifests/)
# add or change line 'service-node-port-range=1-32767' under kube-apiserver
port: 30009
replicaCount: 1

resources:
requests:
cpu: 2
memory: 4Gi
limits:
cpu: 4
memory: 10Gi
```

and use it to override default chart values with `-f` flag:

```shell
helm install kyuubi ${KYUUBI_HOME}/charts/kyuubi -n kyuubi --create-namespace -f myvalues.yaml
```

#### Get server log
#### Access logs

List all server pods:
List all pods in the release namespace:

```bash
kubectl get po -n ${namespace_name}
```shell
kubectl get pod -n kyuubi
```

The server pods will print:
Find Kyuubi pods:

```text
NAME READY STATUS RESTARTS AGE
kyuubi-server-585d8944c5-m7j5s 1/1 Running 0 30m
kyuubi-server-32sdsa1245-2d2sj 1/1 Running 0 30m
```shell
NAME READY STATUS RESTARTS AGE
kyuubi-5b6d496c98-kbhws 1/1 Running 0 38m
kyuubi-5b6d496c98-lqldk 1/1 Running 0 38m
```

then, use pod name to get logs:
Then, use pod name to get logs:

```bash
kubectl -n ${namespace_name} logs kyuubi-server-585d8944c5-m7j5s
```shell
kubectl logs kyuubi-5b6d496c98-kbhws -n kyuubi
```