南宁网站怎么做seo,做微信平台网站需要多少钱,wordpress 移动端跳转,电商税收新政策2021一、项目架构
前端、后端、数据库
1#xff09;前端
静态的资源#xff1a;img css html js文件
js#xff1a;axios、ajax
2#xff09;后端
提供数据#xff1a;根据web前端发送的请求#xff0c;从数据库中获取数据
请求都是无状态的#xff0c;如何保持会话 …
一、项目架构
前端、后端、数据库
1前端
静态的资源img css html js文件
jsaxios、ajax
2后端
提供数据根据web前端发送的请求从数据库中获取数据
请求都是无状态的如何保持会话
每次请求都会携带一个token字符串能够验证用户身份
3数据库
存储数据与表格
二、流程
1访问nginx服务获得页面下载静态资源
在旧的版本中都是使用浏览器直接访问java或者php服务由这些服务临时渲染一个页面文件响应给客户端。
2在浏览器中解析并且渲染页面
3向服务器发送登录请求或者其他的请求
请求的位置服务器主机ip或者域名在哪里端口是哪个服务名称映射
请求的参数账号密码
请求的方法getpost
4java服务器收到请求之后对请求解析
例如登录分发dispatch到login模块
5从数据库中查询对应的用户信息
如果用户信息的账号和密码都是正确的就返回字符串允许用户登录否则也返回异常信息字符串
三、部署
k8s中使用到的技术deployment、service、volums
1、准备nfs服务器
1新建虚拟机
2设置计划任务核对时间 [rootnginx ~]# yum -y install ntpdate[rootnginx ~]# ntpdate time2.aliyun.com26 Sep 09:45:40 ntpdate[1358]: adjust time server 203.107.6.88 offset 0.009069 sec[rootnginx ~]# which ntpdate/usr/sbin/ntpdate[rootnginx ~]# crontab -e* 5 * * * /usr/sbin/ntpdate time2.aliyun.com
3安装nfs服务应用 [rootnginx ~]# yum -y install rpcbind[rootnginx ~]# yum -y install nfs-utils
4配置文件 [rootnginx ~]# echo /root/pes *(rw,sync) /etc/exports
5准备pes资源 [rootnginx ~]# lspes
6启动nfs服务 [rootnginx ~]# systemctl start rpcbind nfs-server
7测试验证 [rootk8s-master ~]# showmount -e 10.0.0.99Export list for 10.0.0.99:/root/pes *
2、前端web实现
nginx:latest使用nfs挂载
1编写deployment清单 apiVersion: apps/v1kind: Deploymentmetadata:name: web-deploymentnamespace: defaultlabels:app: web-deploymentspec:selector:matchLabels:app: web-deploymentreplicas: 3strategy:rollingUpdate:maxSurge: 25%maxUnavailable: 25%type: RollingUpdatetemplate:metadata:labels:app: web-deploymentspec:containers:- name: nginximage: docker.io/library/nginx:latestimagePullPolicy: Neverresources:requests:cpu: 100mmemory: 100Milimits:cpu: 100mmemory: 100Miports:- containerPort: 80volumeMounts:- name: pesdistmountPath: /usr/share/nginx/htmlvolumes:- name: pesdistnfs:server: 10.0.0.99path: /root/pes/web/src/distrestartPolicy: Always
2创建deployment项目 [rootk8s-master cc]# kubectl create -f web-deployment.yaml deployment.apps/web-deployment created[rootk8s-master cc]# kubectl get podNAME READY STATUS RESTARTS AGEcluster-test-66bb44bd88-zdfdf 1/1 Running 32 (54m ago) 13dweb-deployment-7fd7479d49-6x4nn 1/1 Running 0 8sweb-deployment-7fd7479d49-bxdp9 1/1 Running 0 8sweb-deployment-7fd7479d49-xhjwb 1/1 Running 0 8s
3测试验证 [rootk8s-master cc]# kubectl get pod -owideNAME READY STATUS RESTARTS AGE IP NODE NOMINATED NODE READINESS GATEScluster-test-66bb44bd88-zdfdf 1/1 Running 32 (57m ago) 13d 172.16.85.200 k8s-node01 none noneweb-deployment-7fd7479d49-6x4nn 1/1 Running 0 2m38s 172.16.58.251 k8s-node02 none noneweb-deployment-7fd7479d49-bxdp9 1/1 Running 0 2m38s 172.16.85.201 k8s-node01 none noneweb-deployment-7fd7479d49-xhjwb 1/1 Running 0 2m38s 172.16.58.252 k8s-node02 none none[rootk8s-master cc]# curl 172.16.58.251!DOCTYPE htmlhtml langenheadmeta charsetUTF-8link relicon href/favicon.icometa nameviewport contentwidthdevice-width, initial-scale1.0titleVite App/titlescript typemodule crossorigin src/assets/index-C4kAShR5.js/scriptlink relstylesheet crossorigin href/assets/index-CSz7ARPP.css/headbodydiv idapp/div/body/html
3、后端java实现
自定义容器使用nfs挂载
1在pes目录中找到java的Dockerfile文件创建镜像 [rootnginx ~]# cd pes/java/[rootnginx java]# lsDockerfile jdk src start.sh[rootnginx java]# docker build -t java:v1 .[rootnginx java]# docker imagesREPOSITORY TAG IMAGE ID CREATED SIZEjava v1 5dc6610d8a6c 18 hours ago 592MB
2镜像打包发送到两个节点 [rootnginx ~]# docker save -o java.tar java:v1[rootnginx ~]# lsjava.tar[rootnginx ~]# scp java.tar 10.0.0.77:/root[rootnginx ~]# scp java.tar 10.0.0.88:/root
3在节点中加载镜像包 [rootk8s-node01 ~]# ctr -n k8s.io images import java.tar --platformlinux/amd64[rootk8s-node01 ~]# crictl imagesIMAGE TAG IMAGE ID SIZEdocker.io/library/java v1 5dc6610d8a6cc 599MB[rootk8s-node02 ~]# ctr -n k8s.io images import java.tar --platformlinux/amd64[rootk8s-node02 ~]# crictl imagesIMAGE TAG IMAGE ID SIZEdocker.io/library/java v1 5dc6610d8a6cc 599MB
4创建资源清单 apiVersion: apps/v1kind: Deploymentmetadata:name: java-deploymentnamespace: defaultlabels:app: java-deploymentspec:selector:matchLabels:app: java-deploymentreplicas: 3strategy:rollingUpdate:maxSurge: 25%maxUnavailable: 25%type: RollingUpdatetemplate:metadata:labels:app: java-deploymentspec:containers:- name: javaimage: docker.io/library/java:v1imagePullPolicy: Neverresources:requests:cpu: 100mmemory: 100Milimits:cpu: 100mmemory: 100Miports:- containerPort: 8080volumeMounts:- name: pesjavamountPath: /java/srcvolumes:- name: pesjavanfs:server: 10.0.0.99path: /root/pes/java/srcrestartPolicy: Always
5创建deployment项目 [rootk8s-master cc]# kubectl create -f java-deployment.yaml deployment.apps/java-deployment created[rootk8s-master cc]# kubectl get podNAME READY STATUS RESTARTS AGEcluster-test-66bb44bd88-zdfdf 1/1 Running 33 (45m ago) 13djava-deployment-7b9f747b8d-9cpsw 1/1 Running 0 7sjava-deployment-7b9f747b8d-j6l22 1/1 Running 0 7sjava-deployment-7b9f747b8d-t4cvb 1/1 Running 0 7sweb-deployment-7fd7479d49-6x4nn 1/1 Running 0 51mweb-deployment-7fd7479d49-bxdp9 1/1 Running 0 51mweb-deployment-7fd7479d49-xhjwb 1/1 Running 0 51m
6测试验证出现问题
“OOMKilled” 是一种在容器化环境或某些操作系统中常见的状态表示 “Out Of Memory Killed”即由于内存不足而被终止。
不断重启 [rootk8s-master cc]# kubectl get po -o wide -wNAME READY STATUS RESTARTS AGE IP NODE NOMINATED NODE READINESS GATEScluster-test-66bb44bd88-zdfdf 1/1 Running 33 (52m ago) 13d 172.16.85.200 k8s-node01 none nonejava-deployment-7b9f747b8d-9cpsw 0/1 OOMKilled 3 (2m1s ago) 6m32s 172.16.85.198 k8s-node01 none nonejava-deployment-7b9f747b8d-j6l22 0/1 OOMKilled 3 (118s ago) 6m32s 172.16.58.253 k8s-node02 none none
修改资源清单解决问题 limits:cpu: 100mmemory: 300Mi
重新创建deployment [rootk8s-master cc]# kubectl delete -f java-deployment.yaml [rootk8s-master cc]# kubectl create -f java-deployment.yaml [rootk8s-master cc]# kubectl get po -o wide NAME READY STATUS RESTARTS AGE IP NODE NOMINATED NODE READINESS GATEScluster-test-66bb44bd88-zdfdf 1/1 Running 33 (58m ago) 13d 172.16.85.200 k8s-node01 none nonejava-deployment-6d9c668fc5-6ftrk 1/1 Running 0 109s 172.16.85.202 k8s-node01 none nonejava-deployment-6d9c668fc5-crk2p 1/1 Running 0 109s 172.16.58.254 k8s-node02 none none
重新测试 [rootk8s-master cc]# curl 172.16.85.202:8080{code:20002,msg:账号不存在或密码错误}[rootk8s-master cc]#
4、后端数据库实现
mysql:5.7.44使用nfs挂载
1检查是否存在mysql:5.7.44镜像 [rootk8s-node01 ~]# crictl images | grep mysqldocker.io/library/mysql 5.7.44 5107333e08a87 520MB[rootk8s-node02 ~]# crictl images | grep mysqldocker.io/library/mysql 5.7.44 5107333e08a87 520MB
2创建资源清单 apiVersion: apps/v1kind: Deploymentmetadata:name: mysql-deploymentlabels:app: mysql-deploymentspec:replicas: 1selector:matchLabels:app: mysql-deploymenttemplate:metadata:labels:app: mysql-deploymentspec:containers:- name: mysqlimage: docker.io/library/mysql:5.7.44imagePullPolicy: Neverresources:requests:cpu: 100mmemory: 100Milimits:cpu: 100mmemory: 200Miports:- name: mysqlportcontainerPort: 3306volumeMounts:- name: localtimemountPath: /var/lib/mysqlvolumes:- name: localtimenfs:server: 10.0.0.99path: /root/pes/mysql/datarestartPolicy: Always # 如果创建时不使用volumes挂载则需要将数据导入数据库中[rootk8s-master cc]# mysql -h172.16.85.222 -uzhangmin -pzhangmin ~/project_exam_system.sql
3创建deployment项目出现问题 [rootk8s-master cc]# kubectl create -f mysql-deployment.yaml [rootk8s-master cc]# kubectl get podNAME READY STATUS RESTARTS AGEmysql-deployment-569c465d84-lrp2j 0/1 OOMKilled 2 (18s ago) 30s
修改资源清单内存不够扩大使用内存 resources:requests:cpu: 100mmemory: 100Milimits:cpu: 100mmemory: 1000Mi
重新创建deployment项目出现问题
“Permission denied”权限被拒绝 [rootk8s-master cc]# kubectl delete -f mysql-deployment.yaml [rootk8s-master cc]# kubectl create -f mysql-deployment.yaml [rootk8s-master cc]# kubectl get pod -o wideNAME READY STATUS RESTARTS AGE IP NODE NOMINATED NODE READINESS GATESmysql-deployment-6d67955c9d-lcvrn 0/1 Error 3 (75s ago) 3m14s 172.16.85.219 k8s-node01 none none[rootk8s-master cc]# kubectl logs mysql-deployment-6d67955c9d-lcvrn 2024-09-26 11:15:0700:00 [Note] [Entrypoint]: Entrypoint script for MySQL Server 5.7.44-1.el7 started.find: /var/lib/mysql/: Permission deniedfind: /var/lib/mysql: Permission denied
修改nfs的文件共享权限 [rootnginx assets]# vim /etc/exports/root/pes/ *(rw,sync,no_root_squash)[rootnginx ~]# systemctl restart rpcbind.service[rootnginx ~]# systemctl restart nfs-server
再次创建deployment项目 [rootk8s-master cc]# kubectl delete -f mysql-deployment.yaml [rootk8s-master cc]# kubectl create -f mysql-deployment.yaml [rootk8s-master cc]# kubectl get pod -o wideNAME READY STATUS RESTARTS AGE IP NODE NOMINATED NODE READINESS GATEScluster-test-66bb44bd88-zdfdf 1/1 Running 41 (39m ago) 14d 172.16.85.200 k8s-node01 none nonejava-deployment-6d9c668fc5-6ftrk 1/1 Running 1 (84m ago) 7h42m 172.16.85.202 k8s-node01 none nonejava-deployment-6d9c668fc5-crk2p 1/1 Running 0 7h42m 172.16.58.254 k8s-node02 none nonejava-deployment-6d9c668fc5-hqxjw 1/1 Running 0 7h42m 172.16.58.255 k8s-node02 none nonemysql-deployment-6d67955c9d-c4kbr 1/1 Running 0 23s 172.16.85.222 k8s-node01 none noneweb-deployment-7fd7479d49-6x4nn 1/1 Running 0 8h 172.16.58.251 k8s-node02 none noneweb-deployment-7fd7479d49-bxdp9 1/1 Running 0 8h 172.16.85.201 k8s-node01 none noneweb-deployment-7fd7479d49-xhjwb 1/1 Running 0 8h 172.16.58.252 k8s-node02 none none
4测试验证 [rootk8s-master cc]# mysql -h172.16.85.224 -pzhangmin -uzhangminWelcome to the MariaDB monitor. Commands end with ; or \g.Your MySQL connection id is 4Server version: 5.7.44 MySQL Community Server (GPL)Copyright (c) 2000, 2018, Oracle, MariaDB Corporation Ab and others.Type help; or \h for help. Type \c to clear the current input statement.MySQL [(none)] show databases;---------------------| Database |---------------------| information_schema || mysql || performance_schema || project_exam_system || sys |---------------------5 rows in set (0.08 sec)
5、web-service准备
1创建资源清单 apiVersion: v1kind: Servicemetadata:name: webservicespec:selector:app: web-deploymentports:- name: webportport: 80targetPort: 80nodePort: 32000protocol: TCPtype: NodePort
2创建service项目 [rootk8s-master cc]# kubectl create -f web-service.yaml service/webservice created[rootk8s-master cc]# kubectl get svcNAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGEkubernetes ClusterIP 10.96.0.1 none 443/TCP 15dwebservice NodePort 10.96.126.91 none 80:32000/TCP 19s
3测试验证 找不到域名设置域名 此时不能登录的原因是10.0.0.66的8080端口没有开发也没有映射到java的pod上也就是未连接后端 [rootk8s-master cc]# netstat -lntup | grep 8080
6、java-service准备
1创建资源清单 apiVersion: v1kind: Servicemetadata:name: javaservicespec:selector:app: java-deploymenttype: NodePortsessionAffinity: NonesessionAffinityConfig:clientIP:timeoutSeconds: 10800ports:- name: javaportprotocol: TCPport: 8080targetPort: 8080nodePort: 32100
2创建service项目 [rootk8s-master cc]# kubectl create -f java-service.yaml [rootk8s-master cc]# kubectl get svcNAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGEjavaservice NodePort 10.96.83.133 none 8080:32100/TCP 12mkubernetes ClusterIP 10.96.0.1 none 443/TCP 15dwebservice NodePort 10.96.126.91 none 80:32000/TCP 13h
3测试验证 进行前后端连接
7、web与java连接
1修改web连接java的配置文件
修改nfs服务器pes/web/assets中关于端口请求的文件将8080端口修改为32100端口 [rootnginx assets]# pwd/root/pes/web/src/dist/assets[rootnginx assets]# for fn in $(ls *.js) ; do echo $fn ; doneAdminView-yX0Ltz_1.jsCategoryView-Ca4t3JNT.js......[rootnginx assets]# for fn in $(ls *.js) ; do echo $fn ; cat $fn | grep 8080 ; doneindex-8SnX15u9.jshttp://bu.yuanyu.zhangmin:8080# 将8080改为32100[rootnginx assets]# vim index-8SnX15u9.jshttp://bu.yuanyu.zhangmin:32100,
2测试验证
测试 web服务发送登录请求会发送的32100端口上就直接可以访问java服务了 前端访问的时候发现500错误 # 检查java日志发现连接不到数据库[rootk8s-master cc]# kubectl logs java-deployment-6d9c668fc5-j9dmm Caused by: java.net.NoRouteToHostException: No route to hostat java.base/sun.nio.ch.Net.pollConnect(Native Method)
8、java与数据库连接
1修改java连接数据库的配置文件 [rootnginx assets]# vim ~/pes/java/src/application.properties spring.datasource.urljdbc:mysql://pesmysql:3306/project_exam_system# 浏览器访问后查看java日志[rootk8s-master cc]# kubectl logs java-deployment-6d9c668fc5-28lvt Caused by: java.net.UnknownHostException: pesmysqlat java.base/java.net.InetAddress$CachedAddresses.get(InetAddress.java:801)at java.base/java.net.InetAddress.getAllByName0(InetAddress.java:1532)at java.base/java.net.InetAddress.getAllByName(InetAddress.java:1384)at java.base/java.net.InetAddress.getAllByName(InetAddress.java:1305)at com.mysql.cj.protocol.StandardSocketFactory.connect(StandardSocketFactory.java:130)at com.mysql.cj.protocol.a.NativeSocketConnection.connect(NativeSocketConnection.java:62)... 16 common frames omitted
2mysql-service资源清单 apiVersion: v1kind: Servicemetadata:name: pesmysqlspec:selector:app: mysql-deploymenttype: ClusterIPsessionAffinity: NonesessionAffinityConfig:clientIP:timeoutSeconds: 10800ports:- name: mysqlportprotocol: TCPport: 3306targetPort: 3306
3创建service项目 [rootk8s-master cc]# kubectl create -f mysql-service.yaml [rootk8s-master cc]# kubectl get svcNAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGEjavaservice NodePort 10.96.83.133 none 8080:32100/TCP 99mkubernetes ClusterIP 10.96.0.1 none 443/TCP 15dpesmysql ClusterIP 10.96.62.94 none 3306/TCP 20mwebservice NodePort 10.96.126.91 none 80:32000/TCP 14h
4测试验证 [rootk8s-master cc]# kubectl exec -it cluster-test-66bb44bd88-zdfdf -- bash(02:16 cluster-test-66bb44bd88-zdfdf:/) nslookup pesmysqlServer: 10.96.0.10Address: 10.96.0.10#53Name: pesmysql.default.svc.cluster.localAddress: 10.96.62.94 5查看数据库数据 MySQL [sys] use project_exam_systemMySQL [project_exam_system] show tables;| user |-------------------------------MySQL [project_exam_system] select * from user;--------------------------------------------------------------------------------------------------------| id | userName | password | status | createTime | createOr | editTime | editOr | isDel |--------------------------------------------------------------------------------------------------------| 1 | 21001189 | 111111 | 0 | 2024-08-21 09:45:05 | NULL | 2024-08-22 14:04:44 | NULL | 0 || 2 | 21001190 | 111111 | 0 | 2024-08-21 09:45:05 | NULL | 2024-08-21 01:45:05 | NULL | 0 |
9、最终测试 [rootk8s-master cc]# lsjava-deployment.yaml java-service.yaml mysql-deployment.yaml mysql-service.yaml web-deployment.yaml web-service.yaml[rootk8s-master cc]# kubectl get svcNAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGEjavaservice NodePort 10.96.44.204 none 8080:32100/TCP 5h24mkubernetes ClusterIP 10.96.0.1 none 443/TCP 15dpesmysql ClusterIP 10.96.129.65 none 3306/TCP 16mwebservice NodePort 10.96.144.91 none 80:32000/TCP 5h25m[rootk8s-master cc]# kubectl get podNAME READY STATUS RESTARTS AGEcluster-test-66bb44bd88-w7hws 1/1 Running 4 (13m ago) 4h18mjava-deployment-b7857bbf-2zldq 1/1 Running 0 47mjava-deployment-b7857bbf-zj564 1/1 Running 0 47mmysql-deployment-755cb9cbb6-m6qwn 1/1 Running 0 27mweb-deployment-7b85c4bc87-454jn 1/1 Running 0 55mweb-deployment-7b85c4bc87-qbc2m 1/1 Running 0 55m
四、优化1pv部分
1、web部分
1web的pv创建
资源清单 apiVersion: v1kind: PersistentVolumemetadata:name: pv-nfsspec:capacity:storage: 7GivolumeMode: FilesystemaccessModes:- ReadWriteOncepersistentVolumeReclaimPolicy: RecyclestorageClassName: nfs-slownfs:path: /root/pes/web/src/distserver: 10.0.0.99
创建 [rootk8s-master cc]# kubectl create -f pv-nfs.yaml persistentvolume/pv-nfs created[rootk8s-master cc]# kubectl get pvNAME CAPACITY ACCESS MODES RECLAIM POLICY STATUS CLAIM STORAGECLASS REASON AGEpv-nfs 7Gi RWO Recycle Available nfs-slow 84s
2web的pvc创建
资源清单 apiVersion: v1kind: PersistentVolumeClaimmetadata:name: pvc-nfsspec:storageClassName: nfs-slowaccessModes:- ReadWriteOnceresources:requests:storage: 4Gi
创建 [rootk8s-master cc]# kubectl create -f pvc-nfs.yaml persistentvolumeclaim/pvc-nfs created[rootk8s-master cc]# kubectl get pvcNAME STATUS VOLUME CAPACITY ACCESS MODES STORAGECLASS AGEpvc-nfs Bound pv-nfs 7Gi RWO nfs-slow 9s
3修改deployment资源清单 volumes:- name: pesdistpersistentVolumeClaim:claimName: pvc-nfs
重新创建 [rootk8s-master cc]# kubectl delete -f web-deployment.yaml [rootk8s-master cc]# kubectl create -f web-deployment.yaml
4测试 [rootk8s-master cc]# curl 172.16.85.236!DOCTYPE htmlhtml langenheadmeta charsetUTF-8link relicon href/favicon.icometa nameviewport contentwidthdevice-width, initial-scale1.0titleVite App/titlescript typemodule crossorigin src/assets/index-C4kAShR5.js/scriptlink relstylesheet crossorigin href/assets/index-CSz7ARPP.css/headbodydiv idapp/div/body/html
2、java部分
1java的pv创建
资源清单 apiVersion: v1kind: PersistentVolumemetadata:name: java-pv-nfsspec:capacity:storage: 7GivolumeMode: FilesystemaccessModes:- ReadWriteOncepersistentVolumeReclaimPolicy: RecyclestorageClassName: nfs-slownfs:path: /root/pes/java/srcserver: 10.0.0.99
创建 [rootk8s-master cc]# kubectl create -f java-pv-nfs.yaml
2java的pvc创建
资源清单 apiVersion: v1kind: PersistentVolumeClaimmetadata:name: java-pvc-nfsspec:storageClassName: nfs-slowaccessModes:- ReadWriteOnceresources:requests:storage: 4Gi
创建 [rootk8s-master cc]# kubectl create -f java-pvc-nfs.yaml
3修改deployment资源清单 volumes:- name: pesjavapersistentVolumeClaim:claimName: java-pvc-nfs
重新创建 [rootk8s-master cc]# kubectl delete -f java-deployment.yaml [rootk8s-master cc]# kubectl create -f java-deployment.yaml
4测试 [rootk8s-master cc]# curl 172.16.85.243:8080{code:20002,msg:账号不存在或密码错误}[rootk8s-master cc]#
3、mysql部分
1mysql的pv创建
资源清单 apiVersion: v1kind: PersistentVolumemetadata:name: mysql-pv-nfsspec:capacity:storage: 7GivolumeMode: FilesystemaccessModes:- ReadWriteOncepersistentVolumeReclaimPolicy: RecyclestorageClassName: nfs-slownfs:path: /root/pes/mysql/dataserver: 10.0.0.99
创建 [rootk8s-master cc]# kubectl create -f mysql-pv-nfs.yaml
2mysql的pvc创建
资源清单 apiVersion: v1kind: PersistentVolumeClaimmetadata:name: mysql-pvc-nfsspec:storageClassName: nfs-slowaccessModes:- ReadWriteOnceresources:requests:storage: 4Gi
创建 [rootk8s-master cc]# kubectl create -f mysql-pvc-nfs.yaml
3修改deployment资源清单 volumes:- name: localtimepersistentVolumeClaim:claimName: mysql-pvc-nfs
重新创建 [rootk8s-master cc]# kubectl delete -f mysql-deployment.yaml [rootk8s-master cc]# kubectl create -f mysql-deployment.yaml
4测试 [rootk8s-master cc]# mysql -h172.16.85.242 -uzhangmin -pzhangminWelcome to the MariaDB monitor. Commands end with ; or \g.Your MySQL connection id is 2Server version: 5.7.44 MySQL Community Server (GPL)Copyright (c) 2000, 2018, Oracle, MariaDB Corporation Ab and others.Type help; or \h for help. Type \c to clear the current input statement.MySQL [(none)]
4、最终测试 [rootk8s-master cc]# kubectl get pvNAME CAPACITY ACCESS MODES RECLAIM POLICY STATUS CLAIM STORAGECLASS REASON AGEjava-pv-nfs 7Gi RWO Recycle Bound default/java-pvc-nfs nfs-slow 60mmysql-pv-nfs 7Gi RWO Recycle Bound default/mysql-pvc-nfs nfs-slow 40mpv-nfs 7Gi RWO Recycle Bound default/pvc-nfs nfs-slow 74m[rootk8s-master cc]# kubectl get pvcNAME STATUS VOLUME CAPACITY ACCESS MODES STORAGECLASS AGEjava-pvc-nfs Bound java-pv-nfs 7Gi RWO nfs-slow 60mmysql-pvc-nfs Bound mysql-pv-nfs 7Gi RWO nfs-slow 40mpvc-nfs Bound pv-nfs 7Gi RWO nfs-slow 74m
五、优化2ingress部分
1、创建web的ingress
资源清单 apiVersion: networking.k8s.io/v1kind: Ingressmetadata:name: web-ingressnamespace: defaultspec:ingressClassName: nginxrules:- host: wp-web.comhttp:paths:- path: /pathType: ImplementationSpecificbackend:service:name: web-serviceport:number: 80
创建 [rootk8s-master cc]# kubectl create -f web-ingress.yaml
2、最终测试 [rootk8s-master cc]# kubectl get ingressNAME CLASS HOSTS ADDRESS PORTS AGEweb-ingress nginx wp-web.com 80 20m