掌握Docker:簡化KES單機安裝與管理的最佳實踐

努力的小雨發表於2024-10-01

今天我們將繼續深入探討KES的單機安裝,依然圍繞Docker的使用展開。這一部分的內容將涵蓋一些常見的陷阱以及在遇到問題時如何進行有效的反饋和解決。首先,我們需要找到官方的安裝教程,確保以官方指南為主,同時結合我們自己的使用習慣。

為什麼我們如此青睞Docker,而不是選擇傳統的命令列安裝呢?在當今的雲端計算時代,Docker已經成為一種幾乎必備的技能,它能夠大大簡化環境配置和應用部署的流程,使得開發和運維工作更加高效。

接下來,我們將詳細講解具體的安裝步驟和注意事項,幫助大家順利完成KES的安裝。讓我們開始吧!

單機安裝

在這裡,我想與大家分享官方的安裝步驟,您可以透過以下連結訪問詳細的安裝指南:官方安裝步驟。同時,如果您需要下載相關的軟體或資源,請前往官方的下載地址:官方下載頁面

這些連結提供了全面的文件和工具,幫助您更順利地進行安裝和配置。建議大家在安裝之前先仔細閱讀官方指南,以便更好地理解每個步驟的具體操作和注意事項。

image

我已經為大家準備好了相關的下載連結,您可以透過以下地址獲取所需檔案:下載地址

需要特別提醒的是,雖然這個連結中包含了中文字元,這並不會對下載過程產生實質性的影響,但從規範性和可讀性角度來看,這樣的連結格式並不太理想。因此,建議官方在未來的連結命名中儘量避免使用中文,以提高連結的清晰度和一致性。

image

我們將繼續使用寶塔皮膚進行直接安裝,因為我選擇了 Docker 版本,這樣我們可以直接匯入映象進行使用。需要注意的是,官方尚未對外公開可用於公網的官方映象,因此這種方式是當前最方便的選擇。

匯入映象

最初,我打算透過寶塔皮膚的匯入映象功能直接進行匯入,但不幸的是,這一方法未能成功。因此,我只能轉而使用命令列的方式進行匯入。具體的命令如下:docker load -i kingbase.tar

image

此時,經過命令列的操作,本地環境中將成功生成所需的映象,方便後續的使用和部署。

image

我們決定直接採用 Compose 模板來啟動服務,而不是使用官方提供的命令列形式。這種方式不僅能夠簡化配置過程,還能提高我們在多容器應用管理上的靈活性和效率。

version: "2"
services:
  kingbase:
    image: kingbase_v009r001c001b0030_single_x86:v1
    container_name: kingbase
    privileged: true  # 注意這裡的縮排與前面的鍵值對對齊
    environment:
      - ENABLE_CI=yes    # yes(預設 大小寫不敏感)/no 大小寫敏感
      - NEED_START=yes    # yes(預設 啟動資料庫)/ no(不啟動資料庫)
      - DB_USER=system # 預設使用者名稱
      - DB_PASSWORD=12345678ab  # 預設密碼
      - DB_MODE=oracle    # 支援oracle/pg/mysql
    volumes:
      - /mnt/kingbase/data:/home/kingbase/userdata
    ports:
      - 4321:54321
    restart: unless-stopped
    command: /usr/sbin/init

編排模式的建立過程已經圓滿完成,所有相關配置和設定已成功應用。

image

接下來,我們將啟動相應的模板,以便迅速搭建所需的環境和服務。

image

啟動服務

接下來,我們只需啟動系統即可,相關的日誌資訊也非常清晰明瞭,有助於我們進行故障排查和效能監控。然而,我在這裡遇到了一些問題,啟動過程未能成功完成。

image

需要特別注意的是,由於我之前已經安裝過一次 Kingbase,但在這次安裝時忘記清空先前掛載的持久化目錄,這導致了啟動失敗的情況。對於新手使用者而言,通常在進行初次安裝時,系統能夠順利啟動併成功執行。

在成功安裝的過程中,相關的日誌資訊清晰地顯示了各項步驟和狀態,以下是安裝成功時的日誌輸出:

image

在成功啟動後,我們可以直接進入容器內部進行免密碼連線,以測試資料庫的正常執行情況。首先,我們需要確認資料庫服務是否已順利啟動:

