原文:https://www.cnblogs.com/wenkuna/p/16985512.html
创建数据存储PV、PVC
这里我们使用nfs作为storageclass,具体yaml文件如下:
yaml# 创建PV apiVersion: v1 kind: PersistentVolume metadata: name: mysql spec: storageClassName: manual capacity: storage: 20Gi accessModes: - ReadWriteOnce persistentVolumeReclaimPolicy: Retain nfs: path: /home/k8s/data/mysql # 指定nfs的挂载点 server: 20.20.20.200 # 指定nfs服务地址 --- #创建PVC apiVersion: v1 kind: PersistentVolumeClaim metadata: name: mysql spec: storageClassName: manual accessModes: - ReadWriteOnce resources: requests: storage: 20Gi
创建MySQL数据库,以及SVC
shell➜ kubectl apply -f svc.yam ➜ kubectl apply -f mysql-app.yamlyaml
# 创建MySQL数据库 apiVersion: apps/v1 kind: Deployment metadata: name: mysql spec: selector: matchLabels: app: mysql strategy: type: Recreate template: metadata: labels: app: mysql spec: containers: - image: mysql name: mysql env: - name: MYSQL_ROOT_PASSWORD # 生产环境中请使用 secret value: password ports: - containerPort: 3306 name: mysql volumeMounts: - name: mysql mountPath: /var/lib/mysql volumes: - name: mysql persistentVolumeClaim: claimName: mysql --- # 创建SVC apiVersion: v1 kind: Service metadata: name: mysql spec: selector: app: mysql ports: - port: 3306
直接应用以上yaml文件,查看pv、pvc、mysql、svc的创建
shell➜ ~ kubectl get pv NAME CAPACITY ACCESS MODES RECLAIM POLICY STATUS CLAIM STORAGECLASS REASON AGE mysql 20Gi RWO Retain Bound default/mysql manual 19h pvc-bf18ae1f-f53f-44dc-bb46-78472bf8b9e5 8Gi RWO Delete Bound apisix/data-apisix-etcd-0 nfs-client 20h ➜ ~ kubectl get pvc NAME STATUS VOLUME CAPACITY ACCESS MODES STORAGECLASS AGE mysql Bound mysql 20Gi RWO manual 19h nfs-pvc Lost nfs-pv 0 manual 6d1h ➜ ~ kubectl get pods mysql-68c646d9c8-76z6f NAME READY STATUS RESTARTS AGE mysql-68c646d9c8-76z6f 1/1 Running 0 19h # 修改网络类型为NodePort,以便访问 ➜ ~ kubectl get svc mysql NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE mysql NodePort 10.96.26.54 <none> 3306:31171/TCP 19h
测试数据导入
- 测试数据获取入口:test_db
将获取到的测试数据导入到Pod中,并解压。
shellkubectl cp test_db-1.0.7.tar.gz mysql-68c646d9c8-76z6f:/ tar -xvf test_db-1.0.7.tar.gz cd test_db/
将测试数据导入到数据库中
sqlbash-4.4# mysql -u root -p < employees.sql Enter password: ... -- 验证是否导入成功 bash-4.4# mysql -u root -p < test_employees_md5.sql Enter password: ... employees OK ok departments OK ok dept_manager OK ok dept_emp OK ok titles OK ok salaries OK ok computation_time 00:00:13 summary result CRC OK count OK
测试数据库表结构
测试数据连接
- 设置远程登录权限
alter user 'root'@'%' identified with mysql_native_password by'root'; alter user 'root'@'%' identified by 'youpassword';
- 方法二
use mysql; ALTER USER 'root'@'%' IDENTIFIED WITH mysql_native_password BY 'youpassword'; -- 一定要刷新生效 flush privileges;
配置地址端口测试连接:
标签:kubectl,OK,name,Kubernetes,创建,MysQL,nfs,mysql,ok From: https://www.cnblogs.com/bruce1992/p/17732619.html