阿里云Kubernetes服务 - Service Broker快速入门指南
4月底阿里云容器服务上线了基于Kubernetes集群的服务目录功能。阿里云的容器的服务目录遵循Open Service Broker API标准,提供了一系列的服务代理组件,实现了对主流开源服务如MySQL、MariaDB、Spark、RabbitMQ等的完美支持,同时提供了管理阿里云RDS服务的RDS broker功能。通过控制台,用户可以浏览到各种服务的broker,通过简单地界面操作,就可以完成创建和销毁不同规格的服务实例,将目标服务实例与应用绑定,并以安全的方式将服务实例的访问信息和秘钥注入到应用容器中,大大降低了云服务的使用的复杂度,提高了管理效率。
下面以RDS broker为例来进行说明,以帮助大家快速上手。
安装service catalog
首先,进入容器服务,创建一个Kubernetes集群,然后在控制台就可以看到服务目录标签
点击服务目录,点击左上角的“集群”,可以选择不同的集群。如果选择的集群还未安装过service catalog,点击“请点击安装”,即可以进行安装。
安装完成后就可以看到目前支持的各个service broker的标签:
安装service broker
点击“rds-broker”,进入rds-broker的详情页面,如下所示。详情页面有两个标签页:“说明”和“参数”。“说明”标签页说明了broker的具体使用方法;“参数”标签页是部署该broker的各种参数,可以根据需要进行修改。
broker的部署有两种方式:
1 通过控制台部署 点击右侧的“创建”按钮即可以进行部署,service broker会以指定的名字部署到指定的namespace中,以rds broker为例,会以“aliacs-rds-broker” 名称部署到名为“catalog”的namespace中。service catalog也安装在“catalog” namespace中;
2 使用命令行部署,这种部署方式,需要登录到集群的master节点上,使用kubectl的命令进行部署,“说明”标签页中有具体的操作步骤。这种方式可以灵活的指定名称和namespace。
下面使用命令行的方式进行部署。
首先登录集群的master节点(具体方法是:点击“集群”标签,选择集群,然后点击“管理”按钮,进入集群的“基本信息”页。查看右侧页面中的“Master 节点 SSH 连接地址”,通过ssh登录到集群的master节点)。
如果使用rds broker,需要给Kubernetes集群授予rds的访问权限。
授予的步骤可以参考“说明”标签页的“Prerequisites”中说明方法:
首先点击“集群”标签,选择集群,点击“管理”->选择“集群资源”中的“资源编排ROS”,点击ROS的链接,跳转到“ROS”控制台->在“ROS”控制台左侧点击“资源”标签,右侧下拉到最后面,选择“KubernetesWorkerRole”资源,然后点击链接,跳转至“访问控制”控制台->在“访问控制”控制台左侧,点击“角色授权策略”按钮,然后在右侧页面中点击“查看权限”按钮,在跳转的页面,点击“授权策略详情”按钮,进入“策略详情”页,在“策略详情页”中点击“修改授权策略”按钮。在弹出的对话框中,参考里面的格式增加如下内容,点击“修改策略”按钮,完成授权。
使用如下命令安装,“--name”和“--namespace”可以按照,本例中为“rds-broker”和“rds-broker-ns”。
删除broker可以使用如下命令:
注册broker
安装完成之后,首先需要通过kubectl命令注册broker。
建立一个名为rds-broker.yaml的文件,内容如下。其中“name”项可以根据需要进行修改,“url”项为service broker的url地址,格式为:broker的service名称.broker的namespace名称.cluster.local。
broker的service名称可以通过:kubectl get svc -n rds-broker-ns查询到。
注册命令如下:
注册后可以查询到clusterservicebroker、clusterserviceclass、clusterserviceplan三种资源。
其中Clusterserviceclass和Clusterserviceplan的“External Name”需要在创建rds instance是指定。不同的Clusterserviceplan可以创建不同的rds instance,可以根据需要进行选择。
创建instance
建立一个名为rds-instance.yaml的文件,内容如下。
其中“name”、“namespace”、“clusterServiceClassExternalName”和“clusterServicePlanExternalName”可以根据需要进行指定。本例中因为选择的是“self-define”的clusterserviceplan,需要在“parameters”中指定rds的数据库类型(可以在rds控制台的创建页面的“数据库类型”中选择,目前仅支持mysql)、Class(同样在rds控制台的创建页面中的“规格”中来选择,请参考https://help.aliyun.com/document_detail/26312.html?spm=a2c4g.11186623.6.562.Uftgml)和Storage(单位是G,范围为20~1000,步长是5)。
创建isntance的命令如下:
创建的过程大约需要15分钟左右,创建完成后,可以再阿里云的rds控制台中查看到正在创建的rds实例,也可以通过kubectl get serviceinstance -n rds-broker-ns的命令来查看。kubectl describe serviceinstance -n rds-broker-ns rds-instance(instance的名称) 可以更加详细的查看instance创建的状态。
创建binding
创建binding会在kubernetes集群中创建一个包含rds实例的host、username、password、port等信息在内的secret。
下面开始创建binding。
建立一个名为rds-binding.yaml的文件,内容如下:
使用如下命令创建servicebinding,该servicebinding会在kubernetes集群中创建一个名为“rds-instance-credentials”的secret。其中“parameters”中的“Username”和“Password”可以根据需要指定。
Binding完成大约需要10分钟左右的时间,可以通过rds控制台中查看相关实例的账号管理来查看,也可以通过kubectl describe serviceisntance -n rds-broker-ns rds-binding(binding的名称)来查看。
使用kubectl get secret -n rds-broker-ns命令可以查看secret的情况:
使用kubectl get secret -n rds-broker-ns -o json可以获取更详细的信息。
其中username、host、password、port、uri是经过加密的访问instance的信息,解密以后即可用来访问rds的instance。
binding的使用
对binding生成的secret中的相关字段进行解码后可以访问rds instance了。
通过mysql client访问:
通过python来访问:
通过deployment来访问:
本文作者:揄扬
阿里云Kubernetes服务 - Service Broker快速入门指南的更多相关文章
- 阿里云Kubernetes服务上使用Tekton完成应用发布初体验
Tekton 是一个功能强大且灵活的 Kubernetes 原生开源框架,用于创建持续集成和交付(CI/CD)系统.通过抽象底层实现细节,用户可以跨多云平台和本地系统进行构建.测试和部署. 本文是基于 ...
- 15分钟在阿里云Kubernetes服务上快速建立Jenkins X Platform并运用GitOps管理应用发布
本文主要介绍如何在阿里云容器服务Kubernetes上快速安装部署Jenkins X Platform并结合demo实践演示GitOps的操作流程. 注意:本文中使用的jx工具.cloud-envir ...
- 阿里云日志服务采集自建Kubernetes日志(标准输出日志)
日志服务支持通过Logtail采集Kubernetes集群日志,并支持CRD(CustomResourceDefinition)进行采集配置管理.本文主要介绍如何安装并使用Logtail采集Kuber ...
- 阿里云容器服务区块链解决方案全新升级 支持Hyperledger Fabric v1.1
摘要: 全球开源区块链领域影响最为广泛的Hyperledger Fabric日前宣布了1.1版本的正式发布,带来了一系列丰富的新功能以及在安全性.性能与扩展性等方面的显著提升.阿里云容器服务区块链解决 ...
- 杂项-分布式-EDAS:深度解析阿里云EDAS服务
ylbtech-杂项-分布式-EDAS:深度解析阿里云EDAS服务 1.返回顶部 1. 深度解析阿里云EDAS服务 弹性伸缩 摘要: 第一种只适用于业务较少的情况,而在新业务不断增加的情况下,增加新应 ...
- 阿里云容器服务通过LoadBalancer暴露IPv6服务
背景: IPv4地址已接近枯竭,被誉为下一代互联网技术的IPv6成为新的“全球互联网门牌号”,它可以让地球上的每一粒沙子都拥有地址.当下,各国都在加速推进下一代互联网的部署,工信部也互联网服务商提出了 ...
- ACK容器服务虚拟节点使用阿里云日志服务来收集业务容器日志
按照这篇博文的介绍,可以在ACK集群上通过Helm的方式部署虚拟节点,提升集群的弹性能力.现在,通过虚拟节点部署的ECI弹性容器实例也支持将stdout输出.日志文件同步到阿里云日志服务(SLS)进行 ...
- [阿里移动推荐算法]比赛_快速入门_4_19_update_仅供参考,思维不要受局限
[这里只讲快速入门——即破题,正负样本不平衡.特征数量等问题就自己多看论文或者其他资料吧~~如果还有数据挖掘相关基础知识不了解的,建议看看<数据挖掘导论>] [以下是理解错误案例]:错误的 ...
- 自建k8s集群日志采集到阿里云日志服务
自建k8s集群 的master 节点安装 logtail 采集工具 wget http://logtail-release-cn-hangzhou.oss-cn-hangzhou.aliyuncs.c ...
随机推荐
- CopyOnWriteArrayList 源码分析
CopyOnWriteArrayList CopyOnWriteArrayList 能解决什么问题?什么时候使用 CopyOnWriteArrayList? 1)CopyOnWriteArrayLis ...
- 005-unity3d 添加背景音乐、音效 以及 天空盒子
一.基础知识 1.项目中需要有AudioListener,播放器中播放的声音就是AudioListener组件坐在的位置听到的声音.默认AudioListener是放到Main Camera上.没有A ...
- 《图解设计模式》读书笔记8-3 STATE模式
目录 State模式 示例程序 实现的功能 不使用&使用状态模式对比 示例程序的类图 代码 角色和类图 角色 类图 拓展思路 分而治之 依赖于状态的处理 谁来管理状态迁移 易于增加新状态 实例 ...
- Learn Python the hard way, ex41 来自Percal 25 号星星的哥顿人
我承认,我偷懒了,少打了大量代码(剧情),英文太差,下次可以编个中文的试试 #!/urs/bin/python #coding:utf-8 from sys import exit from rand ...
- 【ABAP系列】SAP F4搜索帮助的高级版
公众号:SAP Technical 本文作者:matinal 原文出处:http://www.cnblogs.com/SAPmatinal/ 原文链接:[ABAP系列]SAP F4搜索帮助的高级版 ...
- Lucene的步骤
// 1. 采集数据 BookDao bookDao = new BookDaoImpl(); List<Book> bookList = bookDao.queryBookList(); ...
- oracle linux 7使用udev绑盘操作
参考:Oracle Linux 7: Udev rule for ASM Cannot Place the ASM Disk in a Directory under /dev (Doc ID 221 ...
- 防止XSRF 解决方案
1.首先在表单提交页面生成校验使用的Token public ActionResult Index() { //Token验证需要使用的token string token = System.Guid ...
- tomcat 端口8080占用问题
启动tomcat时,有时会出现8080端口占用的问题. 解决方法: 终端:ps -e | grep tomcat 会看到下边的结果 途中标记的是进程号,kill掉即可. kill -9 9734(97 ...
- 关于mysql的使用命令(持续更新中...)
特别提示 本说明中的mysql 是基于windwos平台下的5.5 版本 安装完成后 请到mysql中设置配置文件 链接分享:链接:https://pan.baidu.com/s/1tv4ulZ ...