天天看點

當 Rainbond 遇上龍蜥!小龍帶你玩轉一站式雲原生,點選開啟

作者:龍蜥社群小龍

Rainbond 是一個雲原生應用管理平台,使用簡單,不需要懂容器、Kubernetes 和底層複雜技術,支援管理多個 Kubernetes 叢集,和管理企業應用全生命周期。主要功能包括應用開發環境、應用市場、微服務架構、應用傳遞、應用運維、應用級多雲管理等。

當 Rainbond 遇上龍蜥!小龍帶你玩轉一站式雲原生,點選開啟

龍蜥雲原生套件 Anolis Cloud Native Suite(ACNS)是由龍蜥社群雲原生 SIG (Special Interest Group)推出的基于 Kubernetes 發行版本為基礎而內建的套件能力,可以提供一鍵式部署、開箱即用,以及豐富的雲原生基礎能力,主要包括:

當 Rainbond 遇上龍蜥!小龍帶你玩轉一站式雲原生,點選開啟
  • Kubernetes 基于 ACK-D , 作為開源的發行版以及 ACK 的下遊,ACK-D 經過大規模的生産的驗證,保證了元件的穩定性、可靠性;同時在網絡插件上支援 Calico、Hybirdnet,可同時支援網絡的 Overlay 與 Underlay,除了 Overlay 滿足容器網絡的同時,可以部署成 Underlay 模式是使得 POD IP 直接被外部通路,同時提供比較好的性能;存儲插件上支援本地存儲 Open-Local、利用 LVM 提供了靈活的本地磁盤能力,以及共享存儲 Minio。
  • Runtime 同時支援 runC、runD 和 Kata,以及 runE (未來版本),滿足各種對共享、隔離以及安全場景下使用。
  • 鏡像管理上提供了開箱即用的 Nydus + Dragonfly,使用 Nydus 可以在叢集内部使鏡像按需加載,可以大大提高叢集的動态彈性的能力;Dragonfly 則是提供鏡像在叢集的 P2P 的能力,這兩個能力主要面向 Kubernetes 叢集提供 Serverless 服務,以及動态彈性的場景,AI 大資料鏡像資料叢集内分發的場景等。

部署 ACNS 與 Rainbond

伺服器資訊:

作業系統 IP
Anolis OS 8.6 ANCK 172.31.98.243
Anolis OS 8.6 ANCK 172.31.98.242

部署龍蜥 ACNS

在任意節點上下載下傳 sealer 可執行檔案:

wget -c https://cloud-native.oss-cn-shanghai.aliyuncs.com/bin/amd64/sealer-latest-linux-amd64.tar.gz && tar -xvf sealer-latest-linux-amd64.tar.gz -C /usr/bin           

使用 sealer 下載下傳叢集鏡像 :

sealer pull cloud-native-registry.cn-shanghai.cr.aliyuncs.com/kubernetes/anoliscluster:v1.0           

定義 Clusterfile 檔案,Clusterfile 用于定義叢集相關資訊,例如:節點 IP、參數等,通過 Clusterfile 一鍵式部署叢集。

$ vim Clusterfile

apiVersion: sealer.cloud/v2
kind: Cluster
metadata:
  name: my-cluster        # 自定義叢集名稱
spec:
  image: cloud-native-registry.cn-shanghai.cr.aliyuncs.com/kubernetes/anoliscluster:v1.0
  env:
    - ContainerRuntime=containerd # 使用 containerd 運作時
    - SkipPreflight=true
    - SupportKata=true      # 使用 Kata 容器
    - SupportNydus=true      # 使用 Nydus
    - SupportDragonfly=true    # 使用 Dragonfly
    - YodaDevice=/dev/vdb     # Node 節點未使用的磁盤,用于 Dragonfly 存儲資料
  ssh:
    passwd: xxxx         # 節點 root ssh 密碼
  hosts:
    - ips: [ 172.31.98.243 ]   # master IPS
      roles: [ master ]
    - ips: [ 172.31.98.242 ]   # node IPS
      roles: [ node ]           

開始部署 ACNS

sealer apply -f Clusterfile           

配置 Dragonfly

等待部署完成後,在 Node 節點上配置 Containerd 使用 Dragonfly,在 Containerd 中配置鏡像的 Mirror,如下:

$ vim /etc/containerd/config.toml

[plugins."io.containerd.grpc.v1.cri".registry]
 [plugins."io.containerd.grpc.v1.cri".registry.mirrors]
  [plugins."io.containerd.grpc.v1.cri".registry.mirrors."docker.io"]
   endpoint = ["http://127.0.0.1:65001","https://registry-1.docker.io"]
  [plugins."io.containerd.grpc.v1.cri".registry.mirrors."sea.hub:5000"]
     endpoint = ["http://127.0.0.1:65001","https://sea.hub:5000"]
      [plugins."io.containerd.grpc.v1.cri".registry.configs."sea.hub:5000".tls]
       insecure_skip_verify = true           

配置完成後重新開機 Containerd 生效。

systemctl restart containerd           

在 ACNS 上部署 Rainbond

修改叢集的 Coredns 配置,讓 sea.hub 可在叢集中使用。

$ kubectl edit cm coredns -n kube-system

apiVersion: v1
data:
  Corefile: |
    .:53 {
        hosts {
          172.31.98.243 sea.hub
          fallthrough
        }
    }

# 重新開機 Coredns POD
$ kubectl delete pod -l k8s-app=kube-dns -n kube-system           

使用 Helm 部署 Rainbond

建立 rbd-system 命名空間。

kubectl create namespace rbd-system           

添加 Rainbond Helm 倉庫。

helm repo add rainbond https://openchart.goodrain.com/goodrain/rainbond           

執行 Helm 指令安裝 Rainbond 并指定鏡像倉庫資訊,複用 sealer 的 registry。

helm install rainbond rainbond/rainbond-cluster -n rbd-system \
--set Cluster.imageHub.enable=true \
--set Cluster.imageHub.domain=sea.hub:5000 \
--set Cluster.imageHub.namespace=rainbond \
--set Cluster.imageHub.username=sealer \
--set Cluster.imageHub.password=sealer           

當名稱包含 rbd-app-ui 的 POD 為 Running 狀态時即安裝成功。POD rbd-app-ui-669bb7c74b-7bmlf 為 Running 狀态時,表示 Rainbond 安裝成功。

複制如下指令,在叢集中執行,可以擷取到平台通路位址。如果有多個網關節點,則任意一個位址均可通路到控制台。

kubectl get rainbondcluster rainbondcluster -n rbd-system -o go-template --template='{{range.spec.gatewayIngressIPs}}{{.}}:7070{{printf "\n"}}{{end}}'           

最後

龍蜥雲原生套件 ACNS 提供一鍵部署叢集的能力,Rainbond 提供一鍵部署應用的能力,Rainbond 與龍蜥雲原生套件 ACNS 結合提供一站式的雲原生體驗:

  • 基礎設施:Anolis OS 是龍蜥社群推出的完全開源、中立、開放的發行版,它支援多計算架構,也面向雲端場景優化,相容 CentOS 軟體生态。
  • 容器層:龍蜥 ACNS 提供了經過大規模生産驗證的 ACK-D 叢集,同時也提供了 Kata、Dragonfly、Nydus。
  • 應用層:Rainbond 是一個雲原生應用管理平台,使用簡單,不需要懂容器、Kubernetes 和底層複雜技術。

—— 完 ——

繼續閱讀