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


    • 创建mysql的yaml文件

      1. cat << eof > mysql.yaml
      2. apiVersion: apps/v1                          # 通过kubectl explain deployment命令查看版本
      3. kind: Deployment                             # 资源类型
      4. metadata:
      5. name: mysql-deployment                     # 资源名称
      6. namespace: mysql                           # 指定命名空间
      7. spec:
      8. replicas: 1                                # 控制器下的pod数
      9. selector:
      10.   matchLabels:
      11.     app: mysql                             # 这是控制器用来控制pod的标签
      12. template:
      13.   metadata:
      14.     labels:
      15.       app: mysql                           # pod的标签
      16.   spec:
      17.     containers:
      18.       - name: mysql                        # 容器名
      19.         image: mysql:8.0.20                # 容器镜像
      20.         env:                               # mysql环境参数
      21.         - name: MYSQL_ROOT_PASSWORD        # 指定ROOT用户密码
      22.           value: "@Qv110119"
      23.         ports:                             # 容器暴露的端口
      24.         - name: mysql
      25.           containerPort: 3306
      26. #         volumeMounts:                     # 容器内的被挂载目录
      27. #         - name: mysql-data
      28. #           mountPath: /var/lib/mysql
      29. #         - name: mysql-conf
      30. #           mountPath: /etc/my.cnf
      31. #     volumes:                               # 声明volume(宿主机目录), name为logs-volume
      32. #     - name: mysql-data
      33. #       nfs:
      34. #         server: 192.168.174.30             # nfs服务器地址
      35. #         path: /root/nfs/mysql/data         # 共享文件路径(服务器地址)            
      36. ---
      37. apiVersion: v1
      38. kind: Service
      39. metadata:
      40. name: mysql-nodeport
      41. namespace: mysql
      42. spec:
      43. selector:
      44.   app: mysql                               # 服务通过此标签连接deployment资源来暴露端口
      45. type: NodePort                             # 服务类型:NodePort
      46. ports:                                     # 不指定NodePort端口就会自动分配,(默认的取值范围是:30000-32767)
      47. - protocol: TCP
      48.   port: 3306
      49.   targetPort: 3306
      50. eof
    • 创建mysq应用:

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

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

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

  • 相关阅读:
    ES6对箭头函数的理解
    Docker系列---【mysql容器手动停止后,重启服务器,mysql容器被删掉了,如何恢复mysql数据?】...
    Git(9)——Git多人协同开发之创建初始项目
    IP行业API助力于网络分析和数据挖掘
    为什么学了PMBOK,考了PMP证书还是管不好项目?
    算法---分组的最大数量
    前端基础建设与架构10 代码拆分和按需加载:缩减 bundle size,把性能做到极致
    C++心决之类和对象详解(中篇)(封装入门二阶)
    Java程序员面试大厂95%会被问到的25个问题(附答案)
    图神经网络 | Python基于空间感知图神经网络的数据预测
  • 原文地址:https://blog.csdn.net/qq_56776641/article/details/134512331