企业网站的建设论文,wordpress 财经插件,哈尔滨模板建站服务商,网站不能访问的原因【PostgresSQL----基于Kubernetes部署PostgresSQL】 文章目录 一、创建SC、PV和PVC存储对象1.1 准备一个nfs服务器1.2 编写SC、PV、PVC等存储资源文件1.3 编写部署PostgresSQL数据库的资源声明文件 二、部署PostgresSQL2.1 部署 PV、PVC等存储对象2.2 部署PostgresSQL数据库2.3…【PostgresSQL----基于Kubernetes部署PostgresSQL】 文章目录 一、创建SC、PV和PVC存储对象1.1 准备一个nfs服务器1.2 编写SC、PV、PVC等存储资源文件1.3 编写部署PostgresSQL数据库的资源声明文件 二、部署PostgresSQL2.1 部署 PV、PVC等存储对象2.2 部署PostgresSQL数据库2.3 查看是否创建成功 一、创建SC、PV和PVC存储对象
1.1 准备一个nfs服务器
若无nfs服务器可参考 NFS----搭建NFS服务器 部署一个
1.2 编写SC、PV、PVC等存储资源文件
如下资源文件包含SC、PV、PVC资源的声明主要修改以下几个位置
命名空间 命名空间需要修改为自己的namespace一下配置中共有三处需要修改nfs服务器ip地址 设置nfs服务器ip地址即可nfs 服务器供挂载目录 设置将存储目录挂载nfs服务器上的目录路径存储空间大小 存储空间大小根据实际需求设置注意PV和PVC中存储空间大小要保持一致。
kind: StorageClass
apiVersion: storage.k8s.io/v1
metadata:name: sc-postgresnamespace: my-namespacce # 命名空间
provisioner: kubernetes.io/no-provisioner
volumeBindingMode: WaitForFirstConsumer
---
apiVersion: v1
kind: PersistentVolume
metadata:name: pv-postgresnamespace: my-namespacce # 命名空间labels:pv: pv-postgres
spec:capacity:storage: 5Gi # 存储空间大小accessModes:- ReadWriteOncepersistentVolumeReclaimPolicy: RetainstorageClassName: sc-postgresnfs:path: /path/to/nfs/server/ # nfs 服务器供挂载目录server: nfs-server-ip # nfs 服务器ip地址
---
apiVersion: v1
kind: PersistentVolumeClaim
metadata:name: pvc-postgresnamespace: my-namespacce # 命名空间labels:pvc: pvc-postgres
spec:storageClassName: sc-postgresaccessModes:- ReadWriteOnceresources:requests:storage: 5Gi # 存储空间大小selector:matchLabels:pv: pv-postgres将修改后的配置文件比如命名为postgres_pvc_pv_sc.yaml
1.3 编写部署PostgresSQL数据库的资源声明文件
编写部署资源文件如下所示包含deployment和service的声明主要需要修改以下几个位置
命名空间 命名空间需要统一修改为与上面部署PV和PVC一致的命名空间数据库配置 配置数据库的用户名密码以及数据库名称此外还需要设置最大连接数默认的连接数为100在实际应用中无法很难满足需求因此这里最好在部署的时候直接设置对外开放端口 对外开放端口用于外部访问的在测试环境中通常是需要的在生产环境中考虑安全性通常不需要的这里按照测试环境的使用方式部署即使用NodePort类型的Service设置对外开发的端口即可
其他配置均无需修改如修改则需要和上面PV以及PVC等配置文件名称等统一。
apiVersion: apps/v1
kind: Deployment
metadata:name: postgresnamespace: my-namespace # 命名空间
spec:replicas: 1selector:matchLabels:app: postgrestemplate:metadata:labels:app: postgresspec:containers:- name: postgresimage: postgres:latestenv:- name: POSTGRES_USERvalue: postgres # 用户名- name: POSTGRES_PASSWORDvalue: postgres # 密码- name: POSTGRES_DBvalue: postgres # 数据库名- name: TZvalue: Asia/Shanghai- name: POSTGRES_MAX_CONNECTIONSvalue: 20000 # 最大连接数ports:- containerPort: 5432volumeMounts:- name: postgres-storagemountPath: /var/lib/postgresql/datavolumes:- name: postgres-storagepersistentVolumeClaim:claimName: pvc-postgres---
apiVersion: v1
kind: Service
metadata:name: postgresnamespace: my-namespace # 命名空间
spec:selector:app: postgresports:- port: 5432protocol: TCPtargetPort: 5432nodePort: 30101 # 对外开放端口type: NodePort将修改后的配置文件保存为 postgres.yaml 文件
二、部署PostgresSQL
2.1 部署 PV、PVC等存储对象
执行如下命令即可
kubectl apply -f postgres_pvc_pv_sc.yaml2.2 部署PostgresSQL数据库
执行如下命令即可
kubectl apply -f postgres.yaml2.3 查看是否创建成功
执行如下命令将my-namespace换成自己的命名空间如果查看到pod状态已经running了表示部署成功
kubectl get pod -n my-namespace