docker单机安装Higress(踩坑+解决)

发布于:2024-04-25 ⋅ 阅读:(20) ⋅ 点赞:(0)

docker单机安装Higress(踩坑+解决)

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 显示帮助信息

解决配置成功无法访问的问题

image-20240423164728286

遇到了无法访问的问题;

  • 端口号正常监听

image-20240423164811208

  • 查看日志发现有错

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 容器

image-20240423165132509

解决

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

image-20240423174530450

仍然无法正常访问

卸载并重装docker后正常访问

image-20240423191927915

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

image-20240423202800259

解决

彻底卸载重新安装

  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

image-20240423203208771

image-20240423210305981

image-20240423213725855

参考

官网样例测试成功

image-20240423220125492

官网样例

不是哥们儿 你是真不稳定啊……弄的我docker有问题+MQ也起不起来了

感觉这样部署的话还是有问题,考虑把数据库迁移到linux里;

思考了一下还是觉得应该是官网推出的docker这个版本本身就是个测试版不稳定的原因


网站公告

今日签到

点亮在社区的每一天
去签到