1、创建有状态(StatefulSet)部署
中间件一般为有状态部署,有状态部署与无状态部署区别参考文档:K8S有无状态部署-CSDN博客
1.1、基本信息
注意:
应用名称命名规则:(命名规则最好统一,便于辨认)
- 单机部署:中间件的名称即可,如rabbitmq
- 集群部署:如需要部署3个节点,名称为:rabbitmq-01、rabbitmq-02、rabbitmq-03
1.2、容器设置
注意:
- 容器名称:默认无需更改,为之后启动pod的名称,默认为【中间件的名称-序号】,如部署一个中间件为:rabbitmq-0
1.3、健康检查(选配)
- 健康检查:中间件状态检测告警功能
1.4、环境变量(选配)
- 环境变量:为容器配置环境变量,如手动配置账号密码、中间件启动内存大小都可以在此设置,设置的变量名可以参考所部署中间件的官方文档
下面是rabbitmq容器初始化的4项配置
- RABBITMQ_NODENAME:设置 RabbitMQ 服务节点的名称,集群使用的配置,注意:@后面为中间件的名称(1.1中设置的名称)
- RABBITMQ_ERLANG_COOKIE:设置 Erlang 分布式系统中节点间认证的“cookie”值,集群使用。集群内的rabbitmq必须使用相同的值
- RABBITMQ_DEFAULT_USER:管理员账号
- RABBITMQ_DEFAULT_PASS:管路员密码(3/4不配置,账号密码默认为guest)
1.5、访问设置
- 访问设置:即配置service,提供访问中间件的入口,配置完成后会生成集群内部访问的url
1.6、高级设置
默认即可,需要prometheus监控和日志可自己配置
注意:自定义域名不要随意配置,办公网段是无法识别的
点击提交,完成即可
2、访问中间件
2.1、进入创建完成的部署
- 有状态(StatefulSet)中找寻刚刚创建的有状态部署并点击进入
2.2、查看有状态的访问方式
访问方式其实就是创建部署时,配置的服务(service)
rabbitmq-03.sales-cbackup-prd.svc.cluster.local域名
- 【集群内访问】,表示只有当前CCE集群中的容器才能识别访问该域名(或IP)
-
4369 -> 4369/TCP;
5671 -> 5671/TCP;
5672 -> 5672/TCP;
15672 -> 15672/TCP;
25672 -> 25672/TCP;表示可以通过该域名(或IP),访问容器内部(中间件)的端口
如:rabbitmq-03.xxx:5672,表示访问rabbitmq的通信端口
rabbitmq-03.xxx:15672可以访问rabbitmq的管理界面
(注意:上述的访问只能在统一集群内访问)
3、配置ingresses(网关入口)
注意:
- 同一集群下,如果有第三方部署(如:Java应用程序)需要连接上述部署的rabbitmq(中间件),请直接使用集群内访问的域名(rabbitmq-03.xxx)!
- ingresses是给部署配置外部访问入口,使用于集群外访问的场景
3.1、进入ingresses
资源管理----网络管理----Ingresses
3.2、添加ingresses
注意:域名不能任意命名,这里必须与CCE的ingress域名对应,一般的
- 若ingress的本身域名为cce.shuizhu.com,那么自定义的域名只能为 xxx.cce.shuizhu.com,否则DNS无法解析
2、服务
映射URL | 服务名称 | 服务端口 |
---|---|---|
这是访问ingress后需要匹配的服务路径 填写/,表示服务的根路径 | 在【资源管理-网络管理-Services】找2.2中域名对应的服务名称 | 服务中映射的端口,提供给集群外访问的端口 如:rabbitmq需要提供15672(web管理界面)给外部访问 |
3.3、提交ingress
3.4、访问ingress
如:我填写的链接为:http://myrabbitmq.cce.shuizhu.com