UWSGI एप्लिकेशन को लगातार वॉल्यूम असाइन करने का प्रयास कर रहा है, लेकिन मुझे निम्न त्रुटि मिल रही है: bind(): Operation not permitted [core/socket.c line 230]। काम करता है जब मैं कोई भी लगातार "खाली डीआईआर" वॉल्यूम असाइन नहीं करता हूं।

यहाँ लगातार वॉल्यूम की yaml फ़ाइलें हैं जिन्हें मैं असाइन करने का प्रयास कर रहा हूँ:

#volume claim
apiVersion: v1
kind: PersistentVolumeClaim
metadata:
  name: api-storage
spec:
  accessModes:
    - ReadWriteMany
  storageClassName: api-storage
  resources:
    requests:
      storage: 100Gi
#storage class
kind: StorageClass
apiVersion: storage.k8s.io/v1
metadata:
  name: api-storage
provisioner: kubernetes.io/azure-file
mountOptions:
  - dir_mode=0777
  - file_mode=0777
  - uid=root
  - gid=root
parameters:
  skuName: Standard_LRS

आवेदन का मेनिफेस्ट इस तरह दिखता है:


apiVersion: apps/v1
kind: Deployment
metadata:
  name: api-app
spec:
  replicas: 2
  selector:
    matchLabels:
      app: api-app
  template:
    metadata:
      labels:
        app: api-app
    spec:
      containers:
      - name: nginx
        image: nginx
        lifecycle:
          preStop:
            exec:
              command: ["/usr/sbin/nginx","-s","quit"]
        ports:
          - containerPort: 80
            protocol: TCP
        resources:
          limits:
            cpu: 50m
            memory: 100Mi
          requests:
            cpu: 10m
            memory: 50Mi
        volumeMounts:
          - name: storage
            mountPath: /var/run/api
          - name: nginx-conf
            mountPath: /etc/nginx/conf.d
      - name: api-app
        image: azurecr.io/api_api_se:opencv
        workingDir: /app
        command: ["/usr/local/bin/uwsgi"]
        args:
          - "--die-on-term"
          - "--manage-script-name"
          - "--mount=/=api:app_dispatch"
          - "--socket=/var/run/api/uwsgi.sock"
          - "--chmod-socket=777"
          - "--pyargv=se"
          # - "--metrics-dir=/storage"
          # - "--metrics-dir-restore"
        resources:
          requests:
            cpu: 150m
            memory: 1Gi
        volumeMounts:
          - name: storage
            mountPath: /var/run/api
          # - name: storage
          #   mountPath: /storage
      volumes:
        - name: storage  
# work's if following two lines are substituted with "emptyDir: {}"
          persistentVolumeClaim:
            claimName: api-storage
        - name: nginx-conf
          configMap:
            name: api
      tolerations:
      - key: "sku"
        operator: "Equal"
        value: "test"
        effect: "NoSchedule"
---
apiVersion: v1
kind: Service
metadata:
  labels:
    app: api-app
  name: api-app
spec:
  ports:
    - port: 80
      protocol: TCP
      targetPort: 80
  selector:
    app: api-app

अंतिम लक्ष्य यूडब्ल्यूएसजीआई से मेट्रिक्स एकत्र करना है, इस समय, यदि पॉड स्केल डाउन द्वारा हटा दिया जाता है तो मेट्रिक्स हटा दिए जाते हैं

0
user1334557 31 मई 2019, 12:06

1 उत्तर

सबसे बढ़िया उत्तर

इस समस्या को हल करने के लिए मुझे पहले वास्तविक फ़ोल्डर बनाना था, मेरे मामले में /storage, डॉकरफाइल में, एप्लिकेशन छवि बनाते समय, इसलिए मैंने RUN mkdir /storage को डॉकरफाइल

1
user1334557 27 जून 2019, 13:16