三步搞定 ARM64 離線部署 Kubernetes + KubeSphere

背景

隨着我國對信息安全的愈發重視,國產化的趨勢也越來越濃,包括國產操作系統、國產 CPU 等。由於 ARM 架構國產 CPU 在維持創新可信和先進性方面的潛在優勢,其應用也將會越來越廣泛。

KubeSphere 作爲一款深受國內外開發者所喜愛的開源容器平臺,也將積極參與並探索在 ARM 架構下的應用與創新。本文將主要介紹如何在 ARM64 環境下部署 Kubernetes 和 KubeSphere。

環境準備

節點

kubeSphere 支持的操作系統包括:

  • Ubuntu 16.04, 18.04
  • Debian Buster, Stretch
  • CentOS/RHEL 7
  • SUSE Linux Enterprise Server 15
  • openEuler

這裏以一臺 openEuler 20.09 64bit 爲例: |name|ip|role| |---|---|---| |node1|172.169.102.249|etcd, master, worker|

確保機器已經安裝所需依賴軟件(sudo curl openssl ebtables socat ipset conntrack docker)

具體環境要求參見:https://github.com/kubesphere/kubekey/tree/release-1.0#requirements-and-recommendations

關於多節點安裝請參考 KubeSphere 官方文檔

建議:可將安裝了所有依賴軟件的操作系統製作成系統鏡像使用,避免每臺機器都安裝依賴軟件,即可提升交付部署效率,又可避免依賴問題的發生。

提示:如使用 centos7.x、ubuntu18.04,則可以選擇使用 kk 命令對機器進行初始化。 解壓安裝包,並創建好配置文件之後(創建方法請看下文),可執行如下命令對節點進行初始化: ./kk init os -s ./dependencies -f config-example.yaml 如使用該命令遇到依賴問題,可自行安裝相關依賴軟件。

鏡像倉庫

可使用 harbor 或其他第三方鏡像倉庫。

提示:可使用 kk 命令自動創建測試用自簽名鏡像倉庫。注意,請確保當前機器存在registry:2,如沒有,可從解壓包 kubesphere-images-v3.0.0/registry.tar 中導入,導入命令:docker load < registry.tar。 創建測試用自簽名鏡像倉庫: ./kk init os -f config-example.yaml --add-images-repo 注意:由 kk 啓動的鏡像倉庫端口爲443,請確保所有機器均可訪問當前機器443端口。鏡像數據存儲到本地/mnt/registry (建議單獨掛盤)。

安裝包下載:

提示:該安裝包僅包含 Kubernetes + KubeSphere-core 鏡像,如需更多組件 arm64 鏡像,可自行編譯構建。

# md5: 3ad57823faf2dfe945e2fe3dcfd4ace9
curl -Ok https://kubesphere-installer.pek3b.qingstor.com/offline/v3.0.0/kubesphere-core-v3.0.0-offline-linux-arm64.tar.gz

安裝步驟:

1. 創建集羣配置文件

安裝包解壓後進入kubesphere-core-v3.0.0-offline-linux-arm64

./kk create config

根據實際環境信息修改生成的配置文件config-sample.yaml,也可使用-f參數自定義配置文件路徑。kk 詳細用法可參考:https://github.com/kubesphere/kubekey

注意填寫正確的私有倉庫地址privateRegistry(如已準備好私有倉庫可設置爲已有倉庫地址,若使用 kk 創建私有倉庫,則該參數設置爲:dockerhub.kubekey.local)

apiVersion: kubekey.kubesphere.io/v1alpha1
kind: Cluster
metadata:
  name: sample
spec:
  hosts:
  # 注意指定節點 arch 爲 arm64
  - {name: node1, address: 172.169.102.249, internalAddress: 172.169.102.249, password: Qcloud@123, arch: arm64}
  roleGroups:
    etcd:
    - node1
    master:
    - node1
    worker:
    - node1
  controlPlaneEndpoint:
    domain: lb.kubesphere.local
    address: ""
    port: 6443
  kubernetes:
    version: v1.17.9
    imageRepo: kubesphere
    clusterName: cluster.local
  network:
    plugin: calico
    kubePodsCIDR: 10.233.64.0/18
    kubeServiceCIDR: 10.233.0.0/18
  registry:
    registryMirrors: []
    insecureRegistries: []
    privateRegistry: dockerhub.kubekey.local
  addons: []

2. 導入鏡像

進入kubesphere-all-v3.0.0-offline-linux-arm64/kubesphere-images-v3.0.0 使用 offline-installation-tool.sh 將鏡像導入之前準備的倉庫中:

# 腳本後鏡像倉庫地址請填寫真實倉庫地址
./offline-installation-tool.sh -l images-list-v3.0.0.txt -d kubesphere-images -r dockerhub.kubekey.local

3. 執行安裝

# 以上準備工作完成且再次檢查配置文件無誤後,執行安裝。
./kk create cluster -f config-sample.yaml --with-kubesphere

查看結果

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