k8s部署wordpress+mysql博客平台

该文章详细介绍了如何在Kubernetes(k8s)环境中部署WordPress博客平台,包括准备WordPress-db和WordPress的yaml配置文件,创建命名空间,部署MySQL数据库和WordPress应用,设置Service以及进行访问测试。重点涉及了数据库配置、环境变量的设定和Service的类型选择。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1、yaml文件准备

1.1 wordpress-db.yaml

apiVersion: apps/v1

kind: Deployment

metadata:

  name: mysql

  namespace: wordpress

  labels:

    app: mysql

spec:

  replicas: 1

  selector:

    matchLabels:

      app: mysql

  strategy: {}

  template:

    metadata:

      creationTimestamp: null

      labels:

        app: mysql

    spec:

      containers:

      - image: mysql:5.6

        name: mysql

        imagePullPolicy: IfNotPresent

        ports:

        - containerPort: 3306

          name: dbport

        env:                      #环境编排,进入数据库中创建Wordpress数据库和WordPress用户

        - name: MYSQL_ROOT_PASSWORD

          value: rootPassW0rd

        - name: MYSQL_DATABASE

          value: wordpress

        - name: MYSQL_USER

          value: wordpress

        - name: MYSQL_PASSWORD

          value: wordpress

        volumeMounts:

        - name: db

          mountPath: /var/lib/mysql     #mysql数据存放的容器目录

        resources: {}

      volumes:

      - name: db

        hostPath:

          path: /var/lib/mysql        #   容器目录中的数据映射到本地目录中

status: {}

---

apiVersion: v1

kind: Service

metadata:

  name: mysql

  namespace: wordpress

spec:

  selector:

    app: mysql

  ports:

  - name: mysqlport

    protocol: TCP

    port: 3306

    targetPort: dbport

1.2 wordpress.yaml

注意需要修改文件中连接数据库的ip信息
在这里插入图片描述

apiVersion: apps/v1

kind: Deployment

metadata:

  name: wordpress

  namespace: wordpress

  labels:

    app: wordpress

spec:

  replicas: 1

  selector:

    matchLabels:

      app: wordpress

  strategy: {}

  template:

    metadata:

      creationTimestamp: null

      labels:

        app: wordpress

    spec:

      containers:

      - name: wordpress

        image: wordpress

        imagePullPolicy: IfNotPresent

        ports:

        - containerPort: 80

          name: wdport

        env:

        - name: WORDPRESS_DB_HOST

          value:  10.108.244.58:3306    #连接数据库,这里的ip地址查看mysql启动时的ip

        - name: WORDPRESS_DB_USER

          value: wordpress

        - name: WORDPRESS_DB_PASSWORD

          value: wordpress

status: {}

---

apiVersion: v1

kind: Service

metadata:

  name: wordpress

  namespace: wordpress

spec:

  type: NodePort

  selector:

    app: wordpress

  ports:

  - name: wordpressport

    protocol: TCP

    port: 80

    targetPort: wdport

2、部署安装

2.1 先创建wordpress命名空间

kubectl create ns wordpress

2.2 部署wordpress-db

kubectl apply -f wordpress-db.yaml
kubectl get svc -n wordpress

在这里插入图片描述

2.3部署wordpress

先修改ordpress.yaml文件中的数据库连接信息,使用2.2中mysql服务的CLUSTER-IP地址
在这里插入图片描述

kubectl apply -f wordpress.yaml
kubectl get svc -n wordpress

在这里插入图片描述
可以看到wordpress对外暴露的端口号为30215,node节点是k8s-node1

3、访问测试

我这里用的node1节点http://192.168.2.102:30215/
在这里插入图片描述

使用Kubernetes(简称K8s部署WordPress可以提供高可用性和可扩展性。下面是一个基本的步骤: 1. 配置Kubernetes集群:确保你已经有一个可用的Kubernetes集群,可以使用工具如Minikube、kubeadm或云服务提供商的托管服务。 2. 创建命名空间:为WordPress创建一个命名空间,可以使用以下命令: ``` kubectl create namespace wordpress ``` 3. 创建MySQL数据库:WordPress需要一个MySQL数据库来存储数据。可以使用Kubernetes的StatefulSet来创建一个MySQL实例。创建一个MySQL的配置文件(例如mysql.yaml),示例如下: ```yaml apiVersion: v1 kind: Service metadata: name: mysql namespace: wordpress spec: selector: app: mysql ports: - protocol: TCP port: 3306 targetPort: 3306 --- apiVersion: apps/v1 kind: StatefulSet metadata: name: mysql namespace: wordpress spec: serviceName: mysql replicas: 1 selector: matchLabels: app: mysql template: metadata: labels: app: mysql spec: containers: - name: mysql image: mysql:5.7 env: - name: MYSQL_ROOT_PASSWORD value: your_password_here ports: - containerPort: 3306 name: mysql volumeMounts: - name: mysql-persistent-storage mountPath: /var/lib/mysql volumes: - name: mysql-persistent-storage persistentVolumeClaim: claimName: mysql-pv-claim ``` 使用以下命令创建MySQL实例: ``` kubectl apply -f mysql.yaml ``` 4. 创建WordPress应用:创建一个WordPress的配置文件(例如wordpress.yaml),示例如下: ```yaml apiVersion: v1 kind: Service metadata: name: wordpress namespace: wordpress spec: selector: app: wordpress ports: - protocol: TCP port: 80 targetPort: 80 --- apiVersion: apps/v1 kind: Deployment metadata: name: wordpress namespace: wordpress spec: replicas: 1 selector: matchLabels: app: wordpress template: metadata: labels: app: wordpress spec: containers: - name: wordpress image: wordpress:latest env: - name: WORDPRESS_DB_HOST value: mysql - name: WORDPRESS_DB_PASSWORD value: your_password_here ports: - containerPort: 80 name: wordpress ``` 使用以下命令创建WordPress应用: ``` kubectl apply -f wordpress.yaml ``` 5. 配置Ingress:为了让WordPress可以通过域名访问,需要配置Ingress。创建一个Ingress的配置文件(例如ingress.yaml),示例如下: ```yaml apiVersion: networking.k8s.io/v1beta1 kind: Ingress metadata: name: wordpress-ingress namespace: wordpress spec: rules: - host: your_domain_here http: paths: - path: / backend: serviceName: wordpress servicePort: 80 ``` 使用以下命令创建Ingress: ``` kubectl apply -f ingress.yaml ``` 6. 配置DNS解析:将你的域名解析到Kubernetes集群的Ingress IP地址。 现在,你可以通过访问你的域名来访问WordPress了。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值