K8S--安装MySQL8(单机)

这篇具有很好参考价值的文章主要介绍了K8S--安装MySQL8(单机)。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

原文网址:K8S--安装MySQL8(单机)-CSDN博客

简介

本文介绍K8S部署MySQL8(单机)的方法。

-----------------------------------------------------------------------------------------------
分享Java真实高频面试题,吊打面试官: Java后端真实面试题大全 - 自学精灵
分享靠谱的Java高级实战,包含:高并发、架构、全局处理等:JavaWeb高级实战 - 自学精灵
-----------------------------------------------------------------------------------------------

本文的目标

1.通过PV和PVC(hostPath方式)存储MySQL的数据
2.通过Deployment、Service部署MySQL8,并通过NodePort暴露给外部
3.使用Navicat进行测试

官网网址

运行一个单实例有状态应用 | Kubernetes

概述

1.持久化PV存储方式

数据库必须持久化数据,否则节点重启后数据就没了。PV和PVC可以对数据持久化,支持多种方式:
hostPath、NFS、RDB等等。数据要节点共享的,否则如果节点在其他机器上启动了,就无法访问到数据了。所以,生产环境一般采用这些方式:NFS挂载、用云服务器的RDB等。

本文为了简单,只部署一个MySQL节点,使用hostPath方式,不支持节点共享。

2.持久化PV分配方式

本文我直接手动预先创建。生产环境应该通过StorageClass采用Dynamic Provisioning。

3.数据库高可用

数据库一般要配置主从或者集群,实现高可用。一般使用StatefulSet部署,StatefulSet用于管理有状态应用的负载均衡,管理一组Pod的实现、扩容、缩容,并保证它们的顺序和唯一性。

StatefulSets维护的Pod有唯一的、持久的身份和稳定的主机名,不用管它们位于哪个节点上。即使StatefulSet中的Pod发生故障,存储卷与新Pod进行匹配也很容易。

1.创建PV和PVC存储

先创建目录:

mkdir -p /work/devops/k8s/app/mysql/mnt

创建名为 pv.yaml的文件,内容如下:

apiVersion: v1
kind: PersistentVolume
metadata:
  name: mysql-pv
  namespace: db
  labels:
    type: db-pv
spec:
  storageClassName: manual
  capacity:
    storage: 5Gi
  accessModes:
    - ReadWriteOnce
  hostPath:
    path: "/work/devops/k8s/app/mysql/mnt"
---
apiVersion: v1
kind: PersistentVolumeClaim
metadata:
  name: mysql-pvc
  namespace: db
spec:
  storageClassName: manual
  accessModes:
    - ReadWriteOnce
  resources:
    requests:
      storage: 5Gi

创建pv:

kubectl apply -f pv.yaml

查看PV

kubectl get pv mysql-pv

 结果:(创建成功)

K8S--安装MySQL8(单机),K8S,k8s

查看PVC

kubectl get pvc -A

或者

get pvc mysql-pvc -n db

结果 (创建成功,绑定到了mysql-pv)

K8S--安装MySQL8(单机),K8S,k8s

2.创建MySQL应用

1.创建命名空间

用于数据库相关应用。

创建名为db-namespace.yaml的文件,内容如下:

# 创建命名空间
apiVersion: v1
kind: Namespace
metadata:
  name: db
  labels:
    name: db

执行命令创建它:

kubectl apply -f db-namespace.yaml

2.创建MySQL应用

这里用Configmap配置MySQL、用Deployment部署mysql镜像、用Service将MySQL暴露出来。

这里只能用ConfigMap,因为PV不能挂载单个文件,只能挂载目录。ConfigMap可以单独挂载配置文件。(想要挂载单个文件可以用hostPath方式)。

创建名为k8s.yaml的文件,内容如下:

apiVersion: v1
kind: ConfigMap
metadata:
  name: mysql-config
  namespace: db
data:
  my.cnf: |-
    [client]
    default-character-set=utf8mb4
     
    [mysql]
    default-character-set=utf8mb4
     
    [mysqld]
    #服务端口号 默认3306
    port=3306
     
    # 数据路径,默认是/var/lib/mysql/
    #datadir = /app/data/
     
    init_connect='SET NAMES utf8mb4'
    character-set-server=utf8mb4
    collation-server=utf8mb4_unicode_ci
     
    # 最大连接数
    max_connections=200
     
    # 连接失败的最大次数。防止有人从该主机试图攻击数据库系统
    max_connect_errors=20
 
    # 创建新表时将使用的默认存储引擎
    default-storage-engine=INNODB
    
---
apiVersion: apps/v1
kind: Deployment
metadata:
  name: mysql-deployment
  namespace: db
spec:
  replicas: 1
  selector:
    matchLabels:
      name: mysql
  template:
    metadata:
      labels:
        name: mysql
    spec:
      containers:
        - name: mysql8
          image: mysql:8.0
          imagePullPolicy: IfNotPresent
          ports:
            - containerPort: 3306
          env:
            - name: TZ
              value: Asia/Shanghai
            - name: MYSQL_ROOT_PASSWORD
              value: "123456"
            - name: MYSQL_USER
              value: admin
            - name: MYSQL_PASSWORD
              value: "222333"
          volumeMounts:
            - name: volume
              mountPath: /var/lib/mysql/
              subPath: data
            - name: volume
              mountPath: /var/log/mysql/
              subPath: log
            - name: config
              mountPath: /etc/mysql/conf.d/my.cnf
              # subPath: my.cnf  #有的镜像必须指定subPath才能成功,比如nacos。
      volumes:
      - name: volume
        persistentVolumeClaim:
          claimName: mysql-pvc
      - name: config
        configMap:
          name: mysql-config
