k8s_使用k8s部署博客系统deployment(四)

mysql deployment

前面的nfs  pv pvc secret configmap service等k8s对象已经创建好了,准备工作已经完成;现在可以开始准备deployment配置文件了。 

下面是wordpress系统中mysql的deployment配置文件,需要注释的地方有详细的注解。

#api版本
apiVersion: apps/v1
kind: Deployment
metadata:
    #deployment的名称
    name: wordpress-mysql
    #mysql deployment本身的label
    labels:
        app: wordpress
        tier: mysql
spec:
    selector:
        #deployment选择有下面两个标签的pod配置信息进行部署
        matchLabels:
            app: wordpress
            tier: mysql-pod
    strategy:
        #配置deployment的升级方式
        type: Recreate
    #pod的配置信息    
    template:
        metadata:
            #pod的label,与上面selector配置项的label对应
            labels:
                app: wordpress
                tier: mysql-pod
        spec:
            #pod内container相关配置信息
            containers:
              #container使用的镜像信息
              - image: mysql:5.7
                #container名称
                name: mysql
                #container使用的一些参数配置
                env:
                  #MYSQL_ROOT_PASSWORD参数配置信息,这些参数在镜像说明文档里会有介绍
                  - name: MYSQL_ROOT_PASSWORD
                    valueFrom:
                    #从名称为mysql-pass的secret对象读取password这个key对应的value信息,将其作为MYSQL_ROOT_PASSWORD的值传给container.
                        secretKeyRef:
                        #找到mysql-pass
                            name: mysql-pass
                            key: password
                  - name: MYSQL_DATABASE
                    valueFrom:
                    #从名称为mysql-config的configmap对象读取key为db-name的值,将其作为MYSQL_DATABASE的值传给container
                        configMapKeyRef:
                        #找到mysql-config
                            name: mysql-config
                            key: db-name
                #这里对ports进行命名,具体映射container端口到clusterip在service配置文件的selector已经选中这个pod进行映射了
                ports:
                  - containerPort: 3306
                    name: mysql
                #数据持久化信息
                volumeMounts:
                 #使用名称为mysql-persistent-storage的volumes配置进行数据持久化
                  - name: mysql-persistent-storage
                    #container中需要进行数据持久化的路径
                    mountPath: /var/lib/mysql
            #持久化存储配置
            volumes:
              #配置名,与上面volumeMounts中的name对应
              - name: mysql-persistent-storage
                #使用哪个pvc进行数据持久化,之前已经进行了pv和pvc的配置了,这里直接使用
                persistentVolumeClaim:
                    claimName: mysql-pv-claim

wordpress deployment

wordpress deployment文件基本和mysql deployment配置文件类似,下面只对不相同的地方进行详细注释。

apiVersion: apps/v1
kind: Deployment
metadata:
    name: wordpress
    labels:
        app: wordpress
        tier: frontend
spec:
    selector:
        matchLabels:
            app: wordpress
            tier: frontend-pod
    strategy:
        type: Recreate 
        #升级方式 还有rollingUpdate
    template:
        metadata:
            labels:
                app: wordpress
                tier: frontend-pod
        spec:
            containers:
              - image: wordpress
                name: wordpress
                env:
                  - name: WORDPRESS_DB_HOST
                    #这里是将名称为mysql的service的ip传给container的WORDPRESS_DB_HOST变量。env没有配置valuefrom就是从service获取对应的配置
                    value: mysql
                  - name: WORDPRESS_DB_PASSWORD
                    valueFrom:
                        secretKeyRef:
                            #mysql 密码,通过指定secret资源对象的name和对象的key来获取
                            name: mysql-pass
                            key: password
                  - name: WORDPRESS_DB_USER
                    valueFrom:
                        configMapKeyRef:
                            #mysql 密码,通过指定secret资源对象的name和对象的key来获取
                            name: mysql-config
                            key: dbuser
                ports:
                  - containerPort: 80
                    name: wordpress
                volumeMounts:
                  - name: wordpress-persistent-storage
                    mountPath: /var/www/html
            volumes:
              - name: wordpress-persistent-storage
                persistentVolumeClaim:
                    claimName: wordpress-pv-claim
posted @ 2021-10-05 21:17  flag_HW  阅读(606)  评论(0编辑  收藏  举报