You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@kudu.apache.org by aw...@apache.org on 2021/02/26 22:13:25 UTC

[kudu] 02/03: k8s: minor updates to the StatefulSet

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

awong pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/kudu.git

commit 70e0998fb1003763e596595c1b3ebb57c3d32bf3
Author: Andrew Wong <aw...@cloudera.com>
AuthorDate: Sat Feb 20 17:06:33 2021 -0800

    k8s: minor updates to the StatefulSet
    
    I walked through some of the Kubernetes README and noticed the ports
    were off. This updates to use the typical defaults we use for masters
    and tservers.
    
    It also updates to use 4 tservers, which is closer to what would be used
    in production, given 3-4-3 replication.
    
    Change-Id: I50b0084f70d30187bcca4e356e38c35b2486c611
    Reviewed-on: http://gerrit.cloudera.org:8080/17098
    Tested-by: Kudu Jenkins
    Reviewed-by: Hao Hao <ha...@cloudera.com>
    Reviewed-by: Alexey Serbin <as...@cloudera.com>
---
 kubernetes/README.adoc           | 39 ++++++++++++++++++++-------------------
 kubernetes/kudu-services.yaml    | 11 ++++++++---
 kubernetes/kudu-statefulset.yaml | 10 +++++-----
 3 files changed, 33 insertions(+), 27 deletions(-)

diff --git a/kubernetes/README.adoc b/kubernetes/README.adoc
index c06f509..dafb89d 100644
--- a/kubernetes/README.adoc
+++ b/kubernetes/README.adoc
@@ -27,9 +27,10 @@ NOTE: Read more about Kubernetes here https://kubernetes.io/docs/tutorials/kuber
 
 ==== System Requirements
 
-    kubectl
-    minikube or kubeadm
-    docker
+- `minikube` or `kubeadm` to deploy your Kubernetes cluster. Start a Kubernetes
+  cluster before running through the next steps
+- `kubectl` to run commands against the Kubernetes cluster
+- `docker` to serve containers
 
 ==== Build Kudu Docker Image
 
@@ -50,11 +51,10 @@ Check status of kudu services:
 You should see below output on stdout
 
 ```
-NAME             TYPE        CLUSTER-IP       EXTERNAL-IP   PORT(S)             AGE
-kudu-master-ui   NodePort    10.110.150.101   <none>        8051:30082/TCP      8m2s
-kudu-masters     ClusterIP   None             <none>        8051/TCP,8050/TCP   8m2s
-kudu-tservers    ClusterIP   None             <none>        7050/TCP,7051/TCP   8m2s
-tiller-deploy    ClusterIP   10.96.104.11     <none>        44134/TCP           47h
+NAME             TYPE        CLUSTER-IP      EXTERNAL-IP   PORT(S)             AGE
+kudu-master-ui   NodePort    10.108.52.243   <none>        8051:30239/TCP      87m
+kudu-masters     ClusterIP   None            <none>        8051/TCP,7051/TCP   87m
+kudu-tservers    ClusterIP   None            <none>        8050/TCP,7050/TCP   87m
 ```
 
 === Create StatefulSet for Kudu Masters and Kudu TServers
@@ -71,17 +71,18 @@ You should see below output on stdout
 
 ```
 NAME           READY   AGE
-kudu-master    2/3     16s
-kudu-tserver   3/3     16s
-
-
-NAME                             READY   STATUS    RESTARTS   AGE
-kudu-master-0                    1/1     Running   0          9m9s
-kudu-master-1                    1/1     Running   0          9m9s
-kudu-master-2                    1/1     Running   0          9m9s
-kudu-tserver-0                   1/1     Running   0          9m19s
-kudu-tserver-1                   1/1     Running   0          9m5s
-kudu-tserver-2                   1/1     Running   0          9m5s
+kudu-master    3/3     89m
+kudu-tserver   4/4     89m
+
+
+NAME             READY   STATUS    RESTARTS   AGE
+kudu-master-0    1/1     Running   1          90m
+kudu-master-1    1/1     Running   1          90m
+kudu-master-2    1/1     Running   0          89m
+kudu-tserver-0   1/1     Running   1          90m
+kudu-tserver-1   1/1     Running   1          90m
+kudu-tserver-2   1/1     Running   1          90m
+kudu-tserver-3   1/1     Running   1          90m
 ```
 
 ==== Port Forward The Kudu Master UI
diff --git a/kubernetes/kudu-services.yaml b/kubernetes/kudu-services.yaml
index a5d0dfc..998e38c 100644
--- a/kubernetes/kudu-services.yaml
+++ b/kubernetes/kudu-services.yaml
@@ -15,6 +15,11 @@
 # specific language governing permissions and limitations
 # under the License.
 
+
+# From https://kubernetes.io/docs/concepts/workloads/controllers/statefulset/
+# > StatefulSets currently require a Headless Service to be responsible for the
+#   network identity of the Pods. You are responsible for creating this Service.
+
 ---
 # headless service for kudu masters
 
@@ -31,7 +36,7 @@ spec:
     - name: ui
       port: 8051
     - name: rpc-port
-      port: 8050
+      port: 7051
   selector:
     app: kudu-master
 
@@ -68,8 +73,8 @@ spec:
   clusterIP: None
   ports:
     - name: ui
-      port: 7050
+      port: 8050
     - name: rpc-port
-      port: 7051
+      port: 7050
   selector:
     app: kudu-tserver
diff --git a/kubernetes/kudu-statefulset.yaml b/kubernetes/kudu-statefulset.yaml
index eddae07..f95d0d9 100644
--- a/kubernetes/kudu-statefulset.yaml
+++ b/kubernetes/kudu-statefulset.yaml
@@ -53,9 +53,9 @@ spec:
               value: "kudu-master-0.kudu-masters.apache-kudu.svc.cluster.local,kudu-master-1.kudu-masters.apache-kudu.svc.cluster.local,kudu-master-2.kudu-masters.apache-kudu.svc.cluster.local"
           args: ["master"]
           ports:
-            - containerPort: 8050
-              name: master-ui
             - containerPort: 8051
+              name: master-ui
+            - containerPort: 7051
               name: master-rpc
           volumeMounts:
             - name: datadir
@@ -94,7 +94,7 @@ metadata:
 spec:
   serviceName: kudu-tservers
   podManagementPolicy: "Parallel"
-  replicas: 3
+  replicas: 4
   selector:
     matchLabels:
       app: kudu-tserver
@@ -122,9 +122,9 @@ spec:
               value: "kudu-master-0.kudu-masters.apache-kudu.svc.cluster.local,kudu-master-1.kudu-masters.apache-kudu.svc.cluster.local,kudu-master-2.kudu-masters.apache-kudu.svc.cluster.local"
           args: ["tserver"]
           ports:
-            - containerPort: 7050
+            - containerPort: 8050
               name: tserver-ui
-            - containerPort: 7051
+            - containerPort: 7050
               name: tserver-rpc
           volumeMounts:
             - name: datadir