系统部署流程

使⽤kubernetes部署wordpress+MySQL, 并利⽤NFS去保存我们容器的源代码以及DB数据。搭建好nfs后任意node上的Pod访问db或者业务代码都会有相同的效果,数据只存储一份。
步骤:
  • 所有节点搭建nfs⽂件系统
  • 创建PersistentVolumeClaims(PVC)和PersistentVolume(PV)
  • 创建service
  • 创建Secret(注⼊MySql密码等)
  • 创建confifigMap(初始化数据库)
  • 部署MySQL容器组(Deployment)
  • 部署WordPress容器组(Deployment)
在K8S上部署⼀个WordPress和MySQL应⽤,其中WordPress和MySQL都使⽤PersistentVolume 和 PersistentVolumeClaim 存储数据。
PersistentVolume 是集群中可⽤的⼀⽚存储空间,通常由集群管理员⼿⼯提供,或者由Kubernetes 使⽤ StorageClass ⾃动提供。
PersistentVolumeClaim 代表了⽤户(应⽤程序)对存储空间的需求,此需求可由PersistentVolume 满⾜。
PersistentVolume 和 PersistentVolumeClaim 都是独⽴于 Pod 的⽣命周期,可⽤于在Pod 重启、重新调度、甚⾄删除之后保存数据。⼀句话表示PersistentVolume 和PersistentVolumeClaim 就是,我有多少,你要多少
 

nfs文件系统搭建

安装nfs并设置开机启动

#集群所有节点上执行nfs文件系统的安装和启动
[root@k8s-01 ~]# yum install nfs-utils -y
[root@k8s-01 ~]# systemctl enable nfs-server && systemctl start nfs-server
#启动完成后查看nfs启动状态
[root@k8s-01 ~]# systemctl status nfs-server
● nfs-server.service - NFS server and services
Loaded: loaded (/usr/lib/systemd/system/nfs-server.service; enabled; vendor preset: disabled)
Drop-In: /run/systemd/generator/nfs-server.service.d
└─order-with-mounts.conf
Active: active (exited) since Mon 2021-10-04 17:51:47 CST; 16h ago
Process: 1399 ExecStartPost=/bin/sh -c if systemctl -q is-active gssproxy; then systemctl reload gssproxy ; fi (code=exited, status=0/SUCCESS)
Process: 1378 ExecStart=/usr/sbin/rpc.nfsd $RPCNFSDARGS (code=exited, status=0/SUCCESS)
Process: 1375 ExecStartPre=/usr/sbin/exportfs -r (code=exited, status=0/SUCCESS)
Main PID: 1378 (code=exited, status=0/SUCCESS)
Tasks: 0
Memory: 0B
CGroup: /system.slice/nfs-server.service Oct 04 17:51:47 k8s-01 systemd[1]: Starting NFS server and services...
Oct 04 17:51:47 k8s-01 systemd[1]: Started NFS server and services.

master节点创建nfs挂载点

#创建/home/nfstest测试路径,测试nfs文件系统
[root@k8s-01 home]# mkdir nfstest
#修改/home/nfstest路径权限
#no_subtree_check不检查其父目录的权限,rw表示权限 读写,sync表示同步写入,no_root_squash表示worknode以root访问时赋予本地root权限
[root@k8s-01 home]# chown nfsnobody:nfsnobody /home/nfstest
[root@k8s-01 home]# echo -e "/home/nfstest *(rw,sync,no_subtree_check,no_root_squash)" > /etc/exports
#应用配置
[root@k8s-01 home]# exportfs -a

work node进行nfs挂载验证

