(二十三)、k8s(minikube) 部署mysql

1、安装

1.1、环境

docker 部署 minikube,minikube 中部署 mysql
Mac,注意芯片类型 和 workbench 版本适配(workbench最新版 8.0.40,对于image mysql:version, version 的值 M2 版本 8.0.30, Intel 芯片 8.0)

1.2、workbench 崩溃问题

在 MySQL Workbench 中,点击 Help 菜单,然后选择 About MySQL Workbench 查看版本

kubectl exec -it – mysql --version 查看k8s 中 mysql 版本

1.1、deployment.yaml 文件

apiVersion: apps/v1
kind: Deployment
metadata:
  name: mysql-deployment
  labels:
    app: mysql
spec:
  replicas: 1
  selector:
    matchLabels:
      app: mysql
  template:
    metadata:
      labels:
        app: mysql
    spec:
      containers:
      - name: mysql
        image: mysql:8.0  # M2 版本 8.0.30,目前最新 workbench 最高到 8  #非 arm 架构芯片可以写 image: mysql:8.0
        env:
        - name: MYSQL_ROOT_PASSWORD
          value: rootadmin  # 设置 root 用户密码
        ports:
        - containerPort: 3306
        volumeMounts:
        - name: mysql-storage
          mountPath: /var/lib/mysql  # MySQL 数据存储路径
      volumes:
      - name: mysql-storage
        persistentVolumeClaim:
          claimName: mysql-pvc  # 使用 PVC
---
apiVersion: v1
kind: PersistentVolumeClaim
metadata:
  name: mysql-pvc
spec:
  accessModes:
    - ReadWriteOnce
  resources:
    requests:
      storage: 1Gi  # 请求的存储大小
  storageClassName: standard  # 确保与您的 PV 的存储类匹配
---
apiVersion: v1
kind: Service
metadata:
  name: mysql-service
spec:
  type: NodePort  # 设置为 NodePort 类型
  selector:
    app: mysql  # 选择与 Deployment 中相同的标签
  ports:
    - port: 3306  # Service 的端口
      targetPort: 3306  # Pod 中的端口
      nodePort: 30002  # 自定义 NodePort(可选,范围是 30000-32767)

1.2、运行

kubectl apply -f mysql-deployment.yaml         

1.3、启动隧道,从宿主机直接访问 k8s 中的mysql

minikube get services
minikube service mysql-service

2、完整卸载 mysql(pod/deployment/service/pvc)

➜  simpled git:(security) ✗ kubectl get pods                            
NAME                                READY   STATUS    RESTARTS      AGE
mysql-deployment-848886474f-6q94t   1/1     Running   0             3m54s
redis-559d94f9bc-mgfxt              1/1     Running   1 (32m ago)   4h57m
➜  simpled git:(security) ✗ kubectl delete pod mysql-deployment-848886474f-6q94t 
pod "mysql-deployment-848886474f-6q94t" deleted
➜  simpled git:(security) ✗ kubectl get deployments                              
NAME               READY   UP-TO-DATE   AVAILABLE   AGE
mysql-deployment   0/1     1            0           4m19s
redis              1/1     1            1           4h57m
➜  simpled git:(security) ✗ kubectl delete deployment mysql-deployment 
deployment.apps "mysql-deployment" deleted
➜  simpled git:(security) ✗ kubectl get services
NAME            TYPE        CLUSTER-IP      EXTERNAL-IP   PORT(S)          AGE
kubernetes      ClusterIP   10.96.0.1       <none>        443/TCP          5h1m
mysql-service   NodePort    10.106.158.26   <none>        3306:30002/TCP   4m44s
redis-service   NodePort    10.108.203.83   <none>        6379:30001/TCP   4h58m
➜  simpled git:(security) ✗ kubectl delete service mysql-service 
service "mysql-service" deleted
➜  simpled git:(security) ✗ kubectl get pvc
NAME        STATUS   VOLUME                                     CAPACITY   ACCESS MODES   STORAGECLASS   VOLUMEATTRIBUTESCLASS   AGE
mysql-pvc   Bound    pvc-59ff2870-64c4-46ca-a74d-b36380ceca0c   1Gi        RWO            standard       <unset>                 5m20s
➜  simpled git:(security) ✗ kubectl delete mysql-pvc
error: the server doesn't have a resource type "mysql-pvc"
你可以使用Kubernetes(简称K8s)来部署Spring Boot项目和MySQL数据库。下面是一个大致的步骤: 1. 安装和配置Kubernetes集群:首先,你需要安装和配置一个Kubernetes集群。可以使用Minikube(用于本地开发和测试)或者其他云服务商提供的Kubernetes集群。 2. 创建MySQL服务:使用Kubernetes的资源描述文件(比如YAML文件),创建MySQL的Deployment和Service。Deployment定义了如何创建和管理MySQL Pod,而Service则提供了对MySQL Pod的访问。 3. 创建Spring Boot应用的Docker镜像:将你的Spring Boot项目打包成Docker镜像,并上传到一个容器镜像仓库中。你可以使用Dockerfile来定义镜像构建步骤,例如构建和运行Spring Boot应用所需的Java环境。 4. 创建Spring Boot应用的Deployment和Service:使用Kubernetes的资源描述文件,创建Spring Boot应用的Deployment和Service。Deployment定义了如何创建和管理Spring Boot应用的Pod,而Service提供了对Spring Boot应用的访问。 5. 配置Spring Boot应用连接MySQL:在Spring Boot应用的配置文件中,配置数据库连接信息,包括MySQL的主机、端口、用户名、密码等。 6. 部署应用:使用kubectl命令行工具,执行kubectl apply命令来部署MySQL服务和Spring Boot应用。 7. 验证部署:使用kubectl命令行工具,检查Pod和Service的状态,确保MySQL和Spring Boot应用已成功部署并正常运行。 这只是一个大致的步骤,具体实现细节可能因你的环境和需求而有所不同。建议你参考Kubernetes和Docker的官方文档,以及相关的教程和示例代码来进行实际部署
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值