博客 / 詳情

返回

k8s下php定時任務接入阿里雲SchedulerX

背景

php上阿里雲ack(k8s)後,想保留原來定時任務,但是又需要保持單點運行,所以考慮使用阿里雲SchedulerX來方便管理。
官方文檔如下:
image.png
雖然官方文檔顯示可以用Sidecar方式接入,但是實際並非進入到目標容器執行,僅能執行http請求到目標容器。

實現

使用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
user avatar
0 位用戶收藏了這個故事!

發佈 評論

Some HTML is okay.