在K3s上部署MySQL的详细步骤

作者:JC2024.01.08 02:35浏览量:9

简介:本篇文章将详细介绍如何在K3s上部署MySQL数据库。我们将通过使用Kubernetes的Deployment和Service资源来部署MySQL,并使用K3s作为Kubernetes的轻量级替代品。

K3s是一个轻量级的Kubernetes实现,适用于边缘计算和物联网场景。如果你想在K3s上部署MySQL数据库,可以按照以下步骤进行操作。
步骤一:在K3s中安装MySQL
首先,确保你的K3s集群已经正常运行。然后,使用以下命令在K3s中部署MySQL。

  1. 创建一个名为mysql-deployment.yaml的文件,并将以下内容粘贴到文件中:
    ```yaml
    apiVersion: apps/v1
    kind: Deployment
    metadata:
    name: mysql-deployment
    spec:
    replicas: 1
    selector:
    matchLabels:
    app: mysql
    template:
    metadata:
    labels:
    app: mysql
    spec:
    containers:
  • name: mysql
    image: mysql:8.0.30-debian
    env:
  • name: MYSQL_ROOT_PASSWORD
    value: password
    ports:
  • containerPort: 3306
    volumeMounts:
  • mountPath: /var/lib/mysql
    name: mysql-data
  • mountPath: /etc/mysql/mysql.conf.d
    name: mysql-config
    volumes:
  • name: mysql-data
    hostPath:
    path: /root/data/mysql
    type: Directory
  • name: mysql-config
    hostPath:
    path: /root/data/mysql-config
    type: Directory
    ```
  1. 在终端中使用以下命令将Deployment部署到K3s中:
    1. k3s kubectl apply -f mysql-deployment.yaml
    步骤二:暴露MySQL服务
    部署完成后,我们需要将MySQL服务暴露出来,以便可以从外部访问它。使用以下命令创建一个名为mysql-service.yaml的文件,并将以下内容粘贴到文件中:
    ```yaml
    apiVersion: v1
    kind: Service
    metadata:
    name: mysql-service
    spec:
    type: NodePort
    selector:
    app: mysql
    ports:
  • protocol: TCP
    port: 3306
    targetPort: 3306
    nNodePort: 40000
    ```
  1. 在终端中使用以下命令将Service部署到K3s中:
    1. k3s kubectl apply -f mysql-service.yaml
    步骤三:验证MySQL服务是否暴露成功
    使用以下命令检查Service的状态:
    1. k3s kubectl get services -o wide | grep mysql-service
    如果输出显示NodePort40000,则表示MySQL服务已成功暴露。你可以尝试从外部访问MySQL服务,并使用你设置的密码进行登录。
    注意事项:由于K3s是一个轻量级的Kubernetes实现,因此可能存在一些限制和差异。请确保在使用K3s之前仔细阅读其文档,并了解其与标准Kubernetes之间的差异。此外,为了安全起见,请始终确保在生产环境中使用最新版本的MySQL和适当的配置选项。