#worknode上创建本地挂载点
[root@k8s-02 ~]# mkdir /home/nfstest
#将worknode本地挂载点与master上的nfs挂载点映射
[root@k8s-02 ~]# mount -t nfs 192.168.188.131:/home/nfstest /home/nfstest
#本地挂载点修改属主信息
[root@k8s-02 ~]# chown nfsnobody:nfsnobody /home/nfstest
#检查挂载是否成功
[root@k8s-02 ~]# df -h|grep /home/nfstest
192.168.188.131:/home/nfstest 16G 7.2G 8.9G 45% /home/nfstest #master节点上创建文件
[root@k8s-01 nfstest]# echo "test nfs on k8s-01 master" >> nfstest.file
[root@k8s-01 nfstest]# cat nfstest.file
test nfs on k8s-01 master
#worknode上对应挂载点查看此文件
[root@k8s-02 ~]# cat /home/nfstest/nfstest.file
test nfs on k8s-01 master

配置mysql和wordpress的nfs文件系统

#master节点创建nfs文件主目录以及相关设置
[root@k8s-01 ~]# mkdir -p /kube/mysql-db
[root@k8s-01 ~]# mkdir -p /kube/wordpress
[root@k8s-01 ~]# chown nfsnobody:nfsnobody /kube/mysql-db
[root@k8s-01 ~]# chown nfsnobody:nfsnobody /kube/wordpress
[root@k8s-01 ~]# vim /etc/exports
/kube/wordpress *(rw,sync,no_subtree_check,no_root_squash)
/kube/mysql-db *(rw,sync,no_subtree_check,no_root_squash)
[root@k8s-01 ~]# exportfs -a #worknode上创建挂载点,作相应设置,并通过nfs将挂载点挂载到master对应的目录上,k8s-01是master节点的主机名
[root@k8s-02 ~]# mkdir -p /kube/mysql-db
You have new mail in /var/spool/mail/root
[root@k8s-02 ~]# mkdir -p /kube/wordpress
[root@k8s-02 ~]# chown nfsnobody:nfsnobody /kube/mysql-db
[root@k8s-02 ~]# chown nfsnobody:nfsnobody /kube/wordpress
[root@k8s-02 ~]# mount -t nfs k8s-01:/kube/wordpress /kube/wordpress
[root@k8s-02 ~]# mount -t nfs k8s-01:/kube/mysql-db /kube/mysql-db [root@k8s-02 ~]# df -h|grep k8s-01
k8s-01:/kube/wordpress 16G 6.0G 11G 38% /kube/wordpress
k8s-01:/kube/mysql-db 16G 6.0G 11G 38% /kube/mysql-db
 

