You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@kyuubi.apache.org by ya...@apache.org on 2021/07/22 10:18:04 UTC

[incubator-kyuubi] branch master updated: [KYUUBI #844] Exposing Kyuubi as a NodePort service

This is an automated email from the ASF dual-hosted git repository.

yao pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/incubator-kyuubi.git


The following commit(s) were added to refs/heads/master by this push:
     new ab18262  [KYUUBI #844] Exposing Kyuubi as a NodePort service
ab18262 is described below

commit ab18262d190f357115f47ffa95bf7d74baac987c
Author: hongdongdong <ho...@cmss.chinamobile.com>
AuthorDate: Thu Jul 22 18:17:43 2021 +0800

    [KYUUBI #844] Exposing Kyuubi as a NodePort service
    
    <!--
    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.
    -->
    `kubectl port-forward` usually use to test, use `NodePort` to visit kyuubi service in pod.
    
    ### _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/tools/testing.html#running-tests) locally before make a pull request
    
    Closes #858 from hddong/kyuubi-844.
    
    Closes #844
    
    d1492262 [hongdongdong] modify comments
    72d51d61 [hongdongdong] fix comments
    91727986 [hongdongdong] fix
    a169332e [hongdongdong] fix comments
    74cec930 [hongdongdong] [KYUUBI#844]Use NodePort to expose kyuubi port on k8s
    
    Authored-by: hongdongdong <ho...@cmss.chinamobile.com>
    Signed-off-by: Kent Yao <ya...@apache.org>
---
 docker/{example.yaml => kyuubi-pod.yaml}     | 15 +++++++----
 docker/{example.yaml => kyuubi-service.yaml} | 39 ++++++++++++----------------
 2 files changed, 27 insertions(+), 27 deletions(-)

diff --git a/docker/example.yaml b/docker/kyuubi-pod.yaml
similarity index 79%
copy from docker/example.yaml
copy to docker/kyuubi-pod.yaml
index c070b97..bf533eb 100644
--- a/docker/example.yaml
+++ b/docker/kyuubi-pod.yaml
@@ -17,13 +17,16 @@
 
 # Usage:
 # Start:
-#   kubectl apply -f https://raw.githubusercontent.com/apache/incubator-kyuubi/master/docker/example.yaml
-# Connect:
+#   kubectl apply -f https://raw.githubusercontent.com/apache/incubator-kyuubi/master/docker/kyuubi-pod.yaml
+# Expose port:
+# 1. Expose the Pod by port-forward, for temporary test
 #   kubectl port-forward kyuubi-example --address localhost 10009:10009
-# Or
-#   kubectl exec -it kyuubi-example -- /bin/bash
+#   Connect:
+#     kubectl exec -it kyuubi-example -- /bin/bash
 #
-#   ${SPARK_HOME}/bin/beeline -u 'jdbc:hive2://localhost:10009'
+#     ${SPARK_HOME}/bin/beeline -u 'jdbc:hive2://localhost:10009'
+# 2. Expose the Pod as a service with NodePort
+#   see usage of kyuubi-service.yaml
 # Logging
 #   kubectl logs -f kyuubi-example
 
@@ -31,6 +34,8 @@ apiVersion: v1
 kind: Pod
 metadata:
   name: kyuubi-example
+  labels:
+    app: kyuubi-server
 spec:
   containers:
     - name: kyuubi-server
diff --git a/docker/example.yaml b/docker/kyuubi-service.yaml
similarity index 57%
rename from docker/example.yaml
rename to docker/kyuubi-service.yaml
index c070b97..f716238 100644
--- a/docker/example.yaml
+++ b/docker/kyuubi-service.yaml
@@ -17,30 +17,25 @@
 
 # Usage:
 # Start:
-#   kubectl apply -f https://raw.githubusercontent.com/apache/incubator-kyuubi/master/docker/example.yaml
+#   kubectl apply -f https://raw.githubusercontent.com/apache/incubator-kyuubi/master/docker/kyuubi-service.yaml
 # Connect:
-#   kubectl port-forward kyuubi-example --address localhost 10009:10009
-# Or
-#   kubectl exec -it kyuubi-example -- /bin/bash
-#
-#   ${SPARK_HOME}/bin/beeline -u 'jdbc:hive2://localhost:10009'
-# Logging
-#   kubectl logs -f kyuubi-example
+#   ${SPARK_HOME}/bin/beeline -u 'jdbc:hive2://${any_hostname_of_k8s_nodes}:30009'
 
 apiVersion: v1
-kind: Pod
+kind: Service
 metadata:
-  name: kyuubi-example
+  name: kyuubi-example-service
 spec:
-  containers:
-    - name: kyuubi-server
-      # TODO: replace this with the official repo
-      image: yaooqinn/kyuubi:1.3.0
-      imagePullPolicy: IfNotPresent
-      env:
-        - name: KYUUBI_JAVA_OPTS
-          value: -Dkyuubi.frontend.bind.host=0.0.0.0
-      ports:
-        - name: frontend-port
-          containerPort: 10009
-          protocol: TCP
+  ports:
+    # The default port limit 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
+    - nodePort: 30009
+      # same of containerPort in pod yaml
+      port: 10009
+      protocol: TCP
+  type: NodePort
+  selector:
+    # same of pod label
+    app: kyuubi-server
\ No newline at end of file