Kubernetes是什么?如何基于它部署MySQL数据库

文 / @WordPress主题

Kubernetes是什么?如何基于它部署MySQL数据库

Kubernetes是一个自动化容器部署、扩展和管理的平台,由Google开源。通过Kubernetes,我们可以创建多个容器,每个容器里面运行一个应用实例,然后通过内置的负载均衡策略,实现对这一组应用实例的管理、发现、访问,而这些细节都不需要运维人员去进行复杂的手工配置和处理。

本文将介绍如何基于Kubernetes部署MySQL数据库。

创建服务Service

创建一个Service为即将部署的MySQL数据库固定连接的IP,同时提供负载均衡。下面是mysql-service.yaml文件的内容:

```
apiVersion:v1
kind:Service
metadata:
name:mysql
spec:
selector:
app:mysql
ports:
-port:3306
```

登录后复制上述配置,创建一个名称为mysql的Service对象,它会将请求代理到使用TCP端口3306,并且具有标签app=mysql的Pod上。

创建资源:

```
kubectl create -f mysql-service.yaml
```

创建持久卷PV

创建一个MySQL的持久卷mysql-pv.yaml。当Pod不再存在时,Kubernetes也会销毁临时卷。不过Kubernetes不会销毁持久卷。

```
apiVersion:v1
kind:PersistentVolume
metadata:
name:mysql-pv
labels:
type:local
spec:
storageClassName:manual
capacity:
storage:20Gi
accessModes:
-ReadWriteOnce #卷可以被一个节点以读写方式挂载
hostPath:
path:"/mnt/data"
```

登录后复制,创建资源:

```
kubectl create -f mysql-pv.yaml
```

创建持久卷声明PVC

持久卷是集群中的资源,而持久卷声明是对这些资源的请求,也被用来执行对资源的声明检查。下面我们将创建名称为mysql-pvc的持久卷声明mysql-pvc.yaml:

```
apiVersion:v1
kind:PersistentVolumeClaim
metadata:
name:mysql-pvc
spec:
storageClassName:manual
accessModes:
-ReadWriteOnce
resources:
requests:
storage:20Gi
```

登录后复制,创建资源:

```
kubectl create -f mysql-pvc.yaml
```

部署MySQL

在3306端口上使用MySQL5.7的镜像创建Pod,mysql-deployment.yaml:

```
apiVersion:apps/v1
kind:Deployment
metadata:
name:mysql
spec:
selector:
matchLabels:
app:mysql
strategy:
type:Recreate
template:
metadata:
labels:
app:mysql
spec:
containers:
- image:mysql:5.7
name:mysql
env:
- name:MYSQL_ROOT_PASSWORD #生产环境中请使用secret
value:password
ports:
- containerPort:3306
name:mysql
volumeMounts:
- name:mysql-data
mountPath:/var/lib/mysql
volumes:
- name:mysql-data
persistentVolumeClaim:
claimName:mysql-pvc
```

登录后复制,创建资源:

```
kubectl create -f mysql-deployment.yaml
```

连接MySQL

使用以下命令连接MySQL:

```
kubectl run -it --rm --image=mysql:5.6 --restart=Never mysql-client -- mysql -h mysql -p password
```

推荐学习:《mysql视频教程》

以上就是Kubernetes是什么?如何基于它部署MySQL数据库的详细内容,更多请关注php中文网其它相关文章!

添加UTHEME为好友
扫码添加UTHEME微信为好友
· 分享WordPress相关技术文章,主题上新与优惠动态早知道。
· 微信端最大WordPress社群,限时免费入群。