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 > confluence.tar.gz
docker save postgresql:latest | gzip > postgresql.tar.gz

 

3、docker-compose 文件格式轉換成 deployment

 

參考鏈接 https://kompose.io/setup/

參考鏈接 https://kubernetes.io/zh/docs/tasks/configure-pod-container/translate-compose-kubernetes/

 

 

 

 轉換完成,根據自己的需求在改改。

 

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:
          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

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM