使用k8s部署一个简单MySQL8服务,但是不能挂载
创建mysql的yaml文件。
·
-
创建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>
更多推荐
已为社区贡献7条内容
所有评论(0)