rainbond 是 一个 开源的Kubernetes 云原生应用管理平台。
Rainbond 核心100%开源,Serverless体验,不需要懂K8s也能轻松管理容器化应用,平滑无缝过渡到K8s,是国内首个支持国产化信创、适合私有部署的一体化应用管理平台。
官方网站:https://www.rainbond.com/
项目地址:https://github.com/goodrain/rainbond
Helm chart地址:https://github.com/goodrain/rainbond-chart
前置要求:
准备3个kubernetes节点
root@node1:~# kubectl get nodes -o wide
NAME STATUS ROLES AGE VERSION INTERNAL-IP EXTERNAL-IP OS-IMAGE KERNEL-VERSION CONTAINER-RUNTIME
node1 Ready control-plane 33d v1.27.3 192.168.72.30 <none> Ubuntu 22.04.2 LTS 5.15.0-76-generic containerd://1.6.21
node2 Ready control-plane 33d v1.27.3 192.168.72.31 <none> Ubuntu 22.04.2 LTS 5.15.0-76-generic containerd://1.6.21
node3 Ready control-plane 33d v1.27.3 192.168.72.32 <none> Ubuntu 22.04.2 LTS 5.15.0-76-generic containerd://1.6.21
准备可用的storageclass,支持RWO及RWX,本示例为openebs-hostpath 以及openebs-nfs
root@node1:~# kubectl get sc
NAME PROVISIONER RECLAIMPOLICY VOLUMEBINDINGMODE ALLOWVOLUMEEXPANSION AGE
openebs-hostpath (default) openebs.io/local Delete WaitForFirstConsumer false 33d
openebs-kernel-nfs openebs.io/nfsrwx Delete Immediate false 17h
添加Rainbond Helm 仓库
helm repo add rainbond https://openchart.goodrain.com/goodrain/rainbond
安装rainbond
helm install rainbond rainbond/rainbond-cluster \
-n rbd-system --create-namespace \
--set operator.env[0].name=CONTAINER_RUNTIME \
--set operator.env[0].value=containerd \
--set Cluster.RWX.enable=true \
--set Cluster.RWX.config.storageClassName=openebs-kernel-nfs \
--set Cluster.RWO.enable=true \
--set Cluster.RWO.storageClassName=openebs-hostpath
参数说明:
等待rainbond部署完成,查看运行的pods
root@node1:~# kubectl -n rbd-system get pods
NAME READY STATUS RESTARTS AGE
dashboard-metrics-scraper-6948f9475-lmgd4 1/1 Running 0 12m
kubernetes-dashboard-cd594bb64-mn29s 1/1 Running 0 12m
metrics-server-56df97f57-snb7t 1/1 Running 0 12m
rainbond-operator-85bb988bb8-wxwmm 1/1 Running 0 12m
rbd-api-7d7b876b74-xg4vt 1/1 Running 0 12m
rbd-app-ui-765669864b-jwrf4 1/1 Running 0 11m
rbd-chaos-nbn4d 1/1 Running 0 12m
rbd-chaos-qgxfs 1/1 Running 0 12m
rbd-db-0 2/2 Running 0 12m
rbd-etcd-0 1/1 Running 0 12m
rbd-eventlog-0 1/1 Running 0 12m
rbd-gateway-8tqkr 1/1 Running 0 12m
rbd-gateway-bpzkp 1/1 Running 0 12m
rbd-hub-868ccb6645-nfbqs 1/1 Running 0 12m
rbd-monitor-0 1/1 Running 0 12m
rbd-mq-5c766bf9cf-2rqp6 1/1 Running 0 12m
rbd-node-d7cjv 1/1 Running 0 12m
rbd-node-j57vw 1/1 Running 0 12m
rbd-node-kjfcf 1/1 Running 0 12m
rbd-resource-proxy-947f9fc96-jhkjg 1/1 Running 0 12m
rbd-webcli-6b785c49b5-74fl2 1/1 Running 0 12m
rbd-worker-7d7786c46f-mxp9t 1/1 Running 0 12m
查看service
root@node1:~# kubectl -n rbd-system get svc
NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE
dashboard-metrics-scraper ClusterIP 10.96.0.201 <none> 8000/TCP 27m
kubernetes-dashboard ClusterIP 10.96.0.180 <none> 443/TCP 27m
metrics-server ClusterIP 10.96.1.195 <none> 443/TCP 27m
rbd-api-api ClusterIP 10.96.1.178 <none> 8443/TCP 26m
rbd-api-api-inner ClusterIP 10.96.2.253 <none> 8888/TCP 26m
rbd-api-healthz ClusterIP 10.96.2.237 <none> 8889/TCP 26m
rbd-api-websocket ClusterIP 10.96.1.102 <none> 6060/TCP 26m
rbd-app-ui ClusterIP 10.96.2.126 <none> 7070/TCP 25m
rbd-chaos ClusterIP 10.96.3.227 <none> 3228/TCP 26m
rbd-db-exporter ClusterIP None <none> 9104/TCP 27m
rbd-db-rw ClusterIP None <none> 3306/TCP 27m
rbd-etcd ClusterIP None <none> 2379/TCP,2380/TCP 28m
rbd-eventlog ClusterIP 10.96.1.219 <none> 6363/TCP,6362/TCP,6166/TCP 26m
rbd-hub ClusterIP 10.96.1.97 <none> 5000/TCP 28m
rbd-monitor ClusterIP 10.96.1.73 <none> 9999/TCP 27m
rbd-resource-proxy ClusterIP 10.96.0.152 <none> 80/TCP 27m
查看pvc卷
root@node1:~# kubectl -n rbd-system get pvc
NAME STATUS VOLUME CAPACITY ACCESS MODES STORAGECLASS AGE
data Bound pvc-be13276d-4948-466e-9df6-6f56c3062c52 20Gi RWO openebs-hostpath 27m
data-rbd-monitor-0 Bound pvc-1a35e6b9-45a6-4c21-9e4a-ff6e5a97731e 20Gi RWO openebs-hostpath 27m
rbd-api Bound pvc-4436a9ae-f85e-4b37-ac73-1123514dd3d1 1Gi RWX openebs-kernel-nfs 26m
rbd-app-ui Bound pvc-6d1591d0-c3dc-42a0-91dd-b34c155a419e 10Gi RWX openebs-kernel-nfs 25m
rbd-chaos-cache Bound pvc-cd7d1dcc-fea9-4b7b-bf6b-afcc53905788 10Gi RWX openebs-kernel-nfs 26m
rbd-cpt-grdata Bound pvc-f59fa5d4-32bb-4b80-98b1-0704d2bf255f 20Gi RWX openebs-kernel-nfs 28m
rbd-db-rbd-db-0 Bound rbd-db 1Gi RWO manual 27m
rbd-etcd-rbd-etcd-0 Bound rbd-etcd 1Gi RWO manual 28m
rbd-hub Bound pvc-5571e2cb-ad56-4f40-9235-7e408c73e1a7 10Gi RWX openebs-kernel-nfs 28m
查看网关所在节点IP
root@node1:~# kubectl -n rbd-system get pods -l name=rbd-gateway -o wide
NAME READY STATUS RESTARTS AGE IP NODE NOMINATED NODE READINESS GATES
rbd-gateway-8tqkr 1/1 Running 0 16h 192.168.72.32 node3 <none> <none>
rbd-gateway-bpzkp 1/1 Running 0 16h 192.168.72.31 node2 <none> <none>
浏览器访问rainbond UI,其中192.168.72.31
为任意网关节点IP地址
http://192.168.72.17:7070
总览: