• 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
    
  • 相关阅读:
    Vue 子组件接收父组件的值
    Vue 子组件调用父组件的方法
    dedecms大量删除文章后,列表页显示错误修复办法
    怎么才能快速的删除指定栏目、指定日期、指定id之间的织梦文章内容?
    怎么才能快速的彻底删除织梦文章内容?
    织梦删除专题,删除文章时出现错误inc_batchup.php on line 17 如何解决?
    windows环境下更改Mysql数据库存储位置的具体步骤
    JsonP原理
    建一个别人打不开的文件夹
    Dos环境变量修改
  • 原文地址:https://www.cnblogs.com/gshelldon/p/15792712.html
Copyright © 2020-2023  润新知