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

OpenAnolis小助手發表於2023-01-13

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

伺服器資訊:

部署龍蜥 ACNS

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

wget -c 

使用 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 = ["]
  [plugins."io.containerd.grpc.v1.cri".registry.mirrors."sea.hub:5000"]
     endpoint = ["]
      [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 

執行 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 和底層複雜技術。

—— 完 ——


來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/70004278/viewspace-2932143/,如需轉載,請註明出處,否則將追究法律責任。

相關文章