系统部署流程

使⽤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. struct device_node *

    struct device_node *test_node; test_node->name name出不来 struct device_node *test_device_node; test ...

  2. channel 死锁

    死锁: - 单个协程永久阻塞 - 两个或两个以上的协程执行过程中,由于竞争资源或由于彼此通信而造成的一种阻塞的现象. channel 死锁场景: - 非缓存channel只写不读 - 非缓存chann ...

  3. 钉钉h5开发流程

    1.先在钉钉开发者后台 https://login.dingtalk.com/oauth2/challenge.htm?redirect_uri=https%3A%2F%2Fopen-dev.ding ...

  4. leetcode 30. 串联所有单词的子串 【时间击败 90.28%】 【内存击败 97.44%】

    这道题让我从早做到晚-3--- 设len=words[0].length(). 一开始我按照words的顺序扩大区间,发现这样就依赖words的顺序.之后改成遍历s的所有长度为len*words.le ...

  5. virtualenv指定使用本地某个版本python

    virtualenv -p D:\env\py37_1\Scripts\python3.exe time01 红色的地方是 你本地python解释器的安装路径,后面黄色部分是创建的虚拟环境的名称. 另 ...

  6. python 获取近几周日期

    import datetimedef get_Next_day(count): today = datetime.datetime.today().date() for i in range(coun ...

  7. 软件测试肖sir__多线程、多进程、多协程

    Python并发编程有三种方式: 1.多线程Thread(threading)(读音:思来d,丁).多进程Process(multiprocessing).多协程Coroutine(asyncio) ...

  8. mysql主从故障跳过错误

    mysql主从故障跳过错误1.从库报错 21,22,23,25无法执行Retrieved_Gtid_Set: 265c6c2a-86ca-11ed-b07a-0242ac120002:1-25Exec ...

  9. MNIST数据集output with shape [1, 28, 28] doesn't match the broadcast shape [3, 28, 28]

    transform = transforms.Compose([ transforms.ToTensor(), transforms.Lambda(lambda x: x.repeat(3,1,1)) ...

  10. 如何使用新版bing(支持ChatGPT)

    就在今天,2023年2月8日,微软正式将ChatGPT引入Bing 搜索引擎迎来新时代 如何体验支持ChatGPT的新版bing? 一.重要说明 请自备TiZi 本文以PC端为例 目前,新版 Bing ...