一站式雲原生體驗|龍蜥雲原生ACNS + Rainbond
關於 ACNS
龍蜥雲原生套件 OpenAnolis Cloud Native Suite(ACNS)是由龍蜥社群雲原生 SIG 推出的基於 Kubernetes 發行版本為基礎而整合的套件能力,可以提供一鍵式部署,開箱即用,以及豐富的雲原生基礎能力,主要包括:
- 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大資料映象資料叢集內分發的場景等。
關於 Rainbond
Rainbond 是一個雲原生應用管理平臺,使用簡單,不需要懂容器、Kubernetes和底層複雜技術,支援管理多個Kubernetes叢集,和管理企業應用全生命週期。
ACNS 與 Rainbond 結合
龍蜥雲原生套件 ACNS提供一鍵部署叢集的能力,Rainbond 提供一鍵部署應用的能力,Rainbond 與龍蜥雲原生套件 ACNS 結合提供一站式的雲原生體驗:
- 基礎設施:Anolis OS 是 OpenAnolis 社群推出的完全開源、中立、開放的發行版,它支援多計算架構,也面向雲端場景優化,相容 CentOS 軟體生態。
- 容器層:龍蜥 ACNS 提供了經過大規模生產驗證的 ACK-D 叢集,同時也提供了 Kata 安全執行時、Dragonfly 檔案分發、Nydus 映象加速。
- 應用層:Rainbond 提供了應用開發、應用市場、微服務架構、應用交付、應用運維等開箱即用的能力。
部署 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-xxxx-xx
為 Running 狀態時,表示 Rainbond 安裝成功。
複製如下命令,在叢集中執行,可以獲取到平臺訪問地址。如果有多個閘道器節點,則任意一個地址均可訪問到控制檯。
kubectl get rainbondcluster rainbondcluster -n rbd-system -o go-template --template='{{range.spec.gatewayIngressIPs}}{{.}}:7070{{printf "\n"}}{{end}}'
最後
在未來,Rainbond 會與龍蜥雲原生 ACNS 更加緊密的合作,提供給使用者最佳的一站式雲原生體驗。
- 使用流水線外掛實現持續整合、持續部署
- 如何建設私有云原生 Serverless 平臺
- 基於 Rainbond 的 Pipeline(流水線)外掛
- 10分鐘學會使用 Loki 日誌聚合系統
- 讓遠端成為本地,微服務後端開發的福音
- 讓遠端成為本地,微服務後端開發的福音
- 10分鐘在 Rainbond 上部署 mall 電商專案
- 一站式雲原生體驗|龍蜥雲原生ACNS Rainbond
- 雲原生技術在離線交付場景中的實踐
- 簡單易用的監控告警系統 | HertzBeat 在 Rainbond 上的使用分享
- 微服務開發平臺 Spring Cloud Blade 部署實踐
- 不懂 Kubernetes 實現雲原生是什麼體驗?
- 乾貨分享|使用 Istio 實現灰度釋出
- 乾貨分享|使用 Istio 實現灰度釋出
- 不懂 Kubernetes 實現雲原生是什麼體驗?
- 乾貨分享!JAVA診斷工具Arthas在Rainbond上實踐~
- 如何不編寫 YAML 管理 Kubernetes 應用?
- 實踐分享!GitLab CI/CD 快速入門
- K8s小白?應用部署太難?看這篇就夠了!
- 微服務效能分析|Pyroscope 在 Rainbond 上的實踐分享