当前位置: 首页 > news >正文

基于 Kubernetes 的 WordPress 网站部署(使用 ConfigMap)

在当今的云计算时代,容器化和编排技术已经成为现代应用部署的标准。Kubernetes作为容器编排领域的佼佼者,以其强大的功能和灵活性受到了广泛的关注和应用。本文将为您详细讲解如何使用Kubernetes部署一个完整的WordPress网站,后端数据库采用MySQL,帮助您掌握这一热门技术。

一.实验目的

1.使用 Kubernetes 的 ConfigMap 管理应用配置。

2.部署 MariaDB 数据库、WordPress 应用及 Nginx 反向代理。

3.实现配置与镜像分离,验证动态配置加载。

二.实验内容

1.实验环境

Kubernetes 集群:

Master 节点:

10.1.1.151

Node1 节点:

10.1.1.152

Node2 节点:

10.1.1.153

工具:kubectl、docker、nginx

拓扑图

2.实验步骤

2.1 创建 MariaDB 的 ConfigMap

# maria-cm.yaml

apiVersion: v1

kind: ConfigMap

metadata:

  name: maria-cm

data:

  DATABASE: "db"

  USER: "wp"

  PASSWORD: "123"

  ROOT_PASSWORD: "123"

应用配置
kubectl apply -f maria-cm.yaml

2.2 创建 WordPress 的 ConfigMap

查看services IP:

apiVersion: v1

kind: ConfigMap

metadata:

  name: wp-cm

data:

  HOST: '10.244.1.66'     # 这个IP一定要与mariadb数据库绑定

  USER: 'wp'

  PASSWORD: '123'

  NAME: 'db'

应用配置:
kubectl apply -f wp-cm.yaml

2.3 创建 MariaDB Deployment

# maria-deploy.yaml

apiVersion: apps/v1

kind: Deployment

metadata:

  name: maria

  labels:

    app: wordpress

    role: database

spec:

  selector:

    matchLabels:

      app: wordpress

      role: database

  replicas: 1

  template:

    metadata:

      labels:

        app: wordpress

        role: database

    spec:

      containers:

      - name: maria

        image: mariadb:10

        ports:

        - containerPort: 3306

        envFrom:        # 批量导入cm变量

        - prefix: 'MARIADB_'

          configMapRef:

            name: maria-cm

应用配置:kubectl apply -f maria-deploy.yaml

查看环境变量:

2.4创建 WordPress Deployment

apiVersion: apps/v1

kind: Deployment

metadata:

  name: wordpress

  labels:

    app: wordpress

    role: web

spec:

  replicas: 3

  selector:

    matchLabels:

      app: wordpress

      role: web

  template:

    metadata:

      labels:

        app: wordpress

        role: web

    spec:

      containers:

      - image: wordpress:5

        name: wordpress

        imagePullPolicy: IfNotPresent

        ports:

        - containerPort: 80

        envFrom:

        - prefix: 'WORDPRESS_DB_'

          configMapRef:

            name: wp-cm

应用配置:kubectl apply -f wp-deploy.yaml

2.5 创建Nginx配置文件

server {

  listen 80;

  default_type text/html;

  location / {

      proxy_http_version 1.1;

      proxy_set_header Host $host;

      proxy_pass http://127.0.0.1:8080;

  }

}

启动nginx容器

三.实验结果

1.Pod状态&&服务状态

2.验证访问

访问 WordPress:

浏览器输入 http://10.1.1.151:30088(通过 Nginx 代理)。

初始化 WordPress:

根据提示完成数据库配置,使用以下参数:

数据库名:db

用户名:123456

密码:123456

数据库主机:maria(Kubernetes Service 名称)。

四.实验结论

ConfigMap 的作用:成功将数据库配置与镜像解耦,支持动态更新。

服务发现:通过 Kubernetes Service 名称 maria 实现数据库连接,避免硬编码 IP。

扩展性:WordPress 通过 Deployment 实现了多副本部署,Nginx 反向代理提供统一入口。

http://www.dtcms.com/a/342392.html

相关文章:

  • Spring两个核心IoCDI(一)
  • javaweb开发笔记—— 前端工程化
  • 当安全遇上资源瓶颈:轻量级加密为何成为 IoT 时代的刚需?
  • 基于 FPGA 的电磁超声脉冲压缩检测系统
  • 家里Windows,公司Linux?通过cpolar,WSL开发环境无缝切换
  • Python数据可视化利器:Matplotlib从入门到实战全解析
  • 今天我们继续学习计算机网络技术,Cisco软件,三层交换机以及RIP动态协议
  • 从零开始:JDK 在 Windows、macOS 和 Linux 上的下载、安装与环境变量配置
  • DeepSeek R2难产:近期 DeepSeek-V3.1 发布,迈向 Agent 时代的第一步
  • 《杠杆》电视剧分析学习
  • 【python与生活】如何从视频中提取关键帧?
  • JAVA-15 (2025.08.20学习记录)
  • 数据库面试常见问题
  • 【OpenGL】LearnOpenGL学习笔记13 - 深度测试、模板测试
  • 05 ODS层(Operation Data Store)
  • LeetCode算法日记 - Day 18: 只出现一次的数字、只出现一次的数字III
  • 通信工程学习:什么是Template Matching模版匹配
  • iOS 文件管理全景实战 多工具协同提升开发与调试效率
  • Python笔记 第三方库之Pandas的数据组合与缺失数据处理篇
  • 通信工程学习:什么是Camera Calibration相机标定
  • 1000qps怎么保证系统的高可用
  • abc Reachable Set
  • 基于Nodejs作为服务端,React作为前端框架,axios作为通讯框架,实现滑块验证
  • C++ 学习与 CLion 使用:(四)常量和变量,包括字面常量和符号常量
  • 计算机视觉--opencv(代码详细教程)(三)--图像形态学
  • 【框架篇二】FastAPI路由与请求处理
  • javaweb开发笔记——微头条项目开发
  • 零性能妥协:Gearbox Entertainment 通过 AWS 和 Perforce 实现远程开发革命
  • AWS EC2 实例优化检测工具:完整指南与实践
  • WSL的Ubuntu如何改名字