<!-- Thanks for sending a pull request! Here are some tips for you: 1. If this is your first time, please read our contributor guidelines: https://kyuubi.readthedocs.io/en/latest/community/contributions.html 2. If the PR is related to an issue in https://github.com/apache/incubator-kyuubi/issues, add '[KYUUBI #XXXX]' in your PR title, e.g., '[KYUUBI #XXXX] Your PR title ...'. 3. If the PR is unfinished, add '[WIP]' in your PR title, e.g., '[WIP][KYUUBI #XXXX] Your PR title ...'. --> ### _Why are the changes needed?_ <!-- Please clarify why the changes are needed. For instance, 1. If you add a feature, you can talk about the use case of it. 2. If you fix a bug, you can clarify why it is a bug. --> We usally use helm to manager application yaml on k8s, we can use helm to delopy kyuubi server too. Usages: ``` helm install kyuubi ${kyuubi_helm_url} -n kyuubi ``` ``` helm uninstall kyuubi -n kyuubi ``` ### _How was this patch tested?_ - [ ] Add some test cases that check the changes thoroughly including negative and positive cases if possible - [ ] Add screenshots for manual tests if appropriate - [X] [Run test](https://kyuubi.readthedocs.io/en/latest/develop_tools/testing.html#running-tests) locally before make a pull request Closes #1255 from hddong/add-helm. Closes #1255 e197de34 [hongdongdong] Add doc d0f74bbb [hongdongdong] rm hel tgz e9a0a2e4 [hongdongdong] update and fix f666d331 [hongdongdong] [KYUUBI#1253] Support use helm to deploy kyuubi server on k8s Authored-by: hongdongdong <hongdongdong@cmss.chinamobile.com> Signed-off-by: Kent Yao <yao@apache.org>
3.2 KiB
3.2 KiB
Getting Started With Kyuubi on kubernetes
Running kyuubi with helm
Helm is the package manager for Kubernetes,it can be used to find, share, and use software built for Kubernetes.
Get helm and Install
Please go to Install Helm page to get and install an appropriate release version for yourself.
Get Kyuubi Started
[Optional] Create namespace on kubernetes
cretate ns kyuubi
Get kyuubi started
helm install kyuubi-helm ${KYUUBI_HOME}/docker/helm -n ${namespace_name}
It will print variables and the way to get kyuubi expose ip and port
NAME: kyuubi-helm
LAST DEPLOYED: Wed Oct 20 15:22:47 2021
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-helm-nodeport)
export NODE_IP=$(kubectl get nodes --namespace kyuubi -o jsonpath="{.items[0].status.addresses[0].address}")
echo $NODE_IP:$NODE_PORT
Using hive beeline
Using Hive Beeline to opening a connection.
Remove kyuubi
helm uninstall kyuubi-helm -n ${namespace_name}
Edit server config
Modify values.yaml under ${KYUUBI_HOME}/docker/helm
# 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
Get server log
List all server pods:
kubectl get po -n ${namespace_name}
The server pods will print:
NAME READY STATUS RESTARTS AGE
kyuubi-server-585d8944c5-m7j5s 1/1 Running 0 30m
kyuubi-server-32sdsa1245-2d2sj 1/1 Running 0 30m
then, use pod name to get logs
kubectl -n ${namespace_name} logs kyuubi-server-585d8944c5-m7j5s
