ZBLOG

k8s 部署swoole服务

在 Kubernetes 中部署 Swoole 服务需要以下步骤:

  1. 编写 Dockerfile
FROM php:7.4-cli-alpine

# 安装依赖
RUN apk add --no-cache $PHPIZE_DEPS \
    && pecl install swoole \
    && docker-php-ext-enable swoole

# 复制代码到容器中
COPY . /app

# 设置工作目录
WORKDIR /app

# 启动命令
CMD ["php", "server.php"]
  1. 构建 Docker 镜像并上传到镜像仓库
docker build -t <image-name>:<tag> .
docker push <image-name>:<tag>
  1. 创建 Kubernetes deployment 和 service
apiVersion: apps/v1
kind: Deployment
metadata:
  name: swoole-server-deployment
spec:
  replicas: 1 # 副本数为1,可以根据实际情况进行调整
  selector:
    matchLabels:
      app: swoole-server # 标签选择器,用于选择对应的 pod
  template:
    metadata:
      labels:
        app: swoole-server # pod 的标签,与选择器匹配
    spec:
      containers:
        - name: php-swoole-server # 容器名称,自定义即可 
          image: <image-name>:<tag> # 镜像地址和版本号 
          ports:
            - containerPort: 9501 # 容器暴露端口号 
---
apiVersion: v1
kind: Service
metadata:
  name: swoole-server-service 
spec:
  selector:
    app: swoole-server # 标签选择器,选择对应的 pod 
  ports:
    - protocol: TCP
      port: 9501 # 服务暴露端口号 
      targetPort: 9501 # 目标容器端口号
  1. 应用配置文件
<?php

$host = getenv('SWOOLE_HOST') ?: '0.0.0.0';
$port = getenv('SWOOLE_PORT') ?: '9501';

$serv = new Swoole\Server($host, $port);

$serv->on('connect', function ($serv, $fd) {
    echo "Client {$fd} connected.\n";
});

$serv->on('receive', function ($serv, $fd, $from_id, $data) {
    $serv->send($fd, 'Hello World!');
});

$serv->on('close', function ($serv, $fd) {
    echo "Client {$fd} closed.\n";
});

echo "Swoole server started at http://{$host}:{$port}\n";

$serv->start();
  1. 部署应用
kubectl apply -f deployment.yaml
  1. 查看部署状态
kubectl get pods
kubectl get services
  1. 访问服务

通过 Service 的 IP 和端口访问服务即可。

参考资料:

本站部分文章来源于网络,版权归原作者所有,如有侵权请联系站长删除。
转载请注明出处:https://golang.0voice.com/?id=5957

分享:
扫描分享到社交APP
上一篇
下一篇
发表列表
游客 游客
此处应有掌声~
评论列表

还没有评论,快来说点什么吧~

联系我们

在线咨询: 点击这里给我发消息

微信号:3007537140

上班时间: 10:30-22:30

关注我们
x

注册

已经有帐号?