14 - 实战三
部署 WordPress
因为 MySQL 由 Deployment 改成了 StatefulSet,所以我们要修改 YAML,添加“serviceName”“volumeClaimTemplates”这两个字段,定义网络标识和 NFS 动态存储卷,然后在容器部分用“volumeMounts”挂载到容器里的数据目录“/var/lib/mysql”。
YAML apiVersion: apps/v1 kind: StatefulSet metadata: name: wp-mysql labels: app: wordpress role: database spec: serviceName: wp-mysql-svc # 跟 service name 一致 volumeClaimTemplates: # PVC 模板 - metadata: name: wp-mysql-pvc spec: storageClassName: nfs-client-retained accessModes: - ReadWriteMany resources: requests: storage: 100Mi replicas: 1 minReadySeconds: 30 selector: matchLabels: app: wp-mysql template: metadata: labels: app: wp-mysql spec: containers: - name: wp-mysql image: mysql:5.7 imagePullPolicy: IfNotPresent resources: limits: cpu: 1 memory: 2048Mi requests: cpu: 500m memory: 500Mi startupProbe: periodSeconds: 15 tcpSocket: port: 3306 livenessProbe: periodSeconds: 10 tcpSocket: port: 3306 readinessProbe: periodSeconds: 15 tcpSocket: port: 3306 ports: - containerPort: 3306 envFrom: - prefix: 'MYSQL_' configMapRef: name: mysql-cm volumeMounts: - name: wp-mysql-pvc mountPath: /var/lib/mysql
|
改完 MySQL,我们还要再对 WordPress 做一点小修改。 StatefulSet 管理的每个 Pod 都有自己的域名,所以要把 WordPress 的环境变量改成 MySQL 的新名字,也就是“wp-mysql-0.wp-mysql-svc”:
改完这两个 YAML,我们就可以逐个创建 MySQL、WordPress、Ingress 等对象了。
YAML kubectl apply -f mysql-dep.yaml kubectl apply -f wp-dep.yaml
|
部署后就可以通过 NodePort 或是 ingress 来访问 WordPress 了
【声明】本内容来自华为云开发者社区博主,不代表华为云及华为云开发者社区的观点和立场。转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息,否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱:
cloudbbs@huaweicloud.com
评论(0)