docker-compose项⽬迁移到k8s 背景
⽣产环境有个Confluence,因为是⽤的公有云,最近想迁移到⾃⼰的⾃建k8s集上。
由于项⽬是⽤的 docker-compose 启动运⾏的,⾸先是要备份数据。
1、备份PGSQL数据
docker exec 容器NAMES pg_dump -U User DB > /data/backup/db.sql
2、打包项⽬镜像
docker save confluence:latest | gzip >
docker save postgresql:latest | gzip >
3、docker-compose ⽂件格式转换成 deployment
转换完成,根据⾃⼰的需求在改改。
deployment
apiVersion: apps/v1
kind: Deployment
metadata:
namespace: ns-wiki
name: postgresql
labels:
app: postgresql
spec:
replicas: 1
selector:
matchLabels:
app: postgresql
template:
metadata:
name: postgresql
labels:
app: postgresql
spec:
restartPolicy: Always
containers:
- name: postgresql
image: blacklabelops/postgres:9.5.4
imagePullPolicy: IfNotPresent
env:
- name: POSTGRES_COLLATE
value: C
- name: POSTGRES_COLLATE_TYPE
value: C
- name: POSTGRES_DB
value: xxxxdb
- name: POSTGRES_ENCODING
value: UNICODE
- name: POSTGRES_PASSWORD
value: xxxx
- name: POSTGRES_USER
value: cxxxxdb
resources:
requests:
cpu: 100m
memory: 256Mi
limits:
cpu: 300m
memory: 2Gi
volumeMounts:
-
name: postgresql-data
mountPath: /var/lib/postgresql/data
- name: date-conf
mountPath: /etc/localtime
volumes:
- name: postgresql-data
persistentVolumeClaim:docker打包镜像
claimName: postgresql-data
- name: date-conf
hostPath:
path: /etc/localtime
pvc
kind: PersistentVolumeClaim
apiVersion: v1
metadata:
name: postgresql-data
namespace: ns-wiki
spec:
storageClassName: resize-gfs-class
accessModes:
- ReadWriteMany
resources:
requests:
storage: 50Gi
confluence 项⽬的⼤概也是这样
部署好了deployment 之后,导⼊数据到deployment的 pgsql
kubectl exec -i -n ns-wiki postgresql-5b9c8778ff-c98t6 -- psql -U xxxdb -d db < xxxxncedb.sql
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论