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

  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 腾讯云服务器防火墙

相关推荐
吴声子夜歌2 小时前
Kubernetes权威指南——深入掌握Service(一)
云原生·容器·kubernetes
Z21-X3 小时前
云原生运维学习笔记:容器技术的演进、底层原理与 Docker 全生命周期管理
运维·笔记·学习·云原生
阿里云云原生18 小时前
HiRoute 新版本发布:结合自己的真实工作选择最佳模型
云原生
对象存储与RustFS21 小时前
Velero 接 RustFS 实操:K8s 集群备份落到自建对象存储
后端·docker·云原生
.冰块.1 天前
流量大了自动加 Pod!K8s HPA 扩缩容与 ResourceQuota/LimitRange 资源管控实战
linux·云原生·容器·kubernetes·hpa·quota·limitrange
Z21-X1 天前
云原生运维实战笔记:企业网站综合上云部署与云运维服务全景解析
运维·笔记·学习·云原生
qq_452396231 天前
第三篇:《从 ZooKeeper 到 KRaft 的迁移实战:前置条件、三阶段流程与回滚策略》
分布式·zookeeper·云原生
分布式存储与RustFS1 天前
Longhorn 的卷备份别堆本地盘:用 RustFS 给它当 S3 备份目标
运维·云原生·开源·对象存储·分布式存储·s3·性能基准
DolitD2 天前
UE像素流与云渲染技术方案对比分析
3d·云原生·ue5·云计算·图形渲染
这个DBA有点耶2 天前
云数据库半夜卡顿,CPU才30%?深挖云盘IOPS突发限制与内核挂起机制
数据库·mysql·云原生