步骤1:创建MySQL
WordPress需配合MySQL一起使用,WordPress运行内容管理程序,MySQL作为数据库存储数据。
前提条件
已创建一个包含4核8G节点的CCE集群。创建集群的方法,请参见快速创建Kubernetes集群。
通过控制台创建MySQL
- 登录CCE控制台。
- 单击集群进入集群控制台。
- 在左侧菜单栏选择“工作负载”,单击右上角“创建负载”。
- 填写工作负载参数。
基本信息
- 负载类型:选择无状态负载。
- 负载名称:mysql。
- 命名空间:default。
- 实例数量:本例中修改数量为1。
图1 mysql工作负载基本信息
容器配置
在基本信息中单击“选择镜像”,在弹出的窗口中选择“镜像中心”,并搜索“mysql”,选择mysql镜像,并设置镜像版本为“5.7”。
图2 选择镜像版本
在环境变量下添加如下环境变量,此处一共需要设置四个环境变量。您可以在MySQL查看MySQL可以设置哪些环境变量。
- MYSQL_ROOT_PASSWORD:MySQL的root用户密码。
- MYSQL_DATABASE:镜像启动时要创建的数据库名称。
- MYSQL_USER:数据库用户名称。
- MYSQL_PASSWORD:数据库用户密码。
图3 设置环境变量
服务配置
单击服务配置下的加号,创建服务(Service),用于从WordPress访问MySQL。
访问类型选择集群内访问(ClusterIP),服务名称设置为mysql,容器端口和服务端口都配置为3306,单击“确定”。
mysql镜像的默认访问端口默认为3306,所以容器端口的ID设置为3306,访问端口可以设置为其他端口号,但这里也设置成3306是为了方便使用。
这样在集群内部,通过服务名称:访问端口就可以访问MySQL负载,也就是mysql:3306。
图4 创建服务
- 单击右下角“创建工作负载”。
等待工作负载创建成功。
创建成功后在无状态负载下会显示一个运行中的工作负载。
图5 mysql负载创建成功
通过kubectl创建MySQL
本步骤指导您通过kubectl创建一个无状态工作负载(Deployment),并通过集群内访问类型Service将负载公开,使得其能在集群内通过Service访问。
- 请参见通过kubectl连接集群,使用kubectl连接集群。
- 创建一个名为mysql-deployment.yaml的描述文件。其中,mysql-deployment.yaml为自定义名称,您可以随意命名。
vi mysql-deployment.yaml
apiVersion: apps/v1 kind: Deployment metadata: name: mysql namespace: default spec: replicas: 1 selector: matchLabels: app: mysql version: v1 template: metadata: labels: app: mysql version: v1 spec: containers: - name: container-1 image: mysql:5.7 env: - name: MYSQL_ROOT_PASSWORD value: password@123 - name: MYSQL_DATABASE value: database - name: MYSQL_USER value: db_user - name: MYSQL_PASSWORD value: password@123 resources: requests: cpu: 250m memory: 512Mi limits: cpu: 250m memory: 512Mi imagePullSecrets: - name: default-secret
- 创建MySQL。
kubectl apply -f mysql-deployment.yaml
回显如下表示已开始创建deployment。
deployment "mysql" created
查看deployment状态。
kubectl get deployment
deployment状态显示为Running,表示deployment已创建成功。
NAME READY UP-TO-DATE AVAILABLE AGE mysql 1/1 1 1 4m5s
- 创建一个名为mysql-service.yaml的描述文件。其中,mysql-service.yaml为自定义名称,您可以随意命名。
vi mysql-service.yaml
apiVersion: v1 kind: Service metadata: name: mysql namespace: default spec: selector: app: mysql version: v1 ports: - name: cce-service-0 targetPort: 3306 nodePort: 0 port: 3306 protocol: TCP type: ClusterIP
- 创建服务。
kubectl create -f mysql-service.yaml
回显如下,表示服务已创建。
service/mysql created
kubectl get svc
回显如下,表示工作负载访问方式已设置成功,工作负载可访问。
NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE kubernetes ClusterIP 10.247.0.1 <none> 443/TCP 3d mysql ClusterIP 10.247.202.20 <none> 3306/TCP 51s