k8s_使用k8s部署wordpress博客系统(一)的更多相关文章

  1. 使用docker部署WordPress博客系统(win10企业版)

    docker介绍: docker 是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的容器中,然后发布到任何流行的Linux机器上,也可以实现虚拟化,容器是完全使用沙箱机制,相 ...

  2. 使用阿里云 ECS 快速部署 WordPress 博客系统

    今天在 阿里云 ECS上 部署了一套 Lamp 系统,建了一个WordPress的网站,把操作过程记录下来,文中所列脚本可以直接应用. 废话不多说直接开动,ECS云服务购买可以点击 阿里云ECS 云主 ...

  3. Centos 7使用docker部署LAMP搭建wordpress博客系统

    0.简要概述 LAMP是目前比较流行的web框架,即Linux+Apache+Mysql+PHP的网站架构方案.docker是目前非常流行的虚拟化应用容器,可以为任何应用创建一个轻量级.可移植的容器. ...

  4. Docker 方式部署 Solo 博客系统总结

      此篇为Docker部署方式,另有Tomcat部署方式,请参考文章<Tomcat 方式部署 Solo 博客系统总结>   最近搭建了一个博客系统,作为自己的主页,方便记录一些平时所见所闻 ...

  5. Tomcat 方式部署 Solo 博客系统总结

      此篇为Tomcat部署方式,另有Docker部署方式,请参考文章<Docker 方式部署 Solo 博客系统总结> 一.环境和文件准备 服务器:购买的阿里云服务器,系统为Linux(C ...

  6. 巨杉Tech | 十分钟快速搭建 Wordpress 博客系统

    介绍 很多互联网应用程序开发人员第一个接触到的网站项目就是博客系统.而全球使用最广的Wordpress常常被用户用来快速搭建个人博客网站.默认情况下,Wordpress一般在后台使用MySQL关系型数 ...

  7. 在centOS上搭建wordpress博客系统

    一.主要内容 1.安装LAMP服务器系统(Linux.Apache.MySQL.PHP ); 2.安装wordpress: 二.具体步骤 一.LAMP环境设置 1.安装LAMP系统,在centOS上可 ...

  8. WordPress博客系统搜索引擎优化seo全攻略方法

    WordPress的文章.评论等很多数据都是存放在数据库的,所以搭建wordpress网站的时间,网站的空间不需要多大,而数据库一定要充足,而在WordPress数据库中主要使用 wp_posts 表 ...

  9. docker部署LAMP架构并部署上线wordpress博客系统

    第一步:直接在镜像仓库拉取LAMP镜像 [root@ken-node3 ken]# docker pull tutum/lamp 第二步:查看已经获取到的镜像 [root@ken-node3 ken] ...

  10. 搭建LNMP环境部署Wordpress博客

    !!!首先要做的就是关闭系统的防火墙以及selinux: #systemctl stop firewalld #systemctl disable firewalld #sed -ri 's/^(SE ...

随机推荐

  1. Docker工作管理中实用操作

                              "build once ,run anywhere"                                       ...

  2. MyBatis-Plus通用Iservice 方法详解

    public interface IService<T> { /** * 默认批次提交数量 */ int DEFAULT_BATCH_SIZE = 1000; /** * 插入一条记录(选 ...

  3. C#获取各种当前日期时间

    我们可以通过使用DataTime这个类来获取当前的时间.通过调用类中的各种方法我们可以获取不同的时间:如:日期(2008-09-04).时间(12:12:12).日期+时间(2008-09-04 12 ...

  4. 爬小说_BeautifulSoup解析_easy

    title: 爬小说_BeautifulSoup解析_easy author: 杨晓东 permalink: 爬小说_BeautifulSoup解析_easy date: 2021-10-02 11: ...

  5. Python基础语法复习笔记(一):字符串

    python基础复习笔记 个人主页:JoJo的数据分析历险记 个人介绍:小编大四统计在读,目前保研到统计学top3高校继续攻读统计研究生 如果文章对你有帮助,欢迎关注.点赞.收藏.订阅专栏 本专栏主要 ...

  6. maven上传jar包或pom文件到远程仓库

    一. 步骤 有时候,项目中打好的jar包或pom文件需要上传到远程仓库,步骤总结如下: 安装好maven,网上有很多教程,默认已安装 工程中的settings.xml增加相应的server账号密码: ...

  7. 页面导出为PDF

    一.使用环境 Vue3.Quasar.Electron 二.安装 jspdf-html2canvas npm install jspdf-html2canvas --save 安装失败可以选择cnpm ...

  8. linux下启动jar包

    一.jdk 1.安装jdk 2.查看 摘自:(29条消息) Linux如何查看JDK的安装路径_fanyuna的博客-CSDN博客_linux查看jdk安装位置 1:echo $JAVA_HOME 使 ...

  9. 安全测试-WEB安全渗透测试基础知识(二)

    1.2. 计算机网络 1.2.1. 计算机通信网的组成 计算机网络由通信子网和资源子网组成. 其中通信子网负责数据的无差错和有序传递,其处理功能包括差错控制.流量控制.路由选择.网络互连等. 其中资源 ...

  10. 02 python初识

    Python初识 一.入门基础 1. 第一个Python程序 python 代码都是编写在以 .py 结尾的文件中.我们随便新建一个文件,并将文件后缀名改为 .py,在里面编写我们的第一个 pytho ...