• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

Kubernetes z docker-compose

Object Storage Arubacloud
+2 głosów
223 wizyt
pytanie zadane 9 lipca 2020 w PHP przez Eliro Stary wyjadacz (12,160 p.)

Cześć!

Na swoim serwerze posiadam dwie aplikacje napisane w Symfony. Obie posiadają pliki docker-compose i korzystają ze wspólnego serwera bazy danych za pośrednictwem "network". Chciałbym zmigrować to na kubernetes. Użyłem więc narzędzia "kompose" i przekonwertowałem pliki docker-compose na pliki kubernetesa. Baza danych oraz phpmyadmin wstała - problem jest jednak z serwerem. 

- apiVersion: extensions/v1beta1
  kind: Deployment
  metadata:
    annotations:
      kompose.cmd: kompose convert -f docker-compose.yml -o kub-test.yaml
      kompose.version: 1.19.0 (f63a961c)
    creationTimestamp: null
    labels:
      io.kompose.service: webserver
    name: webserver
  spec:
    replicas: 1
    strategy:
      type: Recreate
    template:
      metadata:
        annotations:
          kompose.cmd: kompose convert -f docker-compose.yml -o kub-test.yaml
          kompose.version: 1.19.0 (f63a961c)
        creationTimestamp: null
        labels:
          io.kompose.service: webserver
      spec:
        containers:
        - image: test_webserver
          imagePullPolicy: Never
          name: test
          ports:
          - containerPort: 80
          resources: {}
          volumeMounts:
          - mountPath: /var/www/html
            name: webserver-claim0
        restartPolicy: Always
        volumes:
        - name: webserver-claim0
          persistentVolumeClaim:
            claimName: webserver-claim0
  status: {}
- apiVersion: v1
  kind: PersistentVolumeClaim
  metadata:
    creationTimestamp: null
    labels:
      io.kompose.service: webserver-claim0
    name: webserver-claim0
  spec:
    accessModes:
    - ReadWriteOnce
    resources:
      requests:
        storage: 5Gi
  status: {}
kind: List
metadata: {}

Lecz błąd jaki się wyświetla to: "

pod has unbound immediate PersistentVolumeClaims

Próbowałem naprawić ten błąd dodając taki fragment:

- apiVersion: v1
  kind: PersistentVolume
  metadata:
    name: webserver-claim0
  spec:
    storageClassName: standard
    capacity:
      storage: 5Gi
    accessModes:
      - ReadWriteOnce
    hostPath:
      path: "/mnt/test/data"
      type: DirectoryOrCreate

Lecz chyba nie do końca się to udało

Error from server (Invalid): PersistentVolumeClaim "webserver-claim0" is invalid: spec: Forbidden: is immutable after creation except resources.requests for bound claims
Error from server (Invalid): PersistentVolume "webserver-claim0" is invalid: spec.persistentvolumesource: Forbidden: is immutable after creation

Miał ktoś do czynienia z kubernetes i mógłby powiedzieć mi co źle robię?

1 odpowiedź

0 głosów
odpowiedź 9 lipca 2020 przez Wiciorny Ekspert (269,710 p.)
wybrane 10 lipca 2020 przez Eliro
 
Najlepsza

Odsyłam, może tutaj coś będzie w temacie 
https://stackoverflow.com/questions/60175522/kubernetes-persistentvolumeclaim-error-forbidden-is-immutable-after-creation
naprwoadza mnie informacja o niezmienności obiektu w pierwszej lini błędu dotyczącego zapytania. 

komentarz 10 lipca 2020 przez Eliro Stary wyjadacz (12,160 p.)
edycja 10 lipca 2020 przez Eliro

Odpowiedzią było użycie konwertera w ten sposób:

kompose convert --volumes hostPath

Niestety mam nowy problem:

Error from server (Invalid): error when creating "database-deployment.yaml": Deployment.apps "database" is invalid: spec.template.metadata.labels: Invalid value: map[string]string{"io.kompose.service":"database"}: `selector` does not match template `labels`
Error from server (Invalid): error when creating "phpmyadmin-deployment.yaml": Deployment.apps "phpmyadmin" is invalid: spec.template.metadata.labels: Invalid value: map[string]string{"io.kompose.service":"phpmyadmin"}: `selector` does not match template `labels`
Error from server (Invalid): error when creating "webserver-deployment.yaml": Deployment.apps "webserver" is invalid: spec.template.metadata.labels: Invalid value: map[string]string{"io.kompose.service":"webserver"}: `selector` does not match template `labels`

A tak wyglądają pliki deploymentu:

apiVersion: apps/v1
kind: Deployment
metadata:
  annotations:
    kompose.cmd: kompose convert --volumes hostPath
    kompose.version: 1.19.0 (f63a961c)
  creationTimestamp: null
  labels:
    io.kompose.service: webserver
    app: webserverrro
  name: webserver
spec:
  selector:
    matchLabels: 
      app: webserverrro
  template:
    metadata:
      labels:
        app: webserverrro
  replicas: 1
  strategy:
    type: Recreate
  template:
    metadata:
      annotations:
        kompose.cmd: kompose convert --volumes hostPath
        kompose.version: 1.19.0 (f63a961c)
      creationTimestamp: null
      labels:
        io.kompose.service: webserver
    spec:
      containers:
      - image: webserver
        name: pricerank
        ports:
        - containerPort: 80
        resources: {}
        volumeMounts:
        - mountPath: /var/www/html
          name: webserver-hostpath0
      restartPolicy: Always
      volumes:
      - hostPath:
          path: /root/pricerank/root/webserverrro
        name: webserver-hostpath0
status: {}

 

komentarz 10 lipca 2020 przez Eliro Stary wyjadacz (12,160 p.)
Naprawione. Zdublowałem sobie "template" omyłkowo.

Podobne pytania

0 głosów
0 odpowiedzi 236 wizyt
pytanie zadane 3 lipca 2019 w SQL, bazy danych przez krzy123 Początkujący (260 p.)
+1 głos
2 odpowiedzi 214 wizyt
pytanie zadane 19 maja 2021 w Inne języki przez Jakub 0 Pasjonat (23,120 p.)
+1 głos
0 odpowiedzi 122 wizyt

92,563 zapytań

141,413 odpowiedzi

319,590 komentarzy

61,948 pasjonatów

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto polecana książka warta uwagi.
Pełną listę książek znajdziesz tutaj.

Akademia Sekuraka

Kolejna edycja największej imprezy hakerskiej w Polsce, czyli Mega Sekurak Hacking Party odbędzie się już 20 maja 2024r. Z tej okazji mamy dla Was kod: pasjamshp - jeżeli wpiszecie go w koszyku, to wówczas otrzymacie 40% zniżki na bilet w wersji standard!

Więcej informacji na temat imprezy znajdziecie tutaj. Dziękujemy ekipie Sekuraka za taką fajną zniżkę dla wszystkich Pasjonatów!

Akademia Sekuraka

Niedawno wystartował dodruk tej świetnej, rozchwytywanej książki (około 940 stron). Mamy dla Was kod: pasja (wpiszcie go w koszyku), dzięki któremu otrzymujemy 10% zniżki - dziękujemy zaprzyjaźnionej ekipie Sekuraka za taki bonus dla Pasjonatów! Książka to pierwszy tom z serii o ITsec, który łagodnie wprowadzi w świat bezpieczeństwa IT każdą osobę - warto, polecamy!

...