一站式云原生体验|龙蜥云原生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 更加紧密的合作,提供给用户最佳的一站式云原生体验。
一站式云原生体验|龙蜥云原生ACNS + Rainbond的更多相关文章
- 持续优化云原生体验,阿里云在Serverless容器与多云上的探索
近日,阿里云宣布推出Serverless Kubernetes服务此举意在降低容器技术的使用门槛.简化容器平台运维.并同时发布阿里云服务对Open Service Broker API标准支持,通过一 ...
- 微信小程序(七)-项目实例(原生框架 MINA转云开发)==02-云开发-配置
云开发:1.就是用云函数的型式来使用云存储和云数据库完成各种操作! 2.只关注调什么函数,完成什么功能即可,无需关心HTTP请求哪一套! 3.此模式不代表没有服务器,只是部署在云环境中 ...
- 阿里云资深DBA专家罗龙九:云数据库十大经典案例分析【转载】
阿里云资深DBA专家罗龙九:云数据库十大经典案例分析 2016-07-21 06:33 本文已获阿里云授权发布,转载具体要求见文末 摘要:本文根据阿里云资深DBA专家罗龙九在首届阿里巴巴在线峰会的&l ...
- 【阿里云产品公测】云引擎ACE初体验
作者:阿里云用户蓝色之鹰 :RYYjmG5; 来投票支持我把=i2]qj\ 序号2. [阿里云产品公测]云引擎ACE初体验:作者:蓝色之鹰 e(OKE7 序号10.[阿里云产品公测]结构化数据服 ...
- UPYUN云服务体验计划,阅读神器Kindle、LaCie移动硬盘、索尼大法充电宝、高大上极路由、UPYUN代金券等你拿!
请看以下的“通关攻略”,分享你对云服务的“体验心得”,即可赢取绝佳的“通关宝藏”,阅读神器Kindle.LaCie移动硬盘.索尼大法充电宝.高大上极路由.UPYUN代金券等你拿!先来了解下UPYUN能 ...
- 菜鸟学IT之python词云初体验
作业来源:https://edu.cnblogs.com/campus/gzcc/GZCC-16SE1/homework/2822 1. 下载一长篇中文小说. 2. 从文件读取待分析文本. txt = ...
- 融云技术分享:融云安卓端IM产品的网络链路保活技术实践
本文来自融云技术团队原创分享,原文发布于“ 融云全球互联网通信云”公众号,原题<IM 即时通讯之链路保活>,即时通讯网收录时有部分改动. 1.引言 众所周知,IM 即时通讯是一项对即时性要 ...
- LiveVideoStackCon2021 北京站专访:从上云到创新,视频云的新技术、新场景
伴随着视频技术的进步和标准的迭代,视频产业从模拟进入到数字时代,完成了从电影电视到互联网的媒介转换,并且衍生出了超高清.3D.AR/VR 等多种创新形态.特别是在后疫情的当下,我们可以看到音视频技术领 ...
- 万物智联,腾讯云 IoT 边缘计算揭秘——云+未来峰会开发者专场回顾
欢迎大家前往腾讯云+社区,获取更多腾讯海量技术实践干货哦~ 背景:现在是万物互联的时代,智能穿戴设备,智能家居,无人商业,改变了我们的生活方式.预计到2021年,全球物联网设数将达到150亿,超过手机 ...
- 不服跑个分:ARM鲲鹏云服务器实战评测——华为云鲲鹏KC1实例 vs. 阿里云G5实例【华为云技术分享】
原文链接:https://m.ithome.com/html/444828.htm 今年一月份,华为正式发布了鲲鹏920数据中心高性能处理器,该处理器兼容ARM架构,采用7纳米制造,最高支持64核,主 ...
随机推荐
- Vue学习之--------深入理解Vuex之getters、mapState、mapGetters(2022/9/3)
这一篇博客的内容是在上一篇博客的基础上进行:深入理解Vuex.原理详解.实战应用 @ 目录 1.getters的使用 1.1 概念 1.2 用法 1.3 如何读取数据 2.getters在项目中的实际 ...
- 一个电器工厂可以生产多种类型的电器,如海尔工厂可以生产海尔电视机、海尔空调等,TCL工厂可以生产TCL电视机,TCL空调等,相同品牌的电器构成一个产品族,而相同类型的电器构成了一个产品等级结构,现使用
一个电器工厂可以生产多种类型的电器,如海尔工厂可以生产海尔电视机.海尔空调等,TCL工厂可以生产TCL电视机,TCL空调等,相同品牌的电器构成一个产品族,而相同类型的电器构成了一个产品等级结构,现使用 ...
- python基础之if条件控制语句
前言 本文主要介绍控制流程中的if条件语句,包括if...:if...else...:if...elif...elif...else...:if...if...if...else...:if嵌套等.内 ...
- 沁恒CH32V003F4P6 开发板上手报告和Win10环境配置
CH32V003 沁恒最近推出的低价CH32V003系列, 基于青稞RISC-V2A内核, 48MHz主频, 2KB SRAM, 16KB Flash, 工作电压兼容3.3V和5V. 主要参数如下 S ...
- 浅入浅出 1.7和1.8的 HashMap
前言 HashMap 是我们最最最常用的东西了,它就是我们在大学中学习数据结构的时候,学到的哈希表这种数据结构.面试中,HashMap 的问题也是常客,现在卷到必须答出来了,是必须会的知识. 我在学习 ...
- c++ 模板 指针类型偏特化
一步步来,先简单点. 目标:我们要实现一个模板类,例化后,可以通过get_val获取到值,通过get_ptr获取到指针.具体什么意思结合例子来看看吧. 例子: struct A{ int data; ...
- 独立按键控制led灯
#include "regx51.h"typedef unsigned int u16; void delay_us(u16 time){ while(time--){} }voi ...
- elasticsearch聚合之bucket terms聚合
目录 1. 背景 2. 前置条件 2.1 创建索引 2.2 准备数据 3. 各种聚合 3.1 统计人数最多的2个省 3.1.1 dsl 3.1.2 运行结果 3.2 统计人数最少的2个省 3.2.1 ...
- php变量规范命名用了记得消除,保证唯一性
PHP中的命名规则 类的命名 在为类(class )命名前首先要知道它是什么.如果通过类名的提供的线索,还是想不起这个类是什么的话,那么就说明设计存在问题. 超过三个词组成的混合名是容易造成系统各个 ...
- 基于python的数学建模---洛伦兹线与数值解
import numpy as np from scipy.integrate import odeint from mpl_toolkits.mplot3d import Axes3D import ...