K8S中部署wordpress
K8S中部署wordpress
省略了storageclass的部署过程。详情参考 Storageclass 外挂NFS配置与应用
1.创建名称空间
kubectl create ns wordpress
2.部署数据库
2.1 创建pvc
使用pvc,申请一个pv;从storageClassName: managed-nfs-storage中获取。pv的名称为
cat 0-mysql-pvc.yaml
apiVersion: v1
kind: PersistentVolumeClaim
metadata:
name: mysql-pv-claim
namespace: wordpress
spec:
storageClassName: managed-nfs-storage
accessModes:
- ReadWriteMany
resources:
requests:
storage: 2Gi
2.2 创建mysql POD
有状态应用建议使用StatefulSet控制器
cat 1-mysql.yaml
# 创建pod
apiVersion: v1
kind: Pod
metadata:
name: wp-mysql
namespace: wordpress
labels:
app: wp-mysql
spec:
containers:
- name: mysql
image: mysql:5.7
imagePullPolicy: IfNotPresent
ports:
- containerPort: 3306
name: dbport
env:
- name: MYSQL_ROOT_PASSWORD
value: gong.123
- name: MYSQL_DATABASE
value: wordpress
- name: MYSQL_USER
value: wordpress
- name: MYSQL_PASSWORD
value: wordpress
volumeMounts:
- name: db
mountPath: /var/lib/mysql
volumes:
- name: db
persistentVolumeClaim:
claimName: mysql-pv-claim
2.3 暴露mysql的svc
cat 2-mysql-svc.yaml
apiVersion: v1
kind: Service
metadata:
labels:
app: wp-mysql
name: wp-mysql-svc
namespace: wordpress
spec:
ports:
- port: 3306
protocol: TCP
targetPort: 3306
selector:
app: wp-mysql
3.部署wordpress
3.1 创建pvc
cat wp-storage.yaml
apiVersion: v1
kind: PersistentVolumeClaim
metadata:
name: wp-storage
namespace: wordpress
spec:
storageClassName: managed-nfs-storage
accessModes:
- ReadWriteMany
resources:
requests:
storage: 2Gi
3.2 创建deployment资源的wordpress
cat wordpress-dp.yaml
apiVersion: apps/v1
kind: Deployment
metadata:
name: wordpress
namespace: wordpress
spec:
selector:
matchLabels:
app: wordpress
replicas: 1
template:
metadata:
labels:
app: wordpress
spec:
containers:
- name: wordpress
image: wordpress
imagePullPolicy: IfNotPresent
ports:
- containerPort: 80
env:
- name: WORDPRESS_DB_HOST
value: wp-mysql-svc:3306
- name: WORDPRESS_DB_USER
value: wordpress
- name: WORDPRESS_DB_PASSWORD
value: wordpress
volumeMounts:
- name: wp-storage
mountPath: /var/www/html
volumes:
- name: wp-storage
persistentVolumeClaim:
claimName: wp-storage
3.3 暴露wordpress端口
kubectl expose -n wordpress deployment wordpress --type=NodePort --port=8081 --target-port=80 --name=wp-svc
标签:
Kubernetes
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· winform 绘制太阳,地球,月球 运作规律
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· AI 智能体引爆开源社区「GitHub 热点速览」
· Manus的开源复刻OpenManus初探
· 写一个简单的SQL生成工具