【云原生 · Kubernetes】部署博客系统
【云原生 · Kubernetes】Kubernetes运维
接着上次的内容,后续来了!
(1)配置NFS服务
master节点安装NFS与RPC服务:
# yum install -y nfs-utils rpcbind
node节点安装NFS客户端:
# yum install -y nfs-utils
启动RPC服务:
# systemctl start rpcbind
# systemctl enable rpcbind
查看NFS服务项RPC服务器注册的端口列表:
# rpcinfo -p localhost
启动NFS服务:
# systemctl start nfs
# systemctl enable nfs
启动NFS服务后RPC服务已经启用了对NFS的端口映射列表
# rpcinfo -p localhost
在服务器端创建2个共享目录并设置权限:
# mkdir -p /home/pvdata/mysql
# mkdir -p /home/pvdata/wordpress
# chmod 777 /home/pvdata/mysql
# chmod 777 /home/pvdata/wordpress
修改NFS配置文件/etc/exports
# vim /etc/exports
/home/pvdata/mysql *(rw,sync,insecure,no_subtree_check,no_root_squash)
/home/pvdata/wordpress *(rw,sync,insecure,no_subtree_check,no_root_squash)
NFS配置文件生效
# exportfs -r
# exportfs
(2)配置NFS PV持久化存储
创建mysql pv卷
# cat mysql-persistent-storage.yaml
apiVersion: v1
kind: PersistentVolume
metadata:
name: mysql-persistent-storage
spec:
capacity:
storage: 20Gi
accessModes:
- ReadWriteOnce
persistentVolumeReclaimPolicy: Recycle
storageClassName: nfs
nfs:
path: /home/pvdata/mysql/
server: 10.18.4.10
# kubectl apply -f mysql-persistent-storage.yaml
创建wordpress pv卷:
# cat wordpress-persistent-storage.yaml
apiVersion: v1
kind: PersistentVolume
metadata:
name: wordpress-persistent-storage
spec:
capacity:
storage: 20Gi
accessModes:
- ReadWriteOnce
persistentVolumeReclaimPolicy: Recycle
storageClassName: nfs
nfs:
path: /home/pvdata/wordpress/
server: 10.18.4.10
# kubectl apply -f wordpress-persistent-storage.yaml
(3)部署应用
通过以下命令在kustomization.yaml中添加一个Secret生成器:
# cat <<EOF >./kustomization.yaml
secretGenerator:
- name: mysql-pass
literals:
- password=123456ok
EOF
MySQL容器将PersistentVolume挂载在/var/lib/mysql。MYSQL_ROOT_PASSWORD环境变量设置来自Secret的数据库密码:
# cat mysql-deployment.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: PersistentVolumeClaim
metadata:
name: mysql-pv-claim
labels:
app: wordpress
spec:
accessModes:
- ReadWriteOnce
resources:
requests:
storage: 20Gi
---
apiVersion: apps/v1 # for versions before 1.9.0 use apps/v1beta2
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: 10.18.4.10/library/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
WordPress容器将网站数据文件位于/var/www/html的PersistentVolume。WORDPRESS_DB_HOST环境变量集上面定义的MySQLService的名称,WordPress将通过Service访问数据库。WORDPRESS_DB_PASSWORD环境变量设置从Secretkustomize生成的数据库密码。
# cat wordpress-deployment.yaml
apiVersion: v1
kind: Service
metadata:
name: wordpress
labels:
app: wordpress
spec:
ports:
- port: 80
selector:
app: wordpress
tier: frontend
type: LoadBalancer
---
apiVersion: v1
kind: PersistentVolumeClaim
metadata:
name: wp-pv-claim
labels:
app: wordpress
spec:
accessModes:
- ReadWriteOnce
resources:
requests:
storage: 20Gi
---
apiVersion: apps/v1 # for versions before 1.9.0 use apps/v1beta2
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: 10.18.4.10/library/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
将以上两个文件补充到kustomization.yaml文件中:
# cat <<EOF >>./kustomization.yaml
resources:
- mysql-deployment.yaml
- wordpress-deployment.yaml
EOF
kustomization.yaml包含用于部署 WordPress 网站的所有资源以及 MySQL 数据库。通过以下方式部署应用:
# kubectl apply -k ./
secret/mysql-pass-ccht6ddg2m created
service/wordpress-mysql created
service/wordpress created
deployment.apps/wordpress-mysql created
deployment.apps/wordpress created
persistentvolumeclaim/mysql-pv-claim created
persistentvolumeclaim/wp-pv-claim created
(4)验证应用
通过运行以下命令验证Secret是否存在:
# kubectl get secrets
NAME TYPE DATA AGE
mysql-pass-ccht6ddg2m Opaque 1 39s
验证是否已动态配置PersistentVolume,设置和绑定PV可能要花费几分钟:
# kubectl get pvc
NAME STATUS VOLUME CAPACITY ACCESS MODES STORAGECLASS AGE
mysql-pv-claim Bound pvc-1f300520-7d33-4a2e-acdc-d09ef27f794a 20Gi RWO local-path 10m
wp-pv-claim Bound pvc-b13dddbd-0f1c-4b04-b6c0-677a1f50587b 20Gi RWO local-path 10m
通过运行以下命令来验证Service是否正在运行:
# kubectl get services wordpress
NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE
wordpress LoadBalancer 10.109.26.194 <pending> 80:31355/TCP 10m
(5)访问应用
通过http://IP:31355访问wordpress
创建用户并登录wordpress

