在Centos Stream 9中使用docker的方式安装APISIX、APISIX-DASHBOARD

1、在虚拟机中安装Docker、Docker-compose

1.1、安装Docker

1.1.1、清除旧版本的docker

yum remove docker docker-client docker-client-latest docker-common docker-latest docker-latest-logrotate docker-logrotate docker-engine

1.1.2、安装docker的依赖

yum install -y yum-utils device-mapper-persistent-data lvm2

1.1.3、安装gcc

yum install -y gcc gcc-c++

1.1.4、添加软件源国内镜像

yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo

1.1.5、更新yum索引

yum makecache

1.1.6、安装docker-ce

yum install docker-ce docker-ce-cli containerd.io

1.1.7、启动docker,并设置开机启动

-- 启动docker
systemctl start docker
-- 设置docker开机启动
systemctl enable docker

1.1.8、验证docker的安装是否成功

docker version

1.2、安装Docker-compose

1.2.1、docker和docker-compose的兼容性

1.2.2、下载docker-compose的二进制文件

        方式一:

curl -L https://github.com/docker/compose/releases/download/v2.21.0/docker-compose-'uname -s'-'uname -m' -o /usr/local/bin/docker-compose

        方式二(推荐):

                直接在github上下载,将其迁移到/usr/local/bin目录下,并授予读写权限。

                url:https://github.com/docker/compose/releases

chmod -R 777 /usr/local/bin/docker-compose

注意:此处尽可能选择在github上获取,国内的地址后期出现问题的几率较大,一次不成功多试几次。

1.2.3、验证docker-compose的安装是否成功

docker compose version

2、安装apisix

2.1、下载 apisix-docker仓库

git clone https://github.com/apache/apisix-docker.git

2.2、进入拉取的目录中

cd apisix-docker/example

2.3、修改docker-compose文件的内容

#
# Licensed to the Apache Software Foundation (ASF) under one or more
# contributor license agreements.  See the NOTICE file distributed with
# this work for additional information regarding copyright ownership.
# The ASF licenses this file to You under the Apache License, Version 2.0
# (the "License"); you may not use this file except in compliance with
# the License.  You may obtain a copy of the License at
#
#     http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
#

version: "3"

services:
  apisix:
    image: apache/apisix:${APISIX_IMAGE_TAG:-3.7.0-debian}
    restart: always
    volumes:
      - ./apisix_conf/config.yaml:/usr/local/apisix/conf/config.yaml:ro
    depends_on:
      - etcd
    ##network_mode: host
    ports:
      - "9180:9180/tcp"
      - "9080:9080/tcp"
      - "9091:9091/tcp"
      - "9443:9443/tcp"
      - "9092:9092/tcp"
    networks:
      apisix:

  etcd:
    image: bitnami/etcd:3.4.15
    restart: always
    volumes:
      - etcd_data:/bitnami/etcd
    environment:
      ETCD_ENABLE_V2: "true"
      ALLOW_NONE_AUTHENTICATION: "yes"
      ETCD_ADVERTISE_CLIENT_URLS: "http://yourip:2379"
      ETCD_LISTEN_CLIENT_URLS: "http://0.0.0.0:2379"
    ports:
      - "2379:2379/tcp"
    networks:
      apisix:

  web1:
    image: nginx:1.19.0-alpine
    restart: always
    volumes:
      - ./upstream/web1.conf:/etc/nginx/nginx.conf
    ports:
      - "9081:80/tcp"
    environment:
      - NGINX_PORT=80
    networks:
      apisix:

  web2:
    image: nginx:1.19.0-alpine
    restart: always
    volumes:
      - ./upstream/web2.conf:/etc/nginx/nginx.conf
    ports:
      - "9082:80/tcp"
    environment:
      - NGINX_PORT=80
    networks:
      apisix:

  prometheus:
    image: prom/prometheus:v2.25.0
    restart: always
    volumes:
      - ./prometheus_conf/prometheus.yml:/etc/prometheus/prometheus.yml
    ports:
      - "9090:9090"
    networks:
      apisix:

  grafana:
    image: grafana/grafana:7.3.7
    restart: always
    ports:
      - "3000:3000"
    volumes:
      - "./grafana_conf/provisioning:/etc/grafana/provisioning"
      - "./grafana_conf/dashboards:/var/lib/grafana/dashboards"
      - "./grafana_conf/config/grafana.ini:/etc/grafana/grafana.ini"
    networks:
      apisix:

networks:
  apisix:
    driver: bridge

volumes:
  etcd_data:
    driver: local

该文件中主要修改下图中的位置

2.4、使用docker-compose启用 APISIX

docker-compose -p docker-apisix up -d

2.5、查看apisix安装的情况

docker ps -a

此处关注的点是观察全部容器是否为up状态。

3、安装apisix-dashboard

3.1、拉取apisix-dashboard镜像

docker pull apache/apisix-dashboard

3.2、添加dashboard的配置文件在/root路径下,conf.yaml

conf:
  listen:
    host: 0.0.0.0   # the address on which the `Manager API` should listen.
                    # The default value is 0.0.0.0, if want to specify, please enable it.
                    # This value accepts IPv4, IPv6, and hostname.
    port: 9000      # The port on which the `Manager API` should listen.

  allow_list:       # If we don't set any IP list, then any IP access is allowed by default.
  etcd:
    endpoints:      # supports defining multiple etcd host addresses for an etcd cluster
      - yourip:2379 # etcd install ip
authentication:
  secret:
    zQ5w5jkLDh3jZpywJ3sskrw6Yv633ruq
  expire_time: 3600     # jwt token expire time, in second
  users:                # yamllint enable rule:comments-indentation
    - username: admin       # dashboard login infomation
      password: password
    - username: user
      password: password

3.3、启动容器

docker run -d --name dashboard -p 9000:9000 -v <CONFIG_FILE>:/usr/local/apisix-dashboard/conf/conf.yaml apache/apisix-dashboard

-d:在后台运行
--name:设置镜像名称
-p:端口号
-v:配置信息的挂载

3.4、查看容器启动情况

4、测试

4.1、访问http://yourip:9000,可以访问到dashboard的页面,账号密码在conf.yaml文件中

4.2、访问http://yourip:3000,可以访问到grafana的页面,账号密码均为admin,需要输入两次

4.3、访问http://yourip:9090,可以访问到prometheus页面

至此apisix和apisix-dashboard安装完成。

  • 16
    点赞
  • 25
    收藏
    觉得还不错? 一键收藏
  • 4
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值