系统部署流程

使⽤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. 在Django中显示MySQL语句

    在setting中添加以下内容 LOGGING = { 'version': 1, 'disable_existing_loggers': False, 'handlers': { 'console' ...

  2. pat乙级 1018 锤子 剪刀 布

    #include<stdio.h> #include<stdlib.h> #include<string.h> #include<math.h> int ...

  3. Linux开发C++

    首先在windows上安装linux系统. VM简介 VMware Workstation中文版是一个"虚拟 PC"软件.它使你可以在一台机器上同时运行二个或更多 Windows. ...

  4. Unix时间戳转化成普通日期

    var time = 1630634462000; //13位数 var unixTimestamp = new Date(time); var commonTime = unixTimestamp. ...

  5. mysql数据库新建用户,并赋予权限

    新建用户: CREATE USER 'testuser'@'LOCALHOST' IDENTIFIED BY '123456'; 赋予权限: grant select on *.* to 'testu ...

  6. 新的学习历程-python5 输入输出基础

    1 uname=input("please input username:") 2 print("welcome",uname) #print各项间默认以空格作 ...

  7. ORACLE 遇到ORA-31693 ORA-31617 ORA-19505 ORA-27037

    今天发现生产的RAC环境expdp计划任务出现报错 之前一度认为是备份目录权限的问题 官方文档: MOS参考文档:DataPump Export (EXPDP) Fails With Errors O ...

  8. thymeleaf checkbox的回显

    最近用到了一些thymeleaf 的界面,有写问题一并写出来,如果这篇文章能给你带来帮助不胜荣幸,如果有问题,也请予以批评和改正 第一就是涉及到复选框的一个回显:例如我是单个复选框的是否选中 在< ...

  9. nvm安装及使用(windon/mac)

    有必要说一下nvm,因为大家做前端对node都很熟悉吧.前端的很多项目中都依赖node,还有可能每个项目依赖的node版本不一样,这样我们就上了nvm. nvm 是node Version Manag ...

  10. 对Frobenius 范数的理解

    Frobenius 范数是一种矩阵范数,记为 ∣ ∣ ⋅ ∣ ∣ F ||·||_F ∣∣⋅∣∣F​,定义为一个矩阵所有元素平方和的开方,即 ∣ ∣ X ∣ ∣ F = ∑ i ∑ j x i , j ...