期待下次的分享,别忘了三连支持博主呀~
我是 念舒_C.ying ,期待你的关注~
【云原生 · Kubernetes】部署博客系统的更多相关文章
- 使用docker部署WordPress博客系统(win10企业版)
docker介绍: docker 是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的容器中,然后发布到任何流行的Linux机器上,也可以实现虚拟化,容器是完全使用沙箱机制,相 ...
- 如何快速部署国人开源的 Java 博客系统 Tale
除了闷头专研技术之外,程序员还需要不断地写作进行技术积累,写博客是其中最重要的方式之一.商业博客平台不少,但是更符合程序员背景的方案,是自己开发一个博客平台或者使用开源的博客平台. 开源的博客平台多如 ...
- Docker 方式部署 Solo 博客系统总结
此篇为Docker部署方式,另有Tomcat部署方式,请参考文章<Tomcat 方式部署 Solo 博客系统总结> 最近搭建了一个博客系统,作为自己的主页,方便记录一些平时所见所闻 ...
- Tomcat 方式部署 Solo 博客系统总结
此篇为Tomcat部署方式,另有Docker部署方式,请参考文章<Docker 方式部署 Solo 博客系统总结> 一.环境和文件准备 服务器:购买的阿里云服务器,系统为Linux(C ...
- linux下部署tomcat 上线jpress博客系统
tomcat Tomcat服务器是一个免费的开放源代码的Web应用服务器,属于轻量级应用服务器. tomcat有三个端口 开始部署 安装tomcat 第一步:下载tomcat 安装包 tomcat官网 ...
- 在github Pages上部署octopress搭建个人博客系统
原文链接:http://caiqinghua.github.io/blog/2013/08/26/deploy-octopress-to-github-pages/ 引子 上一篇博客已经说了为什么要搭 ...
- Centos 7使用docker部署LAMP搭建wordpress博客系统
0.简要概述 LAMP是目前比较流行的web框架,即Linux+Apache+Mysql+PHP的网站架构方案.docker是目前非常流行的虚拟化应用容器,可以为任何应用创建一个轻量级.可移植的容器. ...
- 使用Docker部署Spring-Boot+Vue博客系统
在今年年初的时候,完成了自己的个Fame博客系统的实现,当时也做了一篇博文Spring-boot+Vue = Fame 写blog的一次小结作为记录和介绍.从完成实现到现在,也断断续续的根据实际的使用 ...
- 欢迎阅读daxnet的新博客:一个基于Microsoft Azure、ASP.NET Core和Docker的博客系统
2008年11月,我在博客园开通了个人帐号,并在博客园发表了自己的第一篇博客.当然,我写博客也不是从2008年才开始的,在更早时候,也在CSDN和系统分析员协会(之后名为"希赛网" ...
- 一个基于Microsoft Azure、ASP.NET Core和Docker的博客系统
2008年11月,我在博客园开通了个人帐号,并在博客园发表了自己的第一篇博客.当然,我写博客也不是从2008年才开始的,在更早时候,也在CSDN和系统分析员协会(之后名为“希赛网”)个人空间发布过一些 ...
随机推荐
- 排序算法整理C++(初赛)
排序算法整理 常见考点 将一个乱掉的字符串排回有序(以交换为基本操作)的最少操作,就是冒泡排序. 排序算法的稳定性 排序算法的时间复杂度 排序算法的稳定性 稳定性是指排序前两个元素a1 = a2,a1 ...
- 使用verdaccio+docker搭建npm私有仓库以及使用
公司内部前端组件或库的共享等,搭建一个npm私有库就很方便,现在中大型公司也基本都有自己的npm私有库,这篇文章,和大家一起共同搭建一个npm私有库,共同学习 前置条件 一台电脑 可以联网 一.安装d ...
- Kubernetes 部署 Nacos 1.4 集群
文章转载自:http://www.mydlq.club/article/104/ 系统环境: Nacos 版本:1.4.1 Mysql 版本:8.0.19 Kubernetes 版本:1.20.1 一 ...
- MinIO 快速入门指南
官方文档地址:http://docs.minio.org.cn/docs/ MinIO 是在 GNU Affero 通用公共许可证 v3.0 下发布的高性能对象存储. 它是与 Amazon S3 云存 ...
- 使用Elasticsearch的processors来对csv格式数据进行解析
来源数据是一个csv文件,具体内容如下图所示: 导入数据到es中 有两种办法,第一种是在kibana界面直接上传文件导入 第二种方法是使用filebeat读取文件导入 这里采用第二种办法 配置文件名: ...
- 阿里云服务器部署Web环境
一.配置阿里云服务器 进入阿里云官方网站(https://www.aliyun.com/). 初次使用的话使用支付宝快速注册账户,并进行个人实名认证. 点击试用中心. 选择第二个,云服务器2核4G. ...
- 多云容器编排 Karmada-Operator 实践
作者:vivo 互联网服务器团队-Zhang Rong Karmada作为开源的云原生多云容器编排项目,吸引了众多企业共同参与项目开发,并运行于生产环境中.同时多云也逐步成为数据中心建设的基础架构,多 ...
- Node.js(五)学生管理CRUD
npm init -y(初始化项目) npm install express(引入express) npx express-generator -e(自动生成模板.添加对 ejs 模板引擎的支持) n ...
- POJ3585 Accumulation Degree (树形DP-二次扫描与换根)
本题属于不定根的树形DP,若以每个节点为根求解一次,复杂度太高,所以可以用换根的技巧. d[u]表示以u为根向下可以流的最大流量,这个是比较好求的,直接遍历到叶子节点,由子节点信息更新父节点.然后进行 ...
- Hive之安装
Hive安装 1. 依赖hadoop(另有hadoop安装文档) 执行程序运行在yarn上面,需要启动start-yarn.sh 2. 先安装MySQL MySQL安装详见数据库MySQL之安装:ht ...