zoukankan      html  css  js  c++  java
  • K8S中部署wordpress

    K8S中部署wordpress

    省略了storageclass的部署过程。详情参考 Storageclass 外挂NFS配置与应用

    1.创建名称空间

    kubectl create ns wordpress
    

    2.部署数据库

    2.1 创建pvc

    使用pvc,申请一个pv;从storageClassName: managed-nfs-storage中获取。pv的名称为

    cat 0-mysql-pvc.yaml 
    apiVersion: v1
    kind: PersistentVolumeClaim
    metadata:
      name: mysql-pv-claim
      namespace: wordpress
    spec:
      storageClassName: managed-nfs-storage
      accessModes:
        - ReadWriteMany
      resources:
        requests:
          storage: 2Gi
    
    

    2.2 创建mysql POD

    有状态应用建议使用StatefulSet控制器

    cat 1-mysql.yaml 
    # 创建pod
    apiVersion: v1
    kind: Pod
    metadata:
      name: wp-mysql
      namespace: wordpress
      labels:
        app: wp-mysql
    spec:
      containers:
      - name: mysql
        image: mysql:5.7
        imagePullPolicy: IfNotPresent
        ports:
        - containerPort: 3306
          name: dbport
        env:
        - name: MYSQL_ROOT_PASSWORD
          value: gong.123
        - name: MYSQL_DATABASE
          value: wordpress
        - name: MYSQL_USER
          value: wordpress
        - name: MYSQL_PASSWORD
          value: wordpress
        volumeMounts:
        - name: db
          mountPath: /var/lib/mysql
      volumes:
      - name: db
        persistentVolumeClaim:
          claimName: mysql-pv-claim
    

    2.3 暴露mysql的svc

    cat 2-mysql-svc.yaml 
    apiVersion: v1
    kind: Service
    metadata:
      labels:
        app: wp-mysql
      name: wp-mysql-svc
      namespace: wordpress
    spec:
      ports:
      - port: 3306
        protocol: TCP
        targetPort: 3306
      selector:
        app: wp-mysql
    

    3.部署wordpress

    3.1 创建pvc

    cat wp-storage.yaml 
    apiVersion: v1
    kind: PersistentVolumeClaim
    metadata:
      name: wp-storage
      namespace: wordpress
    spec:
      storageClassName: managed-nfs-storage
      accessModes:
        - ReadWriteMany
      resources:
        requests:
          storage: 2Gi
    

    3.2 创建deployment资源的wordpress

    cat wordpress-dp.yaml 
    apiVersion: apps/v1
    kind: Deployment
    metadata:
      name: wordpress
      namespace: wordpress
    spec:
      selector:
        matchLabels:
          app: wordpress
      replicas: 1
      template:
        metadata:
          labels:
            app: wordpress
        spec:
          containers:
          - name: wordpress
            image: wordpress
            imagePullPolicy: IfNotPresent 
            ports:
            - containerPort: 80
            env:
            - name: WORDPRESS_DB_HOST
              value: wp-mysql-svc:3306 
            - name: WORDPRESS_DB_USER
              value: wordpress
            - name: WORDPRESS_DB_PASSWORD
              value: wordpress
            volumeMounts:
            - name: wp-storage
              mountPath: /var/www/html
          volumes:
          - name: wp-storage
            persistentVolumeClaim:
              claimName: wp-storage
    

    3.3 暴露wordpress端口

    kubectl expose -n wordpress deployment wordpress --type=NodePort --port=8081 --target-port=80 --name=wp-svc
    
  • 相关阅读:
    monorepo使用教程
    pnpm教程
    Vite 从入门到精通,玩转新时代前端构建法则
    browserslist 目标浏览器配置表
    VS项目属性的一些配置项的总结
    FastAPI入门教程(持续更新中)
    FastAPI 学习之路(六十)打造系统的日志输出
    FastAPI 学习之路(六十一)使用mysql数据库替换sqlite数据库
    FastAPI 学习之路(五十九)封装统一的json返回处理工具
    FastAPI 学习之路(五十八)对之前的代码进行优化
  • 原文地址:https://www.cnblogs.com/gshelldon/p/15792712.html
Copyright © 2011-2022 走看看