1. 程式人生 > >把H2資料庫從jar包部署到Kubernetes,並解決Ingress不支援TCP的問題

把H2資料庫從jar包部署到Kubernetes,並解決Ingress不支援TCP的問題

# 1 前言 > 歡迎訪問[南瓜慢說 www.pkslow.com](https://www.pkslow.com/)獲取更多精彩文章! [`H2 Database`](https://www.h2database.com/html/main.html)是一個優秀的資料庫,又小又方便,支援記憶體和檔案形式,經常會在`測試`、`POC(proof of concept)`或`開發環境`用到它。在`Springboot`的許多應用中,也是內建了`H2資料庫`,很常用。接下來我們來一步步把它推上`k8s`,讓它坐上一個不一樣的位置。 建議閱讀下面文章以幫助理解: [Kubernetes用Helm安裝Ingress並踩一下使用的坑](https://www.pkslow.com/archives/kubernetes-ingress) [容器技術相關文章](https://www.pkslow.com/categories/container) # 2 本地jar包執行 ## 2.1 下載和啟動 下載官網`jar`包如下: ```bash $ curl http://www.h2database.com/h2-2019-03-13.zip -o h2-2019-03-13.zip ``` 解壓: ```bash $ unzip h2-2019-03-13.zip ``` 啟動`H2資料庫`: ```bash $ java -cp h2/bin/h2*.jar org.h2.tools.Server -ifNotExists TCP server running at tcp://localhost:9092 (only local connections) PG server running at pg://localhost:5435 (only local connections) Web Console server running at http://localhost:8082 (others can connect) ``` 如果需要修改配置,如埠號、資料儲存目錄,可以在啟動時新增引數: ```bash java -cp h2/bin/h2*.jar org.h2.tools.Server -ifNotExists \ -web -webAllowOthers -webPort 8082 \ -tcp -tcpAllowOthers -tcpPort 9092 \ -baseDir ${DATA_DIR} ${H2_OPTIONS} ``` ## 2.2 配置連線 成功啟動後訪問`http://localhost:8082`就能登陸控制檯了。如下: ![](https://img2020.cnblogs.com/other/946674/202008/946674-20200813152154375-133236783.png) `Driver Class`:`org.h2.Driver`,驅動類; `JDBC URL`:`jdbc:h2:mem:pkslow`,使用記憶體資料庫,資料庫名為`pkslow`; 賬號密碼設定為`admin/123456`。 設定完成後,點選連線即可建立資料庫。 如果我們把`JDBC URL`改為`jdbc:h2:file:~/pkslow`,就是以檔案形式存在,這樣能把資料持久化,所以我們採取這種方式。這裡就會在`~`目錄,即`${HOME}`目錄生成檔案`pkslow.mv.db`以儲存資料。還有檔案` ~/.h2.server.properties`。 更多`URL`的配置方法如下表: | Topic | URL Format and Examples | | :----------------------------------------------------------- | :----------------------------------------------------------- | | [Embedded (local) connection](http://www.h2database.com/html/features.html#embedded_databases) | jdbc:h2:[