当前位置: 代码网 > 移动>腾讯>腾讯游戏 > 腾讯云Centos9使用docker的方式安装APISIX

腾讯云Centos9使用docker的方式安装APISIX

2024年08月02日 腾讯游戏 我要评论
# username: "root" #如果没开启授权,可以注掉。## password: "root" #如果没开启授权,可以注掉。43.139.54.145是腾讯云外网ip。,账号密码为conf.yaml文件中的。10.0.12.9是腾讯云内网ip。,账号密码均为admin。修改etcd的IP地址。
  1. 在虚拟机中安装docker、docker-compose
    1. 安装docker
      1. 清除旧版本的docker

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

      1. 安装docker的依赖

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

1.1.3 安装gcc

yum install -y gcc gcc-c++

      1. 添加软件源国内镜像

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,并设置开机启动

systemctl start docker

systemctl enable docker

1.1.8 验证docker的安装是否成功

docker version

1.2 安装docker-compose

1.2.1下载docker-compose的二进制文件

1.2.1.1 查询虚拟机内核名和计算机硬件架构

1.2.1.2 下载地址

https://github.com/docker/compose/releases/tag/v2.21.0

1.2.1.3 将其迁移到/usr/local/bin目录下,并授予读写权限

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

1.2.1.4 验证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.yml文件内容

# 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://43.139.54.145: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

修改etcd的ip地址

43.139.54.145是腾讯云外网ip

2.4 使用docker-compose启用 apisix

```

docker-compose -p docker-apisix up -d

2.5 查看apisix安装的情况

docker ps -a

3、安装apisix-dashboard

3.1 拉取apisix-dashboard镜像

docker pull apache/apisix-dashboard

3.2、在/root路径下,添加dashboard的配置文件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

      - 10.0.12.9:2379

  ## username: "root"  #如果没开启授权,可以注掉

  ## password: "root" #如果没开启授权,可以注掉

authentication:

  secret:

    zq5w5jkldh3jzpywj3sskrw6yv633ruq

  expire_time: 3600     # jwt token expire time, in second

  users:                # yamllint enable rule:comments-indentation

    - username: admin

      password: password

    - username: user

      password: password

10.0.12.9是腾讯云内网ip

3.3 启动容器

cd /root

docker run -it -p 9000:9000 -v ./conf.yaml:/usr/local/apisix-dashboard/conf/conf.yaml apache/apisix-dashboard

3.4 查看容器启动情况

docker ps -a

4、测试

4.1 访问dashboard页面

访问地址:http://43.139.54.145:9000,账号密码为conf.yaml文件中的

4.2 访问到grafana的页面

grafana,账号密码均为admin

4.3 访问prometheus页面

http://43.139.54.145:9090

5、防火墙

5.1 虚拟机防火墙

5.2 腾讯云服务器防火墙

(0)

相关文章:

版权声明:本文内容由互联网用户贡献,该文观点仅代表作者本人。本站仅提供信息存储服务,不拥有所有权,不承担相关法律责任。 如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 2386932994@qq.com 举报,一经查实将立刻删除。

发表评论

验证码:
Copyright © 2017-2025  代码网 保留所有权利. 粤ICP备2024248653号
站长QQ:2386932994 | 联系邮箱:2386932994@qq.com