把API Connect關進All-in-One K8S Playground裏

衆所周知,把大象關進冰箱裏統共需要三步。那麼把API Connect這個“龐然大物”關進All-in-One Kubernetes Playground裏,到底需要幾步呢?本文是開源項目lab-k8s-playground的高級應用案例。如果您喜歡這個項目,歡迎前往GitHub網站,關注,加星,以及貢獻代碼

API Connect

IBM API Connect(APIC)是IBM開發的一款API生命週期管理軟件,它的核心部分是基於Node.js開源框架LoopBack構建而成的。如果你對LoopBack感興趣,歡迎訪問我的深入淺出LoopBack系列教程。

標準的APIC安裝,對於包括CPU,內存,存儲在內的系統資源要求都比較高,通常需要多個虛擬機或物理機才能完成部署;其安裝過程也比較複雜,通常需要幾個小時甚至幾天的時間才能完成安裝,詳情可見它的安裝文檔

本文將告訴你,利用All-in-One Kubernetes Playground,只要五個步驟,就可以在單機環境下,把APIC部署到一個由多節點構成的標準Kubernetes集羣裏。整個過程是完全自動化進行的,並且可以無限次重複!

第一步:初始化環境

首先,我們把All-in-One Kubernetes Playground的Git庫克隆到本地,進入項目的根目錄,執行init命令對Playground環境進行初始化:

$ git clone https://github.com/morningspace/lab-k8s-playground.git
$ cd lab-k8s-playground
$ ./install/launch.sh init

然後,打開~/.bashrc文件,根據需要對某些環境變量進行調整,比如:指定本機的IP地址,Kubernetes的版本,集羣的節點個數等:

# The IP of your host that runs APIC
export HOST_IP=<your_host_ip>
# The Kubernetes version, default is v1.14
export K8S_VERSION=
# The number of worker nodes, must be 3
export NUM_NODES=3

爲了在當前登錄終端裏讓上面的改動生效,我們需要執行下面的命令重新加載.bashrc

$ . ~/.bashrc

安裝了APIC的Playground可以在包括Ubuntu,CentOS,RHEL在內的多個操作系統上運行。

第二步:準備安裝包

下載APIC的安裝包,並保存到$LAB_HOME/install/.launch-cache/apic目錄下,包括安裝APIC所需的全部Docker鏡像,以及apicup可執行文件,例如:

$ ls -1 $LAB_HOME/install/.launch-cache/apic/
analytics-images-kubernetes_lts_v2018.4.1.4.tgz
apicup-linux_lts_v2018.4.1.4
idg_dk2018414.lts.nonprod.tar.gz
management-images-kubernetes_lts_v2018.4.1.4.tgz
portal-images-kubernetes_lts_v2018.4.1.4.tgz

這裏,$LAB_HOME代表Playground項目的根目錄。

APIC的安裝包可以從IBM的官方下載站點獲取到,具體方法此處略。

第三步:修改部署配置

我們可以根據需要,在下面的文件裏,對APIC各個服務所使用的主機名,以及其他相關設置進行定製:

$ vi $LAB_HOME/install/targets/apic/settings.sh

當在Playground裏成功完成第一次APIC安裝以後,我們可以把settings.sh裏的apic_skip_load_images設置爲1,這樣可以跳過APIC的安裝過程中“把Docker鏡像加載到本地Private Registry”的步驟。因爲,這一步驟在完成第一次APIC的安裝以後就不需要再執行了,這可以爲APIC的安裝部署節省很多時間。

如果你對如何自定義APIC的配置感興趣,可參考附錄:自定義APIC配置

第四步:啓動APIC

執行如下命令啓動Kubernetes:

$ launch default

等Kubernetes啓動完以後,我們可以執行kubectl version來驗證啓動是否成功。

如果你是中國地區的用戶,請在執行launch之前設置環境變量export IS_IN_CHINA=1,這樣可以解決Kubernetes啓動過程中無法從Google網站下載Docker鏡像的問題。

然後,啓動APIC:

$ launch apic

完成啓動過程需要花費一定的時間,具體取決於你的系統配置。以我的虛機爲例,在apic_skip_load_images設置爲1的情況下,大概不到15分鐘就完成了。

等APIC啓動起來以後,可以執行kubectl get pods -n apiconnect,檢查APIC的所有pod是否都已經成功的啓動起來了。

如果我們想銷燬當前的APIC環境,再重新啓動一個新的集羣,只需要執行下面這一行命令就可以了:

$ launch apic::clean kubernetes::clean registry::up kubernetes apic

第五步:暴露APIC端口

可以利用下面的命令把APIC的服務端口暴露到集羣外:

$ launch apic::portforward

然後,我們再把主機IP和主機名的映射定義添加到本地的/etc/hosts文件裏,這樣就可以在本地的瀏覽器裏訪問APIC的UI了:

$ cat /etc/hosts
...
<your_host_ip>   cm.morningspace.com gwd.morningspace.com gw.morningspace.com padmin.morningspace.com portal.morningspace.com ac.morningspace.com apim.morningspace.com api.morningspace.com

附錄:自定義APIC配置

所有APIC的配置文件都保存在$LAB_HOME/install/targets/apic目錄下。其中,settings.sh文件用於配置APIC各個服務所用的主機名,以及所需內存和存儲的大小。

當完成自定義以後,我們可以執行下面的命令,讓APIC對我們所做的修改進行驗證:

$ launch apic::validate

在輸出結果裏,大家可能會注意到,有些地方會有驗證錯誤,比如:

data-storage-size-gb  10    ✘  data-storage-size-gb must be 200 or greater 

這表示,APIC的analytics子系統所使用的data-storage-size-gb必須要大於等於200GB。如果你覺得自己所指定的值,在當前環境下足以運行APIC的話,那就可以忽略這些錯誤。

更多參考資料

讀到這裏,相信你對開源項目lab-k8s-playground及其All-in-One Playground的應用應該有了更全面的瞭解了。那麼,還有哪些參考資料你可以訪問呢?那就請快速讀一下下面這段Shell腳本編寫的“代碼”吧? 相信一定難不倒你!

選擇你感興趣的分支,點擊相應分支下列出的文檔資源。最後,如果您喜歡這個項目,歡迎點擊本文開頭處(或下列代碼註釋裏)的按鈕,關注,加星,以及貢獻代碼_

function where_to_start {
  case $I_want in
  "to learn what it provides in general")
    cat "All-in-One K8S Playground Overview"
    ;;
  "to get started quickly")
    cat "All-in-One K8S Playground Usage Guide"
    cat "All-in-One K8S Playground 中文使用指南"
    ;;
  "to understand what's behind")
    cat "Launch multi-node k8s cluster locally in one min..."
    cat "Kubernetes實戰視頻: 如何1分鐘內在本地啓動一個多節點集羣"
    cat "OpenShift v3的填坑之旅"
    ;;
  "to extend it by myself")
    cat "Launch Utility Usage Guide"
    cat "A Sample Target for Demo Purpose"
    ;;
  "to learn more cool features")
    cat "Quick Guide to Launch APIC Playground"
    cat "把API Connect關進All-in-One K8S Playground裏"
    cat "All-in-One K8S Playground新增OpenShift支持"
    ;;
  "to contribute back")
    # Feel free to click these buttons: Watch Star Fork
    git clone https://github.com/morningspace/lab-k8s-playground.git
    ;;
  esac
}

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章