sys_ctl -D /home/kingbase/userdata/data/ status

其次,我們將進行免密碼登入操作,以確保能夠無縫地訪問資料庫:

kql

我根據官方文件的指導進行操作,但直接顯示為失敗。

image

問題反饋

不過在安裝過程中,您不必感到擔憂,因為金倉官方提供了相應的問題論壇。在遇到任何困難時,您可以直接在論壇上發帖求助,尋求專業的支援與解答,論壇地址為:https://bbs.kingbase.com.cn/forum。

image

那麼我們暫時不使用免密登入的方式,而是直接使用剛才設定的預設賬戶和密碼進行登入。

ksql -Usystem -d test -p54321

image

既然不存在相關資料庫,我們可以直接登入後建立一個名為“system”的資料庫,隨後使用ksql命令進行免密登入。這種方法不僅簡便,還能提高我們的工作效率。

至於我不太喜歡使用命令列的原因,是因為命令列操作需要配置多種環境資訊,增加了出錯的可能性。此外,命令列方式在未來的叢集管理中可能會帶來不便。目前,所有運維同事都傾向於使用Kubernetes來進行管理,因此Docker成為了主流的安裝方式。這不僅簡化了部署流程,還能更好地適應現代化的運維需求。

映象推送

可以看出,官方並沒有將映象上傳到Docker官方庫,這意味著我們每次都需要到官網下載映象。這種方式在操作時非常不便,尤其是在不同機器之間頻繁切換時。因此,我們決定維護一個自己的映象倉庫,以便更高效地管理和部署。

這不僅可以大大簡化我們的操作流程,還能確保在需要時能夠快速獲取所需映象。目前,我以騰訊云為主要平臺,而且個人例項的使用是免費的。

image

建立一下映象倉庫:

image

我們在自己本地寶塔皮膚配置好倉庫地址:

image

將我們已經匯入好的映象推送到自己的倉庫是一個相對簡單但至關重要的步驟。透過這一過程,我們可以確保這些映象能夠在需要時快速訪問,從而大大提高工作效率。

image

公有倉庫

我已經成功地將映象推送到了自己的公有倉庫。這意味著在未來的操作中,如果你不願意直接從官網下載映象,也可以選擇將所需的映象直接下載。

version: "2"
services:
  kingbase:
    image: ccr.ccs.tencentyun.com/kingbase/database:v030
    container_name: kingbase-v030
    privileged: true  # 注意這裡的縮排與前面的鍵值對對齊
    environment:
      - ENABLE_CI=yes    # yes(預設 大小寫不敏感)/no 大小寫敏感
      - NEED_START=yes    # yes(預設 啟動資料庫)/ no(不啟動資料庫)
      - DB_USER=system # 預設使用者名稱
      - DB_PASSWORD=12345678ab  # 預設密碼
      - DB_MODE=oracle    # 支援oracle/pg/mysql
    volumes:
      - /mnt/kingbase/data:/home/kingbase/userdata
    ports:
      - 4322:54321
    restart: unless-stopped
    command: /usr/sbin/init

由於我們已經擁有一個正在執行的資料庫例項,這導致當前的新服務無法正常啟動。

image

總結

在這個過程中,我們深刻感受到Docker作為現代開發與運維工具的重要性。從單機安裝到映象管理,每一步都體現出其高效性和靈活性。面對技術的快速迭代,保持對新工具的敏感和適應能力顯得尤為關鍵。Docker不僅簡化了環境配置,更為團隊協作和資源共享提供了便利。

在實際操作中,雖會遇到各種問題,如映象匯入失敗或啟動過程中的小插曲,但這些都是成長過程中的必經之路。透過有效的問題反饋和社群支援,我們可以迅速找到解決方案,避免重複的錯誤。


我是努力的小雨,一名 Java 服務端碼農,潛心研究著 AI 技術的奧秘。我熱愛技術交流與分享,對開源社群充滿熱情。同時也是一位騰訊雲創作之星、阿里雲專家博主、華為云云享專家、掘金優秀作者。

💡 我將不吝分享我在技術道路上的個人探索與經驗,希望能為你的學習與成長帶來一些啟發與幫助。

🌟 歡迎關注努力的小雨!🌟

相關文章