Higress on K8s 5分钟开箱即用

本文涉及的产品
服务治理 MSE Sentinel/OpenSergo,Agent数量 不受限
可观测可视化 Grafana 版,10个用户账号 1个月
简介: Higress on K8s 5分钟开箱即用

作者:澄潭


Higress 简介


Higress 是云原生网关的提出者和定义者,实现了 K8s 的 Ingress API 标准,历经阿里双十一洪峰考验,对比 Ingress Nginx 具备以下优势:

image.png

5 分钟开箱即用


Step 0. 配置 ACK &准备应用

若 ACK 上没有安装其他 Ingress Provider,直接按后续步骤安装 Higress 即可。若 ACK 上已经安装了 Nginx Ingress 等 Ingress Provider,希望迁移到 Higress,请注意 Higress 默认只会监听 IngressClassName 为 higress 的 Ingress。可以通过 helm 参数设置 --set global.ingressClass="",这样 Higress 会监听所有 Ingress,从而实现平滑迁移。

image.png

ACK Ingress Provider 还可以选择 MSE Ingress,这是 Higress 的商业托管版,无需自己运维 Higress,提供 SLA 保障。可以在阿里云搜索“云原生网关”了解详情

首先安装一个 wordpress 应用,用于后续 Higress 的路由测试,可以直接在 ACK 应用市场安装:image.png

创建成功后,为这个 wordpress-ack-wordpress-sample workload 创建一个虚拟集群 IP 类型的 service

image.png

Step 1. 安装 Higress (2 分钟)

可以使用 ACK 控制台的 CloudShell 直接完成 Higress 的安装

image.png

安装命令:

# 添加Higress的官方helm仓库
helm repo add higress.io https://higress.io/helm-charts
# 安装Higress
helm install higress higress.io/higress -n higress-system --create-namespace
# 安装Higress Console
helm install higress-console higress.io/higress-console -n higress-system

安装完成后可以执行 kubectl get ing -n higress-system,看到已经有一个 higress-console Ingress 资源存在,这是 Higress UI 控制台的访问入口,ADDRESS 字段即 Higress 的公网访问 IP,可以修改本机 Hosts 文件,将 console.higress.io 解析至这个 ip,这样就可以用浏览器直接访问 http://console.higress.io

image.png

Higress 控制台目前处于 0.0.2 版本,正式生产可用版本将在3月份推出,当前版本尚未提供登陆认证功能,请勿用于生产,以免引入安全隐患

首先在 Higress 控制台创建一个 wordpress.higress.io 的域名

image.png

接着创建一条前缀匹配根路径的路由转发给 wordpress 应用

image.png

通过编辑本机 Hosts 文件,将 wordpress.higress.io 也解析到 Higress 的公网入口 IP,可以看到 wordpress 已经可以访问了

image.png

Step 2. 配置 ARMS 监控(2 分钟)

Higress 的指标支持多种方式对外暴露,这里以 Prometheus 为例,基于阿里云 ARMS Prometheus 实现监控大盘开箱即用。首先输入 ACK 名称,找到对应的 Prometheus 实例:

image.png

打开服务发现配置中 kubernetes-pods 的开关,支持从 pod annotation 中解析指标暴露地址

image.png

然后点击 grafana 工作区链接,跳转到 grafana 控制台

image.png

再 Dashboards 中点击 Import 导入 Higress 监控大盘的 Json 文件:

https://higress.io/grafana/dashboard.json

image.png

这样就可以看到 Higress 的监控大盘啦,撒花🎉

image.png

Step 3. 开启插件,WAF 防护为例(1 分钟)

Higress 除了支持很方便地开发自定义插件,也原生提供了多种开箱即用的插件:https://github.com/alibaba/higress/tree/main/plugins

这里以 WAF 插件(基于 corazawaf 开源的 Wasm 插件)为例,可以执行以下命令直接生效:


kubectl apply -f https://higress.io/samples/waf.yaml

这里的配置是开启了全部的 OWASP CRS 规则

image.png

试试在 wordpress 中提交一个模拟 SQL 注入的评论

image.png

请求被识别为 SQL 注入,Higress 返回了 403image.png

因为这个 Wasm 插件实现了指标上报,在 Higress 大盘可以看到被拦截的阶段和命中拦截的规则ID

image.png

Higress 的日志中可以看到具体拦截原因

image.png

Higress 开源社区


欢迎加入 Higress 社区群,及时了解 Higress 动向:

image.png

点击此处访问 Higress 官网,了解更多相关信息

相关实践学习
容器服务Serverless版ACK Serverless 快速入门:在线魔方应用部署和监控
通过本实验,您将了解到容器服务Serverless版ACK Serverless 的基本产品能力,即可以实现快速部署一个在线魔方应用,并借助阿里云容器服务成熟的产品生态,实现在线应用的企业级监控,提升应用稳定性。
云原生实践公开课
课程大纲 开篇:如何学习并实践云原生技术 基础篇: 5 步上手 Kubernetes 进阶篇:生产环境下的 K8s 实践 相关的阿里云产品:容器服务 ACK 容器服务 Kubernetes 版(简称 ACK)提供高性能可伸缩的容器应用管理能力,支持企业级容器化应用的全生命周期管理。整合阿里云虚拟化、存储、网络和安全能力,打造云端最佳容器化应用运行环境。 了解产品详情: https://www.aliyun.com/product/kubernetes
相关文章
|
4月前
|
Kubernetes Java 流计算
Flink application on k8s 有没有和 session 模式通过-C 指定额外的 jar 的相同功能啊?
Flink application on k8s 有没有和 session 模式通过-C 指定额外的 jar 的相同功能啊?
30 0
|
6月前
|
Kubernetes 流计算 容器
Flink on k8s的话,怎么在容器运行前初始化一些脚本?
Flink on k8s的话,怎么在容器运行前初始化一些脚本?
47 1
|
4月前
|
弹性计算 资源调度 Kubernetes
Flink三种集群模式,Standalone模式,Flink On YARN,Flink On K8S,这三种模式有啥优缺点,生产环境如何选择呢?
Flink三种集群模式,Standalone模式,Flink On YARN,Flink On K8S,这三种模式有啥优缺点,生产环境如何选择呢?
237 3
|
9月前
GreenPlum on K8s
GreenPlum on K8s
139 0
|
3月前
|
Kubernetes 固态存储 容器
pulsar on k8s
pulsar on k8s
|
3月前
|
存储 Kubernetes Apache
pulsar on k8s 部署验证
pulsar on k8s 部署验证
|
6月前
|
SQL 分布式计算 Kubernetes
Hadoop on K8s 编排部署进阶篇
Hadoop on K8s 编排部署进阶篇
Hadoop on K8s 编排部署进阶篇
|
3月前
|
分布式计算 Kubernetes Java
spark on k8s native
spark on k8s native
|
4月前
|
Kubernetes 容器
在Kubernetes(k8s)中部署Higress
在Kubernetes(k8s)中部署Higress
105 2
|
9月前
|
Kubernetes 监控 NoSQL
Gitlab on k8s最佳实践
Gitlab on k8s最佳实践
490 1

热门文章

最新文章

相关产品

  • 容器服务Kubernetes版