Higress on K8s 5分钟开箱即用

本文涉及的产品
可观测监控 Prometheus 版,每月50GB免费额度
注册配置 MSE Nacos/ZooKeeper,182元/月
任务调度 XXL-JOB 版免费试用,400 元额度,开发版规格
简介: 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 官网,了解更多相关信息

相关实践学习
深入解析Docker容器化技术
Docker是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的容器中,然后发布到任何流行的Linux机器上,也可以实现虚拟化,容器是完全使用沙箱机制,相互之间不会有任何接口。Docker是世界领先的软件容器平台。开发人员利用Docker可以消除协作编码时“在我的机器上可正常工作”的问题。运维人员利用Docker可以在隔离容器中并行运行和管理应用,获得更好的计算密度。企业利用Docker可以构建敏捷的软件交付管道,以更快的速度、更高的安全性和可靠的信誉为Linux和Windows Server应用发布新功能。 在本套课程中,我们将全面的讲解Docker技术栈,从环境安装到容器、镜像操作以及生产环境如何部署开发的微服务应用。本课程由黑马程序员提供。     相关的阿里云产品:容器服务 ACK 容器服务 Kubernetes 版(简称 ACK)提供高性能可伸缩的容器应用管理能力,支持企业级容器化应用的全生命周期管理。整合阿里云虚拟化、存储、网络和安全能力,打造云端最佳容器化应用运行环境。 了解产品详情: https://www.aliyun.com/product/kubernetes
相关文章
|
Kubernetes 容器
在Kubernetes(k8s)中部署Higress时,查看Wasm插件日志的方法如下
在Kubernetes(k8s)中部署Higress时,查看Wasm插件日志的方法如下
373 1
|
Kubernetes 流计算 容器
Flink on k8s的话,怎么在容器运行前初始化一些脚本?
Flink on k8s的话,怎么在容器运行前初始化一些脚本?
188 1
|
Kubernetes Java 流计算
Flink application on k8s 有没有和 session 模式通过-C 指定额外的 jar 的相同功能啊?
Flink application on k8s 有没有和 session 模式通过-C 指定额外的 jar 的相同功能啊?
188 0
GreenPlum on K8s
GreenPlum on K8s
321 0
|
弹性计算 资源调度 Kubernetes
Flink三种集群模式,Standalone模式,Flink On YARN,Flink On K8S,这三种模式有啥优缺点,生产环境如何选择呢?
Flink三种集群模式,Standalone模式,Flink On YARN,Flink On K8S,这三种模式有啥优缺点,生产环境如何选择呢?
1905 3
|
Kubernetes 固态存储 容器
pulsar on k8s
pulsar on k8s
|
存储 Kubernetes Apache
pulsar on k8s 部署验证
pulsar on k8s 部署验证
|
分布式计算 Kubernetes Java
spark on k8s native
spark on k8s native
|
Kubernetes 容器
在Kubernetes(k8s)中部署Higress
在Kubernetes(k8s)中部署Higress
342 2
|
Kubernetes 监控 NoSQL
Gitlab on k8s最佳实践
Gitlab on k8s最佳实践
870 1

相关产品

  • 容器服务Kubernetes版
  • 推荐镜像

    更多