برنامه نویسی

انبار راه دور Git خود را در K8s بسازید

  • 1. ابتدا مشکل تداوم را حل کنید

یک دایرکتوری persistence، میزبان (سرور) در کانتینر Kind ایجاد کنید و دستور زیر را اجرا کنید:

docker exec -it dbe0bb145add mkdir -p /data/gitea

بررسی کنید که آیا تأیید موفقیت آمیز است یا خیر

(base) [root@ip-10-242-18-237 ec2-user]# docker exec -it dbe0bb145add ls  /data/
docker  gitea  jenkins

یک حجم پایدار ایجاد کنید

apiVersion: v1
kind: PersistentVolume
metadata:
  name: gitea-pv-volume
  labels:
    type: local
spec:
  storageClassName: standard
  claimRef:
    name: gitea-pv-claim
    namespace: devops-tools
  capacity:
    storage: 10Gi
  accessModes:
    - ReadWriteOnce
  local:
    path: /data/gitea
  nodeAffinity:
    required:
      nodeSelectorTerms:
      - matchExpressions:
        - key: kubernetes.io/hostname
          operator: In
          values:
          - spiders-control-plane
---
apiVersion: v1
kind: PersistentVolumeClaim
metadata:
  name: gitea-pv-claim
  namespace: devops-tools
spec:
  storageClassName: standard
  accessModes:
    - ReadWriteOnce
  resources:
    requests:
      storage: 10Gi
  • 2. استقرار انبار gitea

اگر وابستگی به پایگاه داده وجود دارد، ابتدا پایگاه داده را مستقر کنید.

apiVersion: apps/v1
kind: Deployment
metadata:
  name: gitea-postgres
spec:
  replicas: 1
  selector:
    matchLabels:
      app: gitea-postgres
  template:
    metadata:
      labels:
        app: gitea-postgres
    spec:
      containers:
        - name: postgres
          image: postgres:13
          env:
            - name: POSTGRES_DB
              value: "gitea"
            - name: POSTGRES_USER
              value: "gitea"
            - name: POSTGRES_PASSWORD
              value: "666"
          ports:
            - containerPort: 5432
          volumeMounts:
            - mountPath: /var/lib/postgresql/data
              name: postgres-storage
      volumes:
        - name: postgres-storage
          persistentVolumeClaim:
            claimName: gitea-pv-claim
---

apiVersion: v1
kind: Service
metadata:
  name: gitea-postgres
  labels:
    app: gitea-postgres
spec:
  ports:
    - port: 5432
  selector:
    app: gitea-postgres

سرویس Gitea را مستقر کنید

apiVersion: apps/v1
kind: Deployment
metadata:
  name: gitea
spec:
  replicas: 1
  selector:
    matchLabels:
      app: gitea
  template:
    metadata:
      labels:
        app: gitea
    spec:
      initContainers:
        - name: init-permissions
          image: busybox
          command: ["sh", "-c", "chown -R 1000:1000 /data/gitea"]
          volumeMounts:
            - name: gitea-storage
              mountPath: /data/gitea
      containers:
        - name: gitea
          image: gitea/gitea:1.16.0
          env:
            - name: USER_UID
              value: "1000"
            - name: USER_GID
              value: "1000"
            - name: GITEA__database__DB_TYPE
              value: "postgres"
            - name: GITEA__database__HOST
              value: "gitea-postgres:5432"
            - name: GITEA__database__NAME
              value: "gitea"
            - name: GITEA__database__USER
              value: "gitea"
            - name: GITEA__database__PASSWD
              value: "666"
          ports:
            - containerPort: 3000
            - containerPort: 22
          volumeMounts:
            - mountPath: /data
              name: gitea-storage
              readOnly: false
      volumes:
        - name: gitea-storage
          persistentVolumeClaim:
            claimName: gitea-pv-claim
---
apiVersion: v1
kind: Service
metadata:
  name: gitea
  labels:
    app: gitea
spec:
  ports:
    - name: http
      port: 3000
      targetPort: 3000
    - name: ssh
      port: 96
      targetPort: 22
  selector:
    app: gitea
  • 3. آزمایش کنید که آیا سرویس انبار راه دور Git با موفقیت اجرا شده است یا خیر

توضیحات تصویر

دسترسی بر اساس IP در خوشه ارائه شده توسط سرویس: http://10.96.126.83:3000
نتیجه: آزمون درون خوشه ای قبول شد!

توضیحات تصویر

  • 4. مسیریابی Nginx را طوری پیکربندی کنید که بتوان به مخزن راه دور Git در خارج از خوشه دسترسی داشت.

توضیحات تصویر

توضیحات تصویر

نوشته های مشابه

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *

دکمه بازگشت به بالا