当前位置: 首页 > article >正文

使用k8s部署一个简单MySQL8服务,但是不能挂载

  • 创建mysql的yaml文件

    cat << eof > mysql.yaml
    apiVersion: apps/v1                          # 通过kubectl explain deployment命令查看版本
    kind: Deployment                             # 资源类型
    metadata:
      name: mysql-deployment                     # 资源名称
      namespace: mysql                           # 指定命名空间
    spec:
      replicas: 1                                # 控制器下的pod数
      selector:
        matchLabels:
          app: mysql                             # 这是控制器用来控制pod的标签
      template:
        metadata:
          labels:
            app: mysql                           # pod的标签
        spec:
          containers:
            - name: mysql                        # 容器名
              image: mysql:8.0.20                # 容器镜像
              env:                               # mysql环境参数
              - name: MYSQL_ROOT_PASSWORD        # 指定ROOT用户密码
                value: "@Qv110119"
              ports:                             # 容器暴露的端口
              - name: mysql
                containerPort: 3306
    #          volumeMounts:                      # 容器内的被挂载目录
    #          - name: mysql-data
    #            mountPath: /var/lib/mysql
    #          - name: mysql-conf
    #            mountPath: /etc/my.cnf
    #      volumes:                               # 声明volume(宿主机目录), name为logs-volume
    #      - name: mysql-data
    #        nfs:
    #          server: 192.168.174.30             # nfs服务器地址
    #          path: /root/nfs/mysql/data         # 共享文件路径(服务器地址)            
    ---
    apiVersion: v1
    kind: Service
    metadata:
      name: mysql-nodeport
      namespace: mysql
    spec:
      selector:
        app: mysql                               # 服务通过此标签连接deployment资源来暴露端口
      type: NodePort                             # 服务类型:NodePort
      ports:                                     # 不指定NodePort端口就会自动分配,(默认的取值范围是:30000-32767)
      - protocol: TCP
        port: 3306
        targetPort: 3306
    eof
  • 创建mysq应用:

    kubectl apply -f mysql.yaml
  • 查看pod:

    [root@master mysql]# kubectl get deployment,pod,svc -n mysql
    NAME                               READY   UP-TO-DATE   AVAILABLE   AGE
    deployment.apps/mysql-deployment   1/1     1            1           7m57s
    deployment.apps/nginx              1/1     1            1           15d
    ​
    NAME                                   READY   STATUS    RESTARTS   AGE
    pod/mysql-deployment-b68b5b8bc-jps5c   1/1     Running   0          7m57s
    pod/nginx-6867cdf567-phn5l             1/1     Running   1          148m
    ​
    NAME                     TYPE        CLUSTER-IP       EXTERNAL-IP   PORT(S)          AGE
    service/kubernetes       ClusterIP   10.96.0.1        <none>        443/TCP          15d
    service/mysql-nodeport   NodePort    10.98.118.107    <none>        3306:30160/TCP   7m57s
    service/nginx            NodePort    10.103.194.224   <none>        80:30105/TCP     15d
  • 远程连接:

    [root@localhost ~]# mysql -h192.168.174.30 -P30160 -uroot -p
    Enter password: 
    Welcome to the MySQL monitor.  Commands end with ; or \g.
    Your MySQL connection id is 8
    Server version: 8.0.20 MySQL Community Server - GPL
    ​
    Copyright (c) 2000, 2023, Oracle and/or its affiliates.
    ​
    Oracle is a registered trademark of Oracle Corporation and/or its
    affiliates. Other names may be trademarks of their respective
    owners.
    ​
    Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
    ​
    mysql> 


http://www.kler.cn/news/136741.html

相关文章:

  • Qt 断开信号槽的方式
  • Python异步编程:使用`asyncio`和`aiofiles`进行高效的文件批量写入
  • SIP 业务举例之 Call Forwarding - No Answer(无应答呼叫转移)
  • 【python实操】python小程序之参数化以及Assert(断言)
  • JS补原型链
  • 数组中的算法
  • 二十三种设计模式全面解析-职责链模式的高级应用-日志记录系统
  • Linux文本处理工具awk用法总结
  • python 对比数据库,生成sql
  • 大型 APP 的性能优化思路
  • 【STL】string类 (上) <vector>和<list>的简单使用
  • 为什么几乎所有的量化交易都用Python?
  • Vue项目Jenkins自动化部署
  • python实战—数据分析与图表1(QQ群聊天数据分析) lv2
  • android生成jks文件
  • 放大招:腾讯云5年服务器和3年轻量应用服务器租用价格表
  • 高压放大器使用方法介绍
  • 【Spring Boot】使用WebSocket协议完成来单提醒及客户催单功能
  • 【rosrun diagnostic_analysis】报错No module named rospkg | ubuntu 20.04
  • 对OpenAI CEO奥特曼突然被解雇事件的一些分析
  • DCDC同步降压控制器SCT82A30\SCT82630
  • RoCE、IB和TCP等网络的基本知识及差异对比
  • 用平板当电脑副屏(spacedesk)双端分享
  • 安装2023最新版PyCharm来开发Python应用程序
  • 【日常】爬虫技巧进阶:textarea的value修改与提交问题(以智谱清言为例)
  • Tomcat无法映射到activiti-app导致activiti无法启动页面