ReadWriteMany хранилище в Google Kubernetes Engine для StatefulSets

Реальное «неожиданное» поведение заключается в том, что установка флага делает исполняемый файл heap , а также стек. Флаг предназначен для использования с исполняемыми файлами, которые генерируют thunks на основе стека (например, gcc, когда вы берете адрес вложенной функции) и не должны влиять на кучу. Но Linux реализует это глобально, делая ВСЕ читаемые страницы исполняемыми.

Если вы хотите более тонкий элемент управления, вместо этого вы можете использовать системный вызов mprotect для управления исполняемыми разрешениями для каждой страницы - Добавить код:

uintptr_t pagesize = sysconf(_SC_PAGE_SIZE);
#define PAGE_START(P) ((uintptr_t)(P) & ~(pagesize-1))
#define PAGE_END(P)   (((uintptr_t)(P) + pagesize - 1) & ~(pagesize-1))
mprotect((void *)PAGE_START(shellcode), PAGE_END(shellcode+67) - PAGE_START(shellcode),
         PROT_READ|PROT_WRITE|PROT_EXEC);
0
задан xavierc 17 January 2019 в 06:50
поделиться

1 ответ

Руководство делает небольшую ошибку в зависимости от того, как вы следуете ей. [ClusterIP], определенный в постоянном томе, должен быть «nfs-server.default ...» вместо «nfs-service.default ...». «nfs-сервер» - это то, что используется в определении сервиса.

Ниже приведена очень минимальная настройка, которую я использовал для набора состояний. Я развернул первые 3 файла из учебника, чтобы создать PV & amp; PVC, а затем использовал нижеследующий yaml вместо бонусного yaml busybox, включенного автором. Это успешно развернуто. Дайте мне знать, если у вас есть проблемы.

apiVersion: v1
kind: Service
metadata:
    name: stateful-service
spec:
  ports:
  - port: 80
    name: web
  clusterIP: None
  selector:
    app: thestate
---
apiVersion: apps/v1
metadata:
  name: thestate
    labels:
      app: thestate
kind: StatefulSet
spec:
  serviceName: stateful-service
  replicas: 3
  selector:
    matchLabels:
      app: thestate
  template:
    metadata:
      labels:
        app: thestate
    spec:
      containers:
      - name: nginx
        image: nginx:1.8
        volumeMounts:
          - name: my-pvc-nfs
            mountPath: /mnt
        ports:
        - containerPort: 80
          name: web
      volumes:
      - name: my-pvc-nfs
        persistentVolumeClaim:
          claimName: nfs
0
ответ дан xavierc 17 January 2019 в 06:50
поделиться
Другие вопросы по тегам:

Похожие вопросы: