16-k8s阶段性总结01-wordpress案例

一、案例架构

步骤简单分析:

1,准备NFS环境

2,【wordpress的pod】创建deployment资源的wordpress(pod)容器;

3,【用户访问的svc】创建用户访问的svc资源;

4,【数据库的pod】创建deployment资源的数据库服务的pod容器;

5,【数据库的svc】创建业务服务wordpress的pod资源访问数据库的svc资源;

二、开始部署

1,准备NFS环境

我们采用k8s外部虚拟机的路径,实现数据卷的nfs挂载,本次学习,我们采用harbor的虚拟机进行存储静态数据;

由于,k8s集群,在创建业务pod时候,需要挂载外部的nfs,那么也需要有nfs的命令的使用,所以,k8s集群中 的机器,同样也需要安装nfs;

· 存储节点和k8s集群全部安装nfs工具

注意,是k8s集群所有节点,加上挂载节点(数据存储节点)都需要安装哦;

yum -y install nfs-utils

· nfs存储节点配置nfs配置文件

root@harbor \~\]# vim /etc/exports /xinjizhiwa/data \*(rw,no_root_squash)

· nfs存储节点创建存储路径

root@harbor \~\]# mkdir -p /xinjizhiwa/data/{mysql,wordpress}

· 启动nfs

root@harbor \~\]# systemctl enable --now nfs

验证是否成功

root@harbor \~\]# exportfs /xinjizhiwa/data \

2,编辑wordpress的depoloy资源清单

root@k8s231 deployment\]# cat dm-wordpress.yaml apiVersion: apps/v1 kind: Deployment metadata: name: dm-wp spec: replicas: 3 selector: matchLabels: k8s: wp template: metadata: name: pod01 labels: k8s: wp spec: volumes: - name: vol-wp nfs: server: 10.0.0.230 path: /xinjizhiwa/data/wordpress containers: - name: c-wp image: wordpress:latest ports: - name: wp-c-port containerPort: 80 volumeMounts: - name: vol-wp mountPath: /var/www/html/wp-content/uploads env: - name: WORDPRESS_DB_HOST #数据库的svc资源的clusterIP地址; value: 10.200.200.200:3306 - name: WORDPRESS_DB_USER value: xinjizhiwa - name: WORDPRESS_DB_PASSWORD value: xinjizhiwa - name: WORDPRESS_DB_NAME value: wordpress

3,编辑wordpress的svc资源

root@k8s231 deployment\]# vim svc-wordpress.yaml apiVersion: v1 kind: Service metadata: name: svc-wp spec: type: NodePort selector: k8s: wp clusterIP: 10.200.200.100 ports: - port: 99 targetPort: 80 nodePort: 31000

4,编辑数据库的deploy资源清单

root@k8s231 deployment\]# cat dm-mysql.yaml apiVersion: apps/v1 kind: Deployment metadata: name: dm-sql spec: replicas: 1 selector: matchLabels: k8s: sql template: metadata: name: pod02 labels: k8s: sql spec: volumes: - name: vol-sql nfs: server: 10.0.0.230 path: /xinjizhiwa/data/mysql containers: - name: c-db image: mysql:8.0 ports: - name: db-port containerPort: 3306 volumeMounts: - name: vol-sql mountPath: /var/lib/mysql env: - name: MYSQL_DATABASE value: wordpress - name: MYSQL_USER value: xinjizhiwa - name: MYSQL_PASSWORD value: xinjizhiwa - name: MYSQL_ROOT_PASSWORD value: xinjizhiwa

5,编辑数据库的svc资源

root@k8s231 deployment\]# vim svc-mysql.yaml apiVersion: v1 kind: Service metadata: name: svc-sql spec: type: NodePort selector: k8s: sql clusterIP: 10.200.200.200 ports: - port: 3306 targetPort: 3306 nodePort: 32000

6,创建所有资源

root@k8s231 deployment\]# kubectl apply -f .

三、验证是否完成部署及数据共享

1,查看svc资源

root@k8s231 deployment\]# kubectl get svc

2,查看nfs存储路径,是否有数据

3,浏览器访问并安装

相关推荐
轩辰q18 分钟前
Docker 容器化技术核心知识笔记
云原生·eureka
火龙果研究院20 分钟前
利用docker和docker-compose部署单机kafka
docker·容器·kafka
没有bug.的程序员21 分钟前
Istio 架构全景解析:控制面 vs 数据面、核心组件与流量路径深度拆解
微服务·云原生·架构·istio·架构设计·envoy·servicemesh
思绪漂移35 分钟前
从云原生到CNB实践:云原生开发与云原生构建的使用姿势
云原生·腾讯云
java_logo37 分钟前
基于 Docker 的 MongoDB 部署与使用指南
mongodb·docker·容器·mongodb部署·mongodb部署文档·mongodb部署方案·docker部署mongodb
叽里咕噜怪1 小时前
Kubernetes 操作与项目生命周期管理(初学者详解版)
云原生·容器·kubernetes
企鹅郁金香1 小时前
使用Docker部署Gitlab和Gerrit (一)
docker·容器·gitlab·gerrit部署
秃了也弱了。1 小时前
云原生 API 网关:apisix使用详解
云原生
可爱又迷人的反派角色“yang”1 小时前
k8s(三)
linux·运维·网络·docker·容器·kubernetes
三块钱07941 小时前
nas-群晖docker查询注册表失败解决办法
运维·docker·容器