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
    
  • 相关阅读:
    技术文章应该怎么写?
    后退时保存表单状态
    [原]长表头表格 竖直仅滚动内容区 水平滚动表头和内容区
    IE7不经提示关闭浏览器窗口
    meta 标记
    demo : 简单的 xslt 递归解析 xml 成 tree
    使用iframe和table模拟frameset的resize功能.html
    一个下划线(_)引发的"疑难杂症"
    几点小东西
    使用 ActiveReports 的 subReport 几点疑惑
  • 原文地址:https://www.cnblogs.com/gshelldon/p/15792712.html
Copyright © 2011-2022 走看看