zoukankan      html  css  js  c++  java
  • APISIX系列 | 使用 docker-apisix 安装APISIX服务

    官方仓库:https://github.com/iresty/docker-apisix

    官方仓库

    拉取

    git clone git@github.com:iresty/docker-apisix.git

    安装 etcd 服务

    1、拉去etcd镜像

    docker pull bitnami/etcd:3.3.13-r80
    

    2、启动etcd服务器实例

    docker run -it --name etcd-server 
    -v /e/github/docker-apisix/example/etcd_conf/etcd.conf.yml:/opt/bitnami/etcd/conf/etcd.conf.yml 
    -p 2379:2379 
    -p 2380:2380  
    --env ALLOW_NONE_AUTHENTICATION=yes 
    -d bitnami/etcd:3.3.13-r80
    

     Windows 环境执行命令:

    docker run -it --name etcd-server -v /e/github/docker-apisix/example/etcd_conf/etcd.conf.yml:/opt/bitnami/etcd/conf/etcd.conf.yml -p 2379:2379 -p 2380:2380  --env ALLOW_NONE_AUTHENTICATION=yes -d bitnami/etcd:3.3.13-r80

    3、测试是否安装成功

    进入etcd实例

    docker exec -it etcd-server /bin/sh -c "[ -e /bin/bash ] && /bin/bash || /bin/sh"
    I have no name!@1d05cea9f08c:/opt/bitnami/etcd$

    测试

    $  etcdctl put key-test "Hi Tinywan!" // 设置
    OK
    I have no name!@1d05cea9f08c:/$  etcdctl get key-test // 获取
    key-test
    Hi Tinywan!
    I have no name!@1d05cea9f08c:/$  etcdctl del key-test // 删除
    1
    I have no name!@1d05cea9f08c:/$  etcdctl get key-test // 删除
    I have no name!@1d05cea9f08c:/$

    4、进入容器查看是否已经开启v2协议

    > docker exec -it etcd-server bash
    $ etcd --help |grep enable-v2
    usage: etcd [flags]
           start an etcd server
    
           etcd --version
           show the version of etcd
    
           etcd -h | --help
           show the help information about etcd
    
           etcd --config-file
           path to the server configuration file
    
           etcd gateway
           run the stateless pass-through etcd TCP connection forwarding proxy
    
           etcd grpc-proxy
           run the stateless etcd v3 gRPC L7 reverse proxy
    
            --enable-v2 'true'
            --experimental-enable-v2v3 ''
    

    --enable-v2 'true' 表示已经开启v2协议。

    原因:APISIX 目前仅支持 etcd 的 v2 协议存储,但最新版的 etcd (3.4 开始)已经默认关闭 v2 协议。 需要在启动参数中添加 --enable-v2=true,才能启用 v2 协议。  

    4、启动etcd客户端实例

    $ docker run -it --rm 
        --network app-tier 
        --env ALLOW_NONE_AUTHENTICATION=yes 
        bitnami/etcd:latest etcdctl --endpoints http://etcd-server:2379 set /message Hello

    Windows 环境

    docker run -it --rm --network app-tier --env ALLOW_NONE_AUTHENTICATION=yes bitnami/etcd:3.3.13-r80 etcdctl --endpoints http://etcd-server:2379 set /message Hello

    安装 apisix 服务

    使用官方镜像可能会超时,提示错误:request canceled (Client.Timeout exceeded while awaiting headers)

    1、拉去镜像

    docker pull registry.cn-beijing.aliyuncs.com/tinywan/apisix:alpine
    

    2、修改配置文件

    config.yaml

    etcd:
      host: "http://127.0.0.1:2379"   # etcd address

    修改为本机电脑的内网IP,windows 查看本地内网IP。打开命令行,输入 ipconfig

     修改后

    etcd:
      host: "http://192.168.1.3:2379"   # etcd address  

    2、运行服务

    > docker run  --name tinywan-api-gateway  
    -v /e/GitHub/docker-apisix/example/apisix_conf/config.yaml:/usr/local/apisix/conf/config.yaml 
    -v /e/GitHub/docker-apisix/example/apisix_log:/usr/local/apisix/logs  
    -p 8080:9080 
    -p 8083:9443 registry.cn-beijing.aliyuncs.com/tinywan/apisix:alpine
    

    这里挂在配置文件和日志目录都是使用的绝对路径

    windows 文件目录为

    E:GitHubdocker-apisix
    

     则挂在目录地址为

    /e/GitHub/docker-apisix

    3、查看服务是佛已经启动

    > docker ps
    CONTAINER ID        IMAGE                                                    COMMAND                  CREATED             STATUS                          PORTS                                            NAMES   
    7747e9a4bcd6        registry.cn-beijing.aliyuncs.com/tinywan/apisix:alpine   "sh -c '/usr/bin/api…"   14 seconds ago      Up 13 seconds                   0.0.0.0:8080->9080/tcp, 0.0.0.0:8083->9443/tcp   tinywan-api-gateway
    1d05cea9f08c        bitnami/etcd:3.3.13-r80                                  "/entrypoint.sh etcd"    29 minutes ago      Up 29 minutes                   0.0.0.0:2379-2380->2379-2380/tcp                 etcd-server

    控制台

    APISIX 内置了 dashboard,使用浏览器打开 http://127.0.0.1:8080/apisix/dashboard/ 即可使用, 不用填写用户名和密码,直接登录  

     直接点击登录

     恭喜你安装成功

  • 相关阅读:
    PostgreSQL远端访问
    PostgreSQL在线安装
    /usr/lib64改名字风波
    Provisional headers are shown(一)
    解析URL中的携带的参数到Map
    Mysql5.7的初始密码更改
    REST开放接口生成文档工具之apidoc
    自己来实现一套IOC注解框架
    RecyclerView打造通用的万能Adapter
    RecyclerView分隔线定制
  • 原文地址:https://www.cnblogs.com/tinywan/p/11730034.html
Copyright © 2011-2022 走看看