马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有账号?立即注册
x
Hyperf编排部署
1、 Hyperf概述
只管现在基于PHP语言开发的框架处于一个百家争鸣的时代,但仍然未能看到一个优雅的计划与超高性能的共存的完善框架,亦没有看到一个真正为PHP微服务铺路的框架,此为Hyperf及其团队成员的初志。
Hyperf是一个高性能、高灵活性的渐进式PHP协程框架,内置协程服务器及大量常用的组件,性能较传统基于PHP-FPM的框架有质的提升,提供超高性能的同时,也保持着极其灵活的可扩展性,尺度组件均基于PSR尺度实现和强大的依赖注入计划,保证了绝大部门组件或类都是可替换与可复用的。
Hyperspeed + Flexibility = Hyperf,从名字上就可以看出超高速和灵活性是Hyperf的基因。对于超高速,Hyperf基于Swoole和Swow协程,并在框架计划上进行大量的优化以确保超高性能的输出。对于灵活性,Hyperf强大的依赖注入组件,组件均基于PSR尺度的左券和由Hyperf定义的左券实现,到达框架内的绝大部门的组件或类都是可替换的。
情况准备
登录后复制 - [root@k8s-master-node1 ~]# tar -zxvf Hyperf.tar.gz
- [root@k8s-master-node1 ~]# cd hyperf/
- [root@k8s-master-node1 hyperf]# docker load -i centos_7.9.2009.tar
- [root@k8s-master-node1 hyperf]# vim local.repo
- [yum]
- name=yum
- baseurl=file:///root/yum
- gpgcheck=0
- enabled=1
复制代码
- 1.
- 2.
- 3.
- 4.
- 5.
- 6.
- 7.
- 8.
- 9.
【标题 1】容器化 MariaDB 服务[1 分]
编写Dockerfile文件构建hyperf-mariadb:v1.0镜像,具体要求如下:(必要用到的软件包: Hyperf.tar.gz)
(1)基础镜像:centos:7.9.2009;
(2)完成 MariaDB 服务的安装;
(3)声明端口:3306;
(4)设置数据库 root 用户的密码为 root;
(5)将提供的数据库文件 hyperf_admin.sql 导入数据库;
(6)设置服务开机自启。
完成后构建镜像,并提交 master 节点的用户名、密码和 IP 地址到答题框。
登录后复制 - [root@k8s-master-node1 hyperf]# vim Dockerfile-mariadb
- FROM centos:7.9.2009
- RUN rm -rf /etc/yum.repos.d/*
- ADD local.repo /etc/yum.repos.d/
- ADD yum /root/yum
- RUN yum install mariadb mariadb-server -y
- COPY sql/hyperf_admin.sql /opt
- RUN mysql_install_db --user=root
- RUN mysqld_safe --user=root & sleep 8;\
- mysqladmin -uroot password root ;\
- mysql -uroot -proot -e "grant all privileges on*.*to 'root'@'%' identified by 'root';";\
- mysql -uroot -proot -e "source /opt/hyperf_admin.sql;"
- EXPOSE 3306
- CMD ["mysqld_safe","--user=root"]
- [root@k8s-master-node1 hyperf]# docker build -t hyperf-mariadb:v1.0 -f Dockerfile-mariadb .
复制代码
- 1.
- 2.
- 3.
- 4.
- 5.
- 6.
- 7.
- 8.
- 9.
- 10.
- 11.
- 12.
- 13.
- 14.
- 15.
- 16.
- 17.
【标题 2】容器化 Redis 服务[1 分]
编写 Dockerfile 文件构建 hyperf-redis:v1.0 镜像,具体要求如下:
(必要用到的软件包: Hyperf.tar.gz)
(1)基础镜像:centos:7.9.2009;
(2)安装 Redis 服务;
(3)关闭保护模式;
(4)声明端口:6379;
(5)设置服务开机自启。
完成后构建镜像,并提交 master 节点的用户名、密码和 IP 地址到答题框。
登录后复制 - [root@k8s-master-node1 hyperf]# vim Dockerfile-redis
- FROM centos:7.9.2009
- RUN rm -rf /etc/yum.repos.d/*
- ADD local.repo /etc/yum.repos.d/
- ADD yum /root/yum
- RUN yum install redis -y
- RUN sed -i 's/127.0.0.1/0.0.0.0/g' /etc/redis.conf
- RUN sed -i 's/-mode yes/-mode no/g' /etc/redis.conf
- EXPOSE 6379
- CMD ["/usr/bin/redis-server","/etc/redis.conf"]
- [root@k8s-master-node1 hyperf]# docker build -t hyperf-redis:v1.0 -f Dockerfile-redis .
复制代码
- 1.
- 2.
- 3.
- 4.
- 5.
- 6.
- 7.
- 8.
- 9.
- 10.
- 11.
- 12.
【标题 3】容器化 Nginx 服务[0.5 分]
编写 Dockerfile 文件构建 hyperf-nginx:v1.0 镜像,具体要求如下:
(必要用到的软件包: Hyperf.tar.gz)
(1)基础镜像:centos:7.9.2009;
(2)安装 nginx 服务;
(3)声明端口:80;
(4)设置服务开机自启。
完成后构建镜像,并提交 master 节点的用户名、密码和 IP 地址到答题框。
登录后复制 - [root@k8s-master-node1 hyperf]# vim Dockerfile-nginx
- FROM centos:7.9.2009
- RUN rm -rf /etc/yum.repos.d/*
- ADD local.repo /etc/yum.repos.d/
- ADD yum /root/yum
- RUN yum install nginx -y
- EXPOSE 80
- CMD ["nginx","-g","daemon off;"]
- [root@k8s-master-node1 hyperf]# docker build -t hyperf-nginx:v1.0 -f Dockerfile-nginx .
复制代码
- 1.
- 2.
- 3.
- 4.
- 5.
- 6.
- 7.
- 8.
- 9.
- 10.
【标题 4】容器化 Hyperf 服务[1 分]
编写 Dockerfile 文件构建 hyperf-service:v1.0 镜像,具体要求如下:(必要用到的软件包:
Hyperf.tar.gz)
(1)基础镜像:centos:7.9.2009;
(2)安装 PHP 及扩展;
(3)使用源码编译安装 Swoole。
完成后构建镜像,并提交 master 节点的用户名、密码和 IP 地址到答题框。
登录后复制 - [root@k8s-master-node1 hyperf]# vim Dockerfile-service
- FROM centos:7.9.2009
- RUN rm -rf /etc/yum.repos.d/*
- ADD local.repo /etc/yum.repos.d/
- ADD yum /root/yum
- RUN yum install git autoconf gcc gcc-c++ unzip which tzdara php-* yum-utils dpkg-devel -y
- ADD swoole-v4.8.3.zip /tmp
- RUN cd /tmp && unzip swoole-v4.8.3.zip && mv swoole-v4.8.3 swoole
- RUN cd /tmp/swoole && phpize && ./configure --enable-openssl --enable-http2 --enable-mysqlnd && make -s -j$(nproc) && make install
- RUN echo "extension=swoole.so" >> /etc/php.d/20-swoole.ini
- [root@k8s-master-node1 hyperf]# docker build -t hyperf-service:v1.0 -f Dockerfile-service .
复制代码
- 1.
- 2.
- 3.
- 4.
- 5.
- 6.
- 7.
- 8.
- 9.
- 10.
- 11.
- 12.
- 13.
- 14.
【标题 5】编排部署 Hyperf 框架[3.5 分]
编写/root/hyperf/project/docker-compose.yaml 文件,具体要求如下:
(1)容器 1 名称:hyperf-mysql;镜像:hyperf-mariadb:v1.0;端口映射:3306:3306;
(2)容器 2 名称:hyperf-redis;镜像:hyperf-redis:v1.0;
(3)容器 3 名称:hyperf-ui;镜像:hyperf-nginx:v1.0;端口映射:80:8081;
(4)容器 4 名称:hyperf-service;镜像:hyperf-service:v1.0。
完成后编排部署 Hyperf 框架,并提交 master 节点的用户名、密码和 IP 地址到答题框。
登录后复制 - [root@k8s-master-node1 project]# vi docker-compose.yaml
- version: '3'
- services:
- app:
- container_name: hyperf-service
- image: hyperf-service:v1.0
- restart: always
- command: "sleep 2h"
- hyperf-mysql:
- container_name: hyperf-mysql
- image: hyperf-mariadb:v1.0
- restart: always
- ports:
- - 3306:3306
- hyperf-redis:
- container_name: hyperf-redis
- image: hyperf-redis:v1.0
- restart: always
- hyperf-ui:
- container_name: hyperf-ui
- image: hyperf-nginx:v1.0
- restart: always
- ports:
- - "8081:80"
- volumes:
- - /root/hyperf/project/docker/conf.d:/etc/nginx/conf.d
- - /root/hyperf/project/frontend:/var/www/frontend
- [root@k8s-master-node1 project]# docker-compose up -d
- [root@k8s-master-node1 project]# docker-compose ps
- Name Command State Ports
- ------------------------------------------------------------------------------------------------
- hyperf-mysql mysqld_safe --user=root Up 0.0.0.0:3306->3306/tcp,:::3306->3306/tcp
- hyperf-redis redis-server /etc/redis.conf Up 6379/tcp
- hyperf-service sleep 2h Up
- hyperf-ui nginx -g daemon off; Up 0.0.0.0:8081->80/tcp,:::8081->80/tcp
复制代码
- 1.
- 2.
- 3.
- 4.
- 5.
- 6.
- 7.
- 8.
- 9.
- 10.
- 11.
- 12.
- 13.
- 14.
- 15.
- 16.
- 17.
- 18.
- 19.
- 20.
- 21.
- 22.
- 23.
- 24.
- 25.
- 26.
- 27.
- 28.
- 29.
- 30.
- 31.
- 32.
- 33.
- 34.
- 35.
登录 (账号/密码) daodao/a1a1a1)
本文由博客一文多发平台 OpenWrite 发布!
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。 |