腾讯云Centos9使用docker的方式安装APISIX
- 在虚拟机中安装Docker、Docker-compose
- 安装Docker
- 清除旧版本的docker
- 安装Docker
yum remove docker docker-client docker-client-latest docker-common docker-latest docker-latest-logrotate docker-logrotate docker-engine
-
-
- 安装docker的依赖
-
yum install -y yum-utils device-mapper-persistent-data lvm2
1.1.3 安装gcc
yum install -y gcc gcc-c++
-
-
- 添加软件源国内镜像
-
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页面
5、防火墙
5.1 虚拟机防火墙
5.2 腾讯云服务器防火墙
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。 如若内容造成侵权/违法违规/事实不符,请联系我的编程经验分享网邮箱:veading@qq.com进行投诉反馈,一经查实,立即删除!