docker

关注公众号 jb51net

关闭
首页 > 网站技巧 > 服务器 > 云和虚拟化 > docker > docker单机安装Higress

docker单机安装Higress的踩坑及解决方式

作者:靴子学长

本文详细介绍了如何在Docker单机上安装Higress,并分享了在安装过程中遇到的问题及解决方法,Higress是一个集成了流量网关、微服务网关和安全网关的高集成网关,在安装过程中,作者遇到了无法访问的问题,并通过卸载和重装Docker及相关文件解决了问题

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 命名空间 IDhigress-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_PORTHigress Gateway 在服务器本地监听的 HTTP 端口80
–gateway-https-port=GATEWAY_HTTPS_PORTHigress Gateway 在服务器本地监听的 HTTPS 端口443
–gateway-metrics-port=GATEWAY_METRIC_PORTHigress Gateway 在服务器本地监听的用于暴露运行指标端口15020
–console-port=CONSOLE_PORTHigress 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.

解决

去 /root/higress/bin/ 目录下 reset

仍然无法正常访问

卸载并重装docker后正常访问

配置域名后无法通过域名访问广告服务

解决

彻底卸载重新安装

1.删除所有容器:

docker rm $(docker ps -a -q) -f

这条命令会强制删除所有的Docker容器,无论其运行状态如何。

2.删除所有镜像:

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这个版本本身就是个测试版不稳定的原因

总结

以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。

您可能感兴趣的文章:
阅读全文