k8s下php定时任务接入阿里云SchedulerX
背景
php上阿里云ack(k8s)后,想保留原来定时任务,但是又需要保持单点运行,所以考虑使用阿里云SchedulerX来方便管理。
官方文档如下:
文章图片
虽然官方文档显示可以用Sidecar方式接入,但是实际并非进入到目标容器执行,仅能执行http请求到目标容器。
实现
【k8s下php定时任务接入阿里云SchedulerX】使用agent方式接入,直接打包入php镜像,缺点就是需要java运行环境,镜像会很大并且占用运行内存。建议有定时任务需求才使用此镜像。
链接地址:https://help.aliyun.com/document_detail/149969.html
然后在Deployment配置文件上增加env
# spec > template > spec > containers
- name: php-fpm
env:
- name: "SCHEDULERX_ENDPOINT"
value: "${SCHEDULERX_ENDPOINT}"
- name: "SCHEDULERX_NAMESPACE"
value: "${SCHEDULERX_NAMESPACE}"
- name: "SCHEDULERX_GROUPID"
value: "${SCHEDULERX_GROUPID}"
- name: "SCHEDULERX_APPKEY"
value: "${SCHEDULERX_APPKEY}"
- name: "SCHEDULERX_STARTER_MODE"
value: "sidecar"
部分dockerfile php5.6-fpm
FROM php:5.6-fpm# SchedulerX Agent
RUN mkdir -p /usr/share/man/man1 \
&& apt-get install -y openjdk-8-jdk wget \
&& cd /opt \
&& wget https://schedulerx2.oss-cn-hangzhou.aliyuncs.com/agent/schedulerxAgent-1.4.2.tar.gz \
&& tar -xf schedulerxAgent-1.4.2.tar.gz \
&& rm schedulerxAgent-1.4.2.tar.gz \
&& mkdir -p /root/logs/schedulerx \
&& sed -i '45c \ \ \ \ \ \ \ \ sed -i "4c appKey=${SCHEDULERX_APPKEY}" ${WORKER_CONF_DIR}/agent.properties' /opt/schedulerxAgent/bin/start-200m.sh
php7.4-fpm
FROM php7.4-fpm# SchedulerX Agent
RUN apt-get install -y openjdk-11-jdk wget \
&& cd /opt \
&& wget https://schedulerx2.oss-cn-hangzhou.aliyuncs.com/agent/schedulerxAgent-1.4.2.tar.gz \
&& tar -xf schedulerxAgent-1.4.2.tar.gz \
&& rm schedulerxAgent-1.4.2.tar.gz \
&& mkdir -p /root/logs/schedulerx \
&& sed -i '45c \ \ \ \ \ \ \ \ sed -i "4c appKey=${SCHEDULERX_APPKEY}" ${WORKER_CONF_DIR}/agent.properties' /opt/schedulerxAgent/bin/start-200m.sh
推荐阅读
- Linux下的tar压缩解压缩命令详解
- Yii功能简要介绍
- 万物皆可盘,一起来盘点一下那些最实用的(前五)智能家居单品
- 投稿|全面商业化的刘畊宏,要做下一个李子柒
- audio与video控件/标签的隐藏,iso/Android下自动全屏播放,短暂黑屏问题
- 汽车|锂业股价持续下跌 | 5月9日汽车产业链企业上市公司(部分)股价日报
- 钛极客|迭代屏下摄像头,定制三主摄,中兴Axon 40 Ultra正式发布
- 投稿|榜单下架、PK惩罚消失,直播平台不再躺赚
- Android Dagger2.0 学习一下
- Django --- Django下载和APP创建ORM (大概步骤)