---
apiVersion: v1
kind: Service
metadata:
  name: mysql-service
  namespace: db
  labels:
    app: mysql
spec:
  type: NodePort
  ports:
  - port: 3306
    targetPort: 3306
    nodePort: 30005
  selector:
    name: mysql

查看结果(已成功启动)

kubectl get pods -A

结果

K8S--安装MySQL8(单机),K8S,k8s

3.用Navicat测试

用Navicat测试连接:(连接成功)

K8S--安装MySQL8(单机),K8S,k8s文章来源地址https://www.toymoban.com/news/detail-810000.html

到了这里,关于K8S--安装MySQL8(单机)的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • CentOS安装k8s单机/集群及一些命令

    目录 前言 1. 安装docker 2. 安装要求 3.准备网络(如果只装单机版可跳过此部) 4. 准备工作 5. 安装 5.1. 配置阿里云yum k8s源 5.2 安装kubeadm、kubectl和kubelet 5.3 初始化,只在master执行,子节点不要执行 5.3.1 一些错误(没有错误直接忽略) 5.4 使用kubectl工具 5.5 子节点加入(单机

    2024年01月17日
    浏览(44)
  • Kubernetes(k8s)上搭建一主两从的mysql8集群

    本文章视频教程地址:https://www.bilibili.com/video/BV1iw411e7ZE/ 首先你需要准备一个kubernetes集群和一台nfs服务器,为了方便,我就用 k8s-master 来做nfs服务器了。我的服务器IP地址和用途如图: IP地址 主机名 用途 192.168.1.160 k8s-master Kubernetes主服务器兼nfs服务器 192.168.1.161 K8s-node01 Ku

    2024年02月06日
    浏览(53)
  • 【K8s】:在 Kubernetes 集群中部署 MySQL8.0 高可用集群(1主2从)

    💖The Begin💖点点关注,收藏不迷路💖 Kubernetes 是一个强大的容器编排平台,可以帮助我们管理和部署容器化应用。MySQL 是一个流行的关系型数据库,在生产环境中通常需要高可用性和数据持久性。 本文将介绍如何在 Kubernetes 中部署 MySQL 集群,以确保数据的高可用性和持久

    2024年04月17日
    浏览(49)
  • 单机部署K8S集群

    1 系统准备 操作系统: Kubernetes 支持多种Linux发行版,包括但不限于 CentOS、Ubuntu、RHEL等。通常建议使用稳定版本,并且是 64位系统 。我这里使用的是CentOS 8.1版本  硬件配置: 内存(RAM): 每台机器至少需要2GB或更多 ,具体需求根据集群规模和应用程序负载来定。 CPU核心数

    2024年02月20日
    浏览(40)
  • K8S如何部署Redis(单机、集群)

    在今天的讨论中,我们将深入研究如何将Redis数据库迁移到云端,以便更好地利用云计算的优势提高数据管理的灵活性。 Redis(Remote Dictionary Server)是一个开源的、基于内存的数据结构存储系统,它可以用作数据库、缓存和消息代理。Redis支持多种数据结构,如字符串、列表、集

    2024年02月11日
    浏览(42)
  • Kubernetes(K8S)单机版部署

    1.虚拟机部署Kubernetes(K8S)_生骨大头菜的博客-CSDN博客,首先按照这里部署好k8s服务,但是只需要部署一台master服务器就可以 2.默认k8s的master节点是不能跑pod的业务,需要执行以下命令解除限制 3. 如果需要保留其他子节点但是想将pod调度到master节点上,可以进行上述命令后

    2024年02月11日
    浏览(60)
  • 搭建单机版K8S运行Flink集群

    环境要求 操作系统: CentOS 7.x 64位 Kubernetes版本:v1.16.2 Docker版本:19.03.13-ce Flink版本:1.14.3 使用中国YUM及镜像源  1.安装Kubernetes: 1.1 创建文件:/etc/yum.repos.d/kubernetes.repo,内容如下: 1.2  执行安装命令:  1.3 启动kubelet服务并设置开机自启: 2.安装Docker: 2.1 创建文件:

    2023年04月26日
    浏览(48)
  • Centos7部署单机版K8S

    2024年02月04日
    浏览(58)
  • 服务器-Kubernetes (K8S)单机部署实战 -- 001

         本篇博文是 centos 7 系统安装 kubernetes 单机 master 节点操作。 一: 查看 服务器 配置信息       1. 执行命令查看服务器cpu信息。安装 kubernetes 服务,cpu核心数必须大于2,内存大于2G。       2.  修改服务器设置信息,避免安装出现问题。         a.  临时关闭swap,防止

    2024年02月19日
    浏览(58)
  • K8S Helm安装RocketMQ standalone单机版,配置外网地址注册到nameserver中方便本地开发

    rocketmq 3.0.2 · sir5kong/rocketmq helm repo add rocketmq https://helm-charts.itboon.top/rocketmq helm pull rocketmq/rocketmq tar -xvf rocketmq-3.0.2.tgz 修改这个无效 /root/rocketmq/rocketmq/templates/broker/configmap.yaml 文件头有注释 {{/* 3.0 废弃 */}} 修改外网配置namesrvAddr、brokerIP1、listenPort vi /root/rocketmq/rocketmq/template

    2024年02月03日
    浏览(61)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包