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

2024-01-08 10:50:04
  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 腾讯云服务器防火墙

文章来源:https://blog.csdn.net/qingcyb/article/details/135385320
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。