7-3 k8s 示例-部署 Wordpress

本文详述了如何在 Kubernetes 上部署 Wordpress,包括设置 Namespace、StorageClass、Persistent Volume Claim (PVC)、ConfigMap、Deployment 和 Service。同时,文章还介绍了配置数据库(MySQL 和 ProxySQL)以及 Wordpress 的步骤,以确保应用程序的正常运行。
摘要由CSDN通过智能技术生成

更新时间:2023年4月

简介

Wordpress 是一个博客系统,程序使用 PHP 语言,并以 MySQL 为数据库。本文将在 kubernetes 上部署 Wordpress 系统,实现 一个简单的 PHP 应用程序部署示例(Nginx–PHP–ProxySQL–MySQL)

注:数据库将使用之前创建的 MySQL 数据库

参考

Wordpress 官网:Blog Tool, Publishing Platform, and CMS – WordPress.org

Wordpress 下载地址:Release Archive – WordPress.org

部署 Wordpress

Namespace

$ vim ns-wordpress.yaml
---
apiVersion: v1                                                        
kind: Namespace
metadata:
  name: wordpress

应用声明

$ kubectl apply -f ns-wordpress.yaml

StorageClass

$ vim sc-nfs.yaml
---
apiVersion: storage.k8s.io/v1
kind: StorageClass
metadata:
  name: sc-nfs
provisioner: k8s-sigs.io/nfs-subdir-external-provisioner 
# 回收策略此处使用 删除,实验环境方便测试
reclaimPolicy: Delete
mountOptions: 
  - soft
  - nfsvers=4.2
  - noatime     # 访问文件时不更新文件 inode 中的时间戳,高并发环境可提高性能
parameters:
  # 根据 PVC 的namespace 和 PVC 名称来生成路径
  pathPattern: "${.PVC.namespace}/${.PVC.name}"
  archiveOnDelete: "true"  

应用声明

$ kubectl apply -f sc-nfs.yaml

PVC

$ vim pvc-wordpress.yaml
---
kind: PersistentVolumeClaim
apiVersion: v1
metadata:
  name: pvc-wordpress
  namespace: wordpress
spec:
  storageClassName: sc-nfs
  accessModes:
    - ReadWriteMany # 访问权限
  resources:
    requests:
      storage: 100Mi # 空间大小

应用声明

$ kubectl apply -f pvc-wordpress.yaml

ConfigMap

创建 Nginx 配置

创建配置存放目录

$ mkdir -p ./nginx-config

创建 Nginx 主配置文件 nginx.conf ,后续将通过 ConfigMap 挂载到容器中/etc/nginx/nginx.conf

$ vim ./nginx-config/nginx.conf
user  nginx;
worker_processes  auto;

error_log  /var/log/nginx/error.log notice;
pid        /var/run/nginx.pid;


events {
   
    worker_connections  1024;
}

http {
   
    include       /etc/nginx/mime.types;
    default_type  application/octet-stream;

    log_format access_json escape=json '{'
        '"@timestamp":"$time_iso8601",'
        '"server_addr":"$server_addr",'
        '"remote_addr":"$remote_addr",'
        '"body_bytes_sent":"$body_bytes_sent",'
        '"request_time":"$request_time",'
        '"upstream_response_time":"$upstream_response_time",'
        '"upstream_addr":"$upstream_addr",'
        '"uri":"$uri",'
        '"http_x_forwarded_for":"$http_x_forwarded_for",'
        '"http_referer":"$http_referer",'
        '"proxy_protocol_addr":"$proxy_protocol_addr",'
        '"http_user_agent":"$http_user_agent",'
        '"status":"$status"'
    '}';

    access_log  /var/log/nginx/access.log  access_json;

    # 隐藏版本号
    server_tokens          off;
    
    # 网络相关设置
    tcp_nopush              on;
    tcp_nodelay             on;
    
    keepalive_timeout       65;
    
    # 客户端上传的 body 的最大值
    client_max_body_size   10m;
    
    
  • 0
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值