docker单机安装Higress(踩坑+解决)
Higress希望通过内置Waf模块,使得用户的请求链接只经过Higress就可以同时完成Waf防护、流量分发、微服务治理,既可以降低链路RT,也可以降低网关的运维复杂度。因此Higress实现了流量网关 + 微服务网关 + 安全网关三合一的高集成能力。
安装docker(更换镜像索引)
# 卸载Docker
yum remove docker \
docker-client \
docker-client-latest \
docker-common \
docker-latest \
docker-latest-logrotate \
docker-logrotate \
docker-selinux \
docker-engine-selinux \
docker-engine \
docker-ce
# 安装yum工具包
yum install -y yum-utils \
device-mapper-peyrsistent-data \
lvm2 --skip-broken
# 更新本地镜像源
# 设置docker镜像源
yum-config-manager \
--add-repo \
https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
sed -i 's/download.docker.com/mirrors.aliyun.com\/docker-ce/g' /etc/yum.repos.d/docker-ce.repo
# 将软件包信息提前在本地索引缓存,用来提高搜索安装软件的速度,建议执行这个命令可以提升yum安装的速度。
yum makecache fast
# 安装docker引擎
sudo yum install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin -y
# 启动docker
systemctl start docker
# 设置docker自启动
systemctl enable docker
# 测试docker是否安装成功
docker version
安装命令
curl -fsSL https://higress.io/standalone/get-higress.sh | bash -s -- [DESTINATION] [OPTIONS...]
curl -fsSL https://higress.io/standalone/get-higress.sh | bash -s -- -a -c nacos://192.168.66.100:8848
Standalone 模式没有大规模生产使用过,目前主要用于本地部署测试的场景,如果生产部署更建议云原生模式部署
安装参数
参数名 | 参数说明 | 默认值 |
---|---|---|
DESTINATION | 目标安装目录 | ./higress |
-a --auto-run | 配置完成后自动启动 Higress 网关 | 无 |
-c CONFIG_URL --config-url CONFIG_URL | 配置服务的 URL。 - 若使用独立部署的 Nacos 服务(版本不低于 2.0.0),URL 格式为:nacos://192.168.0.1:8848 - 若在本地磁盘上保存配置,URL 格式为:file://opt/higress/conf | 无 |
–use-builtin-nacos | 使用内置的 Nacos 服务。不建议用于生产环境。如果设置本参数,则无需设置-c 参数 | 无 |
–nacos-ns=NACOS_NAMESPACE | 用于保存 Higress 配置的 Nacos 命名空间 ID | higress-system |
–nacos-username=NACOS_USERNAME | 用于访问 Nacos 的用户名。仅用于 Nacos 启动了认证的情况下 | 无 |
–nacos-password=NACOS_PASSWORD | 用于访问 Nacos 的用户密码。仅用于 Nacos 启动了认证的情况下 | 无 |
-k KEY --data-enc-key=KEY | 用于加密敏感配置数据的密钥。长度必须为 32 个字符。若未设置,Higress 将自动生成一个随机的密钥。若需集群部署,此项必须设置 | 随机字符串 |
–nacos-port=NACOS_PORT | 内置 NACOS 服务在服务器本地监听的端口 | 8848 |
–gateway-http-port=GATEWAY_HTTP_PORT | Higress Gateway 在服务器本地监听的 HTTP 端口 | 80 |
–gateway-https-port=GATEWAY_HTTPS_PORT | Higress Gateway 在服务器本地监听的 HTTPS 端口 | 443 |
–gateway-metrics-port=GATEWAY_METRIC_PORT | Higress Gateway 在服务器本地监听的用于暴露运行指标端口 | 15020 |
–console-port=CONSOLE_PORT | Higress Console 在服务器本地监听的端口 | 8080 |
-r --rerun | 在 Higress 已配置完成后重新执行配置流程 | 无 |
-h --help | 显示帮助信息 | 无 |
解决配置成功无法访问的问题
遇到了无法访问的问题;
- 端口号正常监听
- 查看日志发现有错
docker logs higress-console-1
2024-04-15 09:45:47.655 ERROR 7 --- [ main] o.s.boot.SpringApplication : Application run failed
org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'SystemController': Invocation of init method failed; nested exception is com.alibaba.higress.sdk.exception.BusinessException: Error occurs when updating ConfigMap.
- 查看docker 容器
解决
去 /root/higress/bin/ 目录下 reset
仍然无法正常访问
卸载并重装docker后正常访问
配置域名后无法通过域名访问广告服务
解决
彻底卸载重新安装
-
删除所有容器:
docker rm $(docker ps -a -q) -f
这条命令会强制删除所有的Docker容器,无论其运行状态如何。
-
删除所有镜像:
docker rmi $(docker images -q) -f
这条命令会删除所有的Docker镜像。
3.删除与higress相关的文件
可以使用find
命令来搜索并删除这些文件:这条命令会在整个系统中搜索文件或文件夹名包含“higress”的所有项,并将其删除。
find / -name '*higress*' -exec rm -rf {} +
记住 cd 到 /usr/local 目录下 执行下面操作进行安装
curl -fsSL https://higress.io/standalone/get-higress.sh | bash -s -- -a -c nacos://192.168.66.100:8848
官网样例测试成功
不是哥们儿 你是真不稳定啊……弄的我docker有问题+MQ也起不起来了
感觉这样部署的话还是有问题,考虑把数据库迁移到linux里;
思考了一下还是觉得应该是官网推出的docker这个版本本身就是个测试版不稳定的原因