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
    
  • 相关阅读:
    [更新]一份包含: 采用RSA JWT(Json Web Token, RSA加密)的OAUTH2.0,HTTP BASIC,本地数据库验证,Windows域验证,单点登录的Spring Security配置文件
    fstab文件详解
    Struts2与Spring的Maven依赖冲突
    maven正确的集成命令-U -B 等
    CentOS6安装Jenkins
    CentOS6下Jenkins连接Git服务器出错的问题
    GitLab备份的创建与恢复
    开发App到上架应用市场需要经历什么?
    阅读笔记:A Few useful things to Know About machine Learning
    Feature Tools 简介
  • 原文地址:https://www.cnblogs.com/gshelldon/p/15792712.html
Copyright © 2011-2022 走看看