wordpress mysql port_Kubernetes
这部分我们结合之前的k8s知识点给大家展示如何使用kubernetes部署wordpress+MySQL, 并利用NFS去保存我们容器的源代码以及DB数据.
安装环境
System: CentOS 7.4
Kubernetes: Kubernetes1.9
Docker: 17.03.2-ce
kube-master 10.110.16.10
kube-node-1 10.110.16.11
一. NFS配置:
1. NFS依赖包安装
在Master与Node分别安装NFS组件
# yum install nfs-utils -y
Tip: 这里需保证nfs-utils安装到所有master和node中, 否则容器挂载NFS时会报错.
2. 为Master下mysql data和wordpress源码配置NFS共享目录
# systemctl enable nfs-server &&systemctl start nfs-server
# mkdir -p /kube/mysql-db
# mkdir -p /kube/wordpress
# chown nfsnobody:nfsnobody /kube/mysql-db
# chown nfsnobody:nfsnobody /kube/wordpress
# chmod 755 /kube/mysql-db
# chmod 755 /kube/wordpress
# echo -e "/kube/mysql-db kube-*(rw,sync,no_subtree_check,no_root_squash)" > /etc/exports
# echo -e "/kube/wordpress kube-*(rw,sync,no_subtree_check,no_root_squash)" >> /etc/exports
Tip: 这里kube-*限制只有kube相关的server才能连接Master下NFS共享目录,no_root_squash参数保证wordpress-mysqlpod在初始化mysql配置的时候向在其下挂载的/var/lib/mysql目录有写入权限
3.应用配置
# exportfs -a
二.Persistent volume配置
1.为mysql data与wordpress源码存储创建Persistent volume
# kubectl create -f mysql-pv.yaml
apiVersion: v1
kind: PersistentVolume
metadata:
name: mysql-pv
labels:
app: mysql
spec:
capacity:
storage: 5Gi
accessModes:
- ReadWriteOnce
persistentVolumeReclaimPolicy: Recycle
nfs:
path: /kube/mysql-db
server: kube-master
# kubectl create -f wordpress-pv.yaml
apiVersion: v1
kind: PersistentVolume
metadata:
name: wp-pv
labels:
app: wordpress
spec:
capacity:
storage: 5Gi
accessModes:
- ReadWriteOnce
persistentVolumeReclaimPolicy: Recycle
nfs:
path: /kube/wordpress
server: kube-master
2.创建存放mysql data的PVC
# kubectl create -f mysql-pvc.yaml
kind: PersistentVolumeClaim
apiVersion: v1
metadata:
name: mysql-pv-claim
labels:
app: mysql
spec:
accessModes:
- ReadWriteOnce
resources:
requests:
storage: 2Gi
3.创建存放wordpress源码的PVC
# kubectl create -f wordpress-pvc.yaml
kind: PersistentVolumeClaim
apiVersion: v1
metadata:
name: wp-pv-claim
labels:
app: wordpress
spec:
accessModes:
- ReadWriteOnce
resources:
requests:
storage: 2Gi
查看绑定
# kubectl get pvc
NAME STATUS VOLUME CAPACITY ACCESS MODES STORAGECLASS AGE
mysql-pv-claim Bound mysql-pv 5Gi RWO 3m
wp-pv-claim Bound wp-pv 5Gi RWO 6s
三. Secret配置
1.创建mysql root password
# kubectl create secret generic mysql-pass --from-literal='password=countonme'
四. Deployment配置
1.部署mysql deployment with PVC
# kubectl create -f mysql-deployment.yaml
apiVersion: apps/v1
kind: Deployment
metadata:
name: wordpress-mysql
labels:
app: wordpress
spec:
selector:
matchLabels:
app: wordpress
tier: mysql
strategy:
type: Recreate
template:
metadata:
labels:
app: wordpress
tier: mysql
spec:
containers:
- image: mysql:5.6
name: mysql
env:
- name: MYSQL_ROOT_PASSWORD
valueFrom:
secretKeyRef:
name: mysql-pass
key: password
ports:
- containerPort: 3306
name: mysql
volumeMounts:
- name: mysql-persistent-storage
mountPath: /var/lib/mysql
volumes:
- name: mysql-persistent-storage
persistentVolumeClaim:
claimName: mysql-pv-claim
2.部署wordpress deployment with PVC
# kubectl create -f wordpress-deployment.yaml
apiVersion: apps/v1
kind: Deployment
metadata:
name: wordpress
labels:
app: wordpress
spec:
selector:
matchLabels:
app: wordpress
tier: frontend
strategy:
type: Recreate
template:
metadata:
labels:
app: wordpress
tier: frontend
spec:
containers:
- image: wordpress:4.8-apache
name: wordpress
env:
- name: WORDPRESS_DB_HOST
value: wordpress-mysql
- name: WORDPRESS_DB_PASSWORD
valueFrom:
secretKeyRef:
name: mysql-pass
key: password
ports:
- containerPort: 80
name: wordpress
volumeMounts:
- name: wordpress-persistent-storage
mountPath: /var/www/html
volumes:
- name: wordpress-persistent-storage
persistentVolumeClaim:
claimName: wp-pv-claim
3.Service配置
Tip: 这里我们开启了node IP的80端口的外部访问权限, 可以方便我们直接利用主机去访问虚拟机任意Node地址从而登录我们的Wordpress网站.
# kubectl create -f wp-svc.yaml
apiVersion: v1
kind: Service
metadata:
name: wordpress-mysql
labels:
app: wordpress
spec:
ports:
- port: 3306
selector:
app: wordpress
tier: mysql
clusterIP: None
---
apiVersion: v1
kind: Service
metadata:
name: wordpress
labels:
app: wordpress
spec:
ports:
- port: 80
nodePort: 80
selector:
app: wordpress
tier: frontend
type: NodePort
Tip: 这里service定义的name: wordpress-mysql保证我们wordpress-deployment.yaml定义的如下环境变量可以作为有效的域名成功去访问我们的mysql容器, 保证网站服务器与数据库服务器的通讯.
env:
- name: WORDPRESS_DB_HOST
value: wordpress-mysql
五. 验证结果
1.访问wordpress主页
这里我们可以直接在浏览器访问任意node的IP地址从而进入wordpress主页
添加相关信息并初始化安装WordPress
完成安装
后台
主页
2.查看NFS主机对在容器里的mysql data与wordpress root dir的目录挂载.
有兴趣的小伙伴可以直接访问如下代码仓库去下载本文相关代码:
Finished...
后记:
如果我们使用helm包管理去部署wordpress, 将大大简化我们的工作量.
这里我的代码仓库提供了wordpress chart部署脚本, 以下是详细的部署步骤:
Prerequisite:
Kubernetes cluster setup
Helm setup
Helm deployment:
# git clone git@git.showerlee.com:showerlee/kube-deploy.git
# cd kube-deploy
# kubectl create secret generic mysql-pass --from-literal='password=countonme'
# helm install --name wordpress-mysql ./wordpress-helm-chart --set service.type=NodePort
NAME: wordpress-mysql
LAST DEPLOYED: Sat Apr 14 03:09:46 2018
NAMESPACE: default
STATUS: DEPLOYED
RESOURCES:
==> v1/PersistentVolume
NAME CAPACITY ACCESS MODES RECLAIM POLICY STATUS CLAIM STORAGECLASS REASON AGE
mysql-pv 5Gi RWO Recycle Bound default/mysql-pv-claim 1s
wp-pv 5Gi RWO Recycle Bound default/wp-pv-claim 1s
==> v1/PersistentVolumeClaim
NAME STATUS VOLUME CAPACITY ACCESS MODES STORAGECLASS AGE
mysql-pv-claim Bound mysql-pv 5Gi RWO 1s
wp-pv-claim Bound wp-pv 5Gi RWO 1s
==> v1/Service
NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE
wordpress-mysql ClusterIP None 3306/TCP 1s
wordpress NodePort 10.110.14.233 80:80/TCP 1s
==> v1/Deployment
NAME AGE
wordpress-mysql 1s
wordpress 1s
NOTES:
1. Get the application URL by running these commands:
export NODE_PORT=$(kubectl get --namespace default -o jsonpath="{.spec.ports[0].nodePort}" services wordpress-mysql-wordpress-helm-chart)
export NODE_IP=$(kubectl get nodes --namespace default -o jsonpath="{.items[0].status.addresses[0].address}")
echo http://$NODE_IP:$NODE_PORT
正文部分到此结束
wordpress mysql port_Kubernetes相关推荐
- 从零开始学习docker(十)搭建WordPress+Mysql,为什么要用Docker Compose
我们从这一节开始介绍一个非常非常重要的工具--Docker Compose,这个工具会经常使用. 先从一个案例介绍一下我们为什么要用Docker Compose. 案例:如何通过容器部署一个WordP ...
- code-server、docker-compose安装wordpress+mysql、wordpress公式插件、markdown插件、目录插件、调序插件、统计插件、分享点赞打赏插件
文章目录 缘起 一.code-server 1.1 code-server简介 1.2 code-server安装和启动 1.3 code-server安全配置 1.3.1 域名申请和备案 1.3.2 ...
- wordpress mysql 密码重置_WordPress忘记密码找回登录密码的四种行之有效的方法
WordPress忘记密码找回登录密码的四种行之有效的方法 PS:20170214更新,感谢SuperDoge同学提供的方法,登入phpMyAdmin后,先从左边选自己的数据库,然后点上面的 SQL ...
- wordpress mysql 5.7_CentOS7 运维 - 搭建WordPress论坛 | 超详细 | MySQL安装使用
准备环境 服务器操作系统:CentOS7 部署服务器:Apache HTTP 数据库:MySQL 框架:WordPress 一.安装Apache HTTP sudo yum install httpd ...
- linux wordpress mysql 配置_linux下搭建wordpress站点
搭建php站点 安装并启动 apache | mysql | php yum install -y httpd mysql mysql-server php php-mysql #启动apache m ...
- wordpress mysql优化_wordpress优化mysql数据库的方法
和大家分享一下wordpress优化mysql数据库的方法,详情如下: wordpress优化mysql数据库的方法 mysql数据库良好稳定有效率的运行,除了linux操作系统给予强力支持外,还需要 ...
- wordpress mysql备份_wordpress怎么备份数据库
wordpress的优势是开源,支持各种插件主题,最大的缺点就是吃主机性能,所以一些博主选择了zblog建站.人各有志,我还是喜欢Wordpress,毕竟wordpress是世界上最受欢迎的博客程序. ...
- wordpress mysql主机_怎样把WordPress网站迁移到新虚拟主机?
作者: meilin 位于: 数码电子 把网站迁移到一个新主机是令许多人感到头痛的事情.但掌握技巧,并肯花些时间做准备,迁移网站实际上很简单.下面让我手把手的教给你,把WordPress网站转移到新虚 ...
- wordpress mysql 安装_wordpress 搭建安装教程 1 安装数据库、SQLyog
php-7.3.4-Win32-VC15-x64.zip 如果下载失效,从这里下载(英文版) https://windows.php.net/downloads/releases/php-7.3.5 ...
- wordpress mysql 挂了_大神们,诊断一下,wampserver的mysql老是挂掉!
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼 访问提示:"建立数据库连接时出错" 重启动wampserver的mysql服务后可以正常访问 130622 18:26:07 [Not ...
最新文章
- layer.open嵌入地址链接
- 计算机组装与维修是几级考试,计算机组装与维修期末考试试卷讲解学习.pdf
- bulk这个词的用法_雅思考试真题解析|雅思听力“正负含义词”的妙用
- ThinkPHP- 3.1
- linux-命令模式-光标定位-编辑中20.22
- torch.nn与torch.nn.functional
- 参考文献如何居中_一线教师如何写教育教学论文?
- Web API-DOM-滚动事件、加载事件和元素大小和位置
- GJB150.18A-2009机械冲击试验测试要求
- STM32 flash 大小
- java拍照搜题软件下载_微信拍照搜答案的小程序 可以拍照搜java题的软件
- 微信用户扫码登录和登录退出的业务逻辑实现(java版)
- 用Pandas进行数据清洗
- 键盘侠小心了!微博或将推出“杠精”示众功能
- CTGU·OJ 快乐
- 打印机如何双面打印、复印?
- 匹配的通配符很全面,但无法找到元素mvc:annotation-driven的声明
- Java语音技术之FreeTTS
- 厦大C在线实验题3 分数约简
- 用MATLAB画圣诞树的源代码
热门文章
- RBG-D深度相机的相关资料
- untiy对过相机参数计算视场角
- Atitit 单片机与嵌入式系统原理与概念 目录 1. 寄存器、数据库,堆栈	2 1.1. 寻址模式	2 1.2. 指令	2 1.3. Watchdog 中断	2 2. 软件是如何影响硬件设计的	2
- Atitit 声音和音乐检索 多媒体信息检索 信息检索 目录 1.1. 14.4.5 音频基础知识 	1 1.2. 多媒体信息检索的方法主要有哪些?其原理是什么?	1 1.3. 基于文本的检索和基于
- Atitit ftp概念与ftpclient 目录 1. Concept	1 1.1. Tftp(simple ftp) sftp ssh port22	1 1.2. ftp server
- Atitit 项目沟通管理 Atitit 沟通之道 attilax著.docx
- (转)王小川湖畔大学演讲:人工智能最具商业价值的是什么?
- 《金融时报》和麦肯锡:本年度最佳书单
- 2019 年 Linux 架构师最新熬夜制作!
- 【优化算法】晶体结构算法【含Matlab源码 1800期】