k8s下部署postgresql
环境:
OS:Centos 7
k8s:1.28
pg:16.6
1.创建名称空间
kubectl create namespace ns-pg
2.配置configmap
保存postgresql的用户名、密码等信息,注意密码如果是数字,需要用双引号裹起来
vi 1-configmap.yaml
[root@master pg]# more 1-configmap.yaml
apiVersion: v1
kind: ConfigMap
metadata:
name: pg-config
namespace: ns-pg
labels:
app: postgres
data:
POSTGRES_PASSWORD: "postgres"
我们这里只配置了密码,使用默认的postgres账号和postgres数据库
kubectl apply -f 1-configmap.yaml
3.创建pv
创建nfs子目录
mkdir -p /k8s/pg/data
[root@master pg]# more 2-pv.yaml
apiVersion: v1
kind: PersistentVolume
metadata:
name: pg-pv
namespace: ns-pg
spec:
accessModes:
- ReadWriteOnce
capacity:
storage: 200M
nfs:
path: /k8s/pg/data
readOnly: false
server: 192.168.1.102
kubectl apply -f 2-pv.yaml
4.创建pvc
[root@master pg]# more 3-pvc.yaml
apiVersion: v1
kind: PersistentVolumeClaim
metadata:
name: pg-pvc
namespace: ns-pg
spec:
accessModes:
- ReadWriteOnce
resources:
requests:
storage: 200M
volumeName: pg-pv
kubectl apply -f 3-pvc.yaml
5.创建deployment
vi 4-deployment.yaml
apiVersion: apps/v1
kind: Deployment
metadata:
namespace: ns-pg
name: pg-deployment
spec:
strategy:
type: Recreate
selector:
matchLabels:
app: postgres
replicas: 1
template:
metadata:
labels:
app: postgres
spec:
containers:
- name: postgres
image: registry.cn-shenzhen.aliyuncs.com/hxlk8s/postgresql:16.6
imagePullPolicy: "IfNotPresent"
ports:
- containerPort: 5432
envFrom:
- configMapRef:
name: pg-config ##configmap名称要和前面的configmap一致
volumeMounts:
- mountPath: /var/lib/postgresql/data
name: postgredb
volumes:
- name: postgredb
persistentVolumeClaim:
claimName: pg-pvc
kubectl apply -f 4-deployment.yaml
6.创建nodeport提供外部访问
[root@master pg]# more 5-nodeport.yaml
apiVersion: v1
kind: Service
metadata:
name: pg-service
namespace: ns-pg
labels:
app: postgres
spec:
type: NodePort
ports:
- port: 5432
targetPort: 5432
protocol: TCP
nodePort: 30001
selector:
app: postgres
kubectl apply -f 5-nodeport.yaml
7.客户端登录
在一个worker节点上安装pg客户端
#安装PostgreSQL的yum仓库
yum install -y https://download.postgresql.org/pub/repos/yum/reporpms/EL-7-x86_64/pgdg-redhat-repo-latest.noarch.rpm
#安装PostgreSQL 14版本
yum install -y postgresql14-server
登录
psql -U postgres -h 192.168.1.102 -p 30001 postgres
浙公网安备 33010602011771号