对于部署在容器服务Kubernetes版ACK(Container Service for Kubernetes)中的Java应用,您可以使用应用高可用服务AHAS(Application
High Availability Service)来对系统进行高可用防护,实现服务间限流、降级、应用系统保护等操作,保障应用24小时高可用。
背景信息
AHAS是一款阿里云应用高可用服务相关产品。只要为部署在ACK中的Java应用安装AHAS应用防护组件后,您无需修改任何代码,就能借助AHAS对Java应用进行全方位系统防护,针对性的对系统进行流量管控、服务降级等操作。更多信息,请参见什么是应用防护。
步骤一:安装AHAS应用防护组件
- 登录容器服务管理控制台。
- 在控制台左侧导航栏中,选择。
- 在应用市场页面单击应用目录页签,然后搜索并选中ack-ahas-sentinel-pilot。
- 在ack-ahas-sentinel-pilot页面,单击一键部署。
- 在创建面板中,选择集群和命名空间,然后单击下一步。
- 在参数配置页面,设置相应参数,然后单击确定。
步骤二:为Java应用开启AHAS
- 在容器服务管理控制台左侧导航栏单击集群。
- 在集群列表页面中,单击目标集群名称或者目标集群右侧操作列下的详情。
- 在集群管理页左侧导航栏中,选择。
- 为Java应用开启AHAS。
以下步骤分别对应创建新应用和已有应用这两种情况:
- 如需在创建新应用的同时开启AHAS应用防护,请按以下步骤操作。
- 单击右上角的使用YAML创建资源。
- 选择示例模板,并在模板中将以下
annotations
添加到spec>template>metadata
层级下。annotations:
#是否开启AHAS应用防护插件,on、true表示开启,off、false表示关闭。
ahasPilotAutoEnable: "on"
#AHAS应用名。
ahasAppName: "<your-deployment-name>"
#AHAS license。公网环境需配置AHAS license,VPC环境无需配置,AHAS license可以在AHAS控制台>应用防护>新应用接入中获取。
#ahasLicense: "<your-license>"
完整YAML示例模板如下:
apiVersion: apps/v1
kind: Deployment
metadata:
name: agent-foo
labels:
name: agent-foo
spec:
replicas: 1
selector:
matchLabels:
name: agent-foo
template:
metadata:
labels:
name: agent-foo
annotations:
ahasPilotAutoEnable: "on"
ahasAppName: "K8sFooTest"
ahasNamespace: "default"
spec:
containers:
- name: foo
image: registry.cn-hangzhou.aliyuncs.com/sentinel-docker-repo/foo:0.1.1
imagePullPolicy: Always
- 如需为现有应用开启AHAS应用防护,请按以下步骤操作。
- 选择无状态或有状态,然后在目标应用右侧操作列中选择。
- 在编辑YAML对话框中将以下
annotations
添加到spec>template>metadata
层级下,并单击更新。annotations:
ahasPilotAutoEnable: "on"
ahasAppName: "<your-deployment-name>"
#ahas namespace, 默认default
#ahasNamespace: "default"
#ahas license, 公网需要
#ahasLicense: "<your-license>"
说明 请将<your-deployment-name>
替换为您的应用名称。
以下表格介绍了YAML中部分配置项和默认值。
参数 |
描述 |
默认值 |
image.imageTag |
Pilot镜像Tag。 |
0.1.1 |
image.imagePullPolicy |
镜像拉取策略,必须是Always、IfNotPresent、Never三者中的一个。 |
Always |
controller.logLevel |
Pilot日志级别,1表示INFO,2表示DEBBUG。 |
1 |
controller.region_id |
目标集群所在的region,如cn-hangzhou、cn-beijing、cn-shenzhen、cn-shanghai,如果是公网,则填写为cn-public。 |
cn-hangzhou |
后续步骤
完成上述步骤后,您就为部署在ACK中的应用开启了AHAS服务。在无状态或有状态页面,单击目标应用操作列的应用流控,进入AHAS控制台,为应用设置流量防护规则。
参考文档
为应用设置流量防护规则的具体步骤,请参见以下文档: