当在Kubernetes中搭建MySQL数据库时,可以使用以下示例YAML文件定义所需的资源:
apiVersion: v1
kind: PersistentVolume
metadata:
name: mysql-pv
spec:
capacity:
storage: 128Mi
accessModes:
- ReadWriteOnce
hostPath:
path: /pv/mysql
---
apiVersion: v1
kind: PersistentVolumeClaim
metadata:
name: mysql-pvc
spec:
accessModes:
- ReadWriteOnce
resources:
requests:
storage: 128Mi
---
apiVersion: v1
kind: Service
metadata:
name: mysql-service
spec:
ports:
- protocol: TCP
port: 33306
targetPort: 3306
nodePort: 30000
selector:
app: mysql
type: NodePort
---
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:latest
ports:
- containerPort: 3306
env:
- name: MYSQL_ROOT_PASSWORD
value: "123456"
volumeMounts:
- name: mysql-persistent-storage
mountPath: /var/lib/mysql
volumes:
- name: mysql-persistent-storage
persistentVolumeClaim:
claimName: mysql-pvc
这个示例YAML文件创建了一个MySQL数据库的Deployment和Service,并使用PersistentVolumeClaim定义了一个持久化存储卷,并使用localPath创建了一个PV。
将上述内容保存为一个YAML文件(例如mysql.yaml),然后使用以下命令来创建MySQL资源:
kubectl apply -f mysql.yaml
这将使用Kubernetes创建MySQL Deployment、Service、PersistentVolume和PersistentVolumeClaim,并启动一个MySQL实例。根据配置,MySQL将通过NodePort类型的Service的30000端口暴露给集群外访问,可以在集群外,通过该集群master的IP地址和30000端口访问MySQL数据库。
注:执行上述操作前,请确保已正确安装和配置Kubernetes集群,并且具有足够的权限来创建所需的资源。