You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@bookkeeper.apache.org by zh...@apache.org on 2017/09/18 23:23:34 UTC

[bookkeeper] branch master updated: ISSUE #515: Run bookies using hostIP instead of containerIP in k8s

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

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


The following commit(s) were added to refs/heads/master by this push:
     new eba4d6e  ISSUE #515: Run bookies using hostIP instead of containerIP in k8s
eba4d6e is described below

commit eba4d6e5d7eab8beab699c6dba8ac41e5ceec3db
Author: Sijie Guo <si...@apache.org>
AuthorDate: Tue Sep 19 07:23:24 2017 +0800

    ISSUE #515: Run bookies using hostIP instead of containerIP in k8s
    
    Descriptions of the changes in this PR:
    
    - use `status.hostIP` rather than `status.containerIP`. so the identifier (ip) of a bookie pod will not be changed after it is restarted.
    - use `adverstiseAddress` to advertise hostip as the ip of a bookie pod
    - change it to use `hierarchical` ledger manager
    
    Author: Sijie Guo <si...@apache.org>
    
    Reviewers: Jia Zhai <None>, Matteo Merli <mm...@apache.org>
    
    This closes #516 from sijie/run_bookie_using_hostport_bk, closes #515
---
 bookkeeper-server/conf/bk_server.conf |  3 +++
 deploy/kubernetes/gke/bookkeeper.yaml | 21 ++++++++++++++++-----
 2 files changed, 19 insertions(+), 5 deletions(-)

diff --git a/bookkeeper-server/conf/bk_server.conf b/bookkeeper-server/conf/bk_server.conf
index d3667b2..1bf3754 100755
--- a/bookkeeper-server/conf/bk_server.conf
+++ b/bookkeeper-server/conf/bk_server.conf
@@ -380,6 +380,9 @@ ledgerDirectories=/tmp/bk-data
 # Ledger Manager Class
 # What kind of ledger manager is used to manage how ledgers are stored, managed
 # and garbage collected. Try to read 'BookKeeper Internals' for detail info.
+ledgerManagerFactoryClass=org.apache.bookkeeper.meta.HierarchicalLedgerManagerFactory
+
+# @Drepcated - `ledgerManagerType` is deprecated in favor of using `ledgerManagerFactoryClass`.
 # ledgerManagerType=flat
 
 # Root Zookeeper path to store ledger metadata
diff --git a/deploy/kubernetes/gke/bookkeeper.yaml b/deploy/kubernetes/gke/bookkeeper.yaml
index e001740..4f36266 100644
--- a/deploy/kubernetes/gke/bookkeeper.yaml
+++ b/deploy/kubernetes/gke/bookkeeper.yaml
@@ -26,10 +26,12 @@ metadata:
 data:
     BK_BOOKIE_EXTRA_OPTS: "\"-Xms1g -Xmx1g -XX:MaxDirectMemorySize=1g -XX:+UseG1GC  -XX:MaxGCPauseMillis=10 -XX:+ParallelRefProcEnabled -XX:+UnlockExperimentalVMOptions -XX:+AggressiveOpts -XX:+DoEscapeAnalysis -XX:ParallelGCThreads=32 -XX:ConcGCThreads=32 -XX:G1NewSizePercent=50 -XX:+DisableExplicitGC -XX:-ResizePLAB\""
     BK_bookiePort: "3181"
-    BK_journalDirectory: "/data/bookkeeper/journal"
+    BK_journalDirectory: "/bookkeeper/data/journal"
     BK_ledgerDirectories: "/bookkeeper/data/ledgers"
     BK_indexDirectories: "/bookkeeper/data/ledgers"
-    BK_zkServers: zk-0.zookeeper,zk-1.zookeeper,zk-2.zookeeper
+    BK_zkServers: zookeeper
+    # the default manager is flat, which is not good for supporting large number of ledgers
+    BK_ledgerManagerType: "hierarchical"
     # TODO: Issue 458: https://github.com/apache/bookkeeper/issues/458
     #BK_statsProviderClass: org.apache.bookkeeper.stats.PrometheusMetricsProvider
 ---
@@ -72,11 +74,20 @@ spec:
                 command: [ "/bin/bash", "/opt/bookkeeper/entrypoint.sh" ]
                 args: ["/opt/bookkeeper/bin/bookkeeper", "bookie"]
                 ports:
-                  - containerPort: 3181
-                    name: client
+                  - name: client
+                    containerPort: 3181
+                    # we are using `status.hostIP` for the bookie's advertised address. export 3181 as the hostPort,
+                    # so that the containers are able to access the host port
+                    hostPort: 3181
                 envFrom:
                   - configMapRef:
                         name: bookie-config
+                env:
+                  - name: BK_advertisedAddress
+                    valueFrom:
+                      fieldRef:
+                        fieldPath: status.hostIP
+                        
 
                 volumeMounts:
                   - name: journal-disk
@@ -141,4 +152,4 @@ spec:
                 args: ["/opt/bookkeeper/bin/bookkeeper", "autorecovery"]
                 envFrom:
                   - configMapRef:
-                        name: bookie-config
\ No newline at end of file
+                        name: bookie-config

-- 
To stop receiving notification emails like this one, please contact
['"commits@bookkeeper.apache.org" <co...@bookkeeper.apache.org>'].