ошибка: ошибка синтаксического анализа wordpress-deployment.yaml: ошибка преобразования YAML в JSON: yaml: строка 33: не удалось найти ожидаемый ‘:’

#wordpress #kubernetes #yaml

#wordpress #kubernetes #yaml

Вопрос:

  1. попытка следовать руководству kubernetes[1] Пример: развертывание WordPress и MySQL с постоянными томами;
  2. запустите команду ‘kubectl apply -f wordpress-deployment.yaml’ в google kubernetes с помощью cloudshell;
  3. получил эту ошибку: ошибка синтаксического анализа wordpress-deployment.yaml: ошибка преобразования YAML в JSON: yaml: строка 33: не удалось найти ожидаемый ‘:’

[1]https://kubernetes.io/docs/tutorials/stateful-application/mysql-wordpress-persistent-volume/

/** ОБНОВЛЕНИЕ: Спасибо ! Я решил использовать настройку в один клик для среды разработки wordpress docker https://console.cloud.google.com/marketplace/details/google/wordpress **/

wordpress-deployment.yaml

 apiVersion: v1
kind: Service
metadata:
  name: wordpress
  labels:
    app: wordpress
spec:
  ports:
    - port: 80
  selector:
    app: wordpress
    tier: frontend
  type: LoadBalancer
---
apiVersion: v1
kind: PersistentVolumeClaim
metadata:
  name: wp-pv-claim
  labels:
    app: wordpress
spec:
  accessModes:
    - ReadWriteOnce
  resources:
    requests:
      storage: 20Gi
---
apiVersion: apps/v1 # for versions before 1.9.0 use apps/v1beta2
kind: Deployment
metadata:
  name: wordpress
  labels:
    app: wordpress
spec:
  selector:
    matchLabels:
      app: wordpress
      tier: frontend
  strategy:
    type: Recreate
  template:
    metadata:
      labels:
        app: wordpress
        tier: frontend
    spec:
      containers:
      - image: wordpress:4.8-apache
        name: wordpress
        env:
        - name: WORDPRESS_DB_HOST
          value: 34.72.250.151
        - name: WORDPRESS_DB_PASSWORD
          valueFrom:
            secretKeyRef:
              name: mysql-pass
              key: password
        - name: WORDPRESS_DB_USER
          valueFrom:
           secretkeyRef:
            name: mysql-pass
        ports:
        - containerPort: 80
          name: wordpress
        volumeMounts:
        - name: wordpress-persistent-storage
          mountPath: /var/www/html
      volumes:
      - name: wordpress-persistent-storage
        persistentVolumeClaim:
          claimName: wp-pv-claim
  

Комментарии:

1. Вы проверили, не содержит ли ваш локальный файл YAML каких-либо специальных скрытых символов (например, ^I)? помогает «файл cat -etv» …

2. «cat -etv wordpress-deployment.yaml» — запустите это в той же папке, где wordpress-deployment. yaml сохранен.

3. cat -etv wordpress-deployment. селектор yaml: $ app: wordpress$ уровень интерфейса: интерфейс $ тип: LoadBalancer $ — $ apiVersion: v1$ вид: PersistentVolumeClaim$ метаданные:$ имя: wp-pv-claim$ метки: $ приложение: wordpress $ спецификация: $ accessModes:$ — ReadWriteOnce$ ресурсы:$ запросы:$ хранилище: 20Gi $ — $

4. apiVersion: apps / v1 # для версий до 1.9.0 используйте apps/v1beta2$ вид: Развертывание $ метаданные:$ имя: wordpress$ метки:$ приложение: wordpress $ спецификация: $ селектор: $ Метки соответствия:$ приложение: wordpress$ уровень: интерфейс $ стратегия:$ тип: воссоздать $ шаблон: $метаданные: $ labels:$ app: wordpress $ уровень: интерфейс $ спецификация: $

5. контейнеры:$ — изображение: wordpress: 4.8-apache$ имя: wordpress $ env:$ — имя: WORDPRESS_DB_HOST $ значение: 34.72.250.151$ — имя: WORDPRESS_DB_PASSWORD $ Значение из:$ secretKeyRef:$ имя: mysql-передача $ ключ: пароль $ — имя: WORDPRESS_DB_USER $ Значение из-за—^ Z $ secretkeyRef:$ name: mysql-pass $

Ответ №1:

В приведенном ниже фрагменте кода в файле yaml есть 3 проблемы.

  1. В приведенном ниже фрагменте есть пробел после valueFrom: key, удалите пробел после «:»

  2. В ключе secretKeyRef ‘K’ должно быть в верхнем регистре (secretKeyRef).

  3. В secretKeyRef отсутствует значение ‘key’.

     - name: WORDPRESS_DB_USER
               valueFrom:
                secretkeyRef:
                 name: mysql-pass 
      

Должно выглядеть так.

 - name: WORDPRESS_DB_USER
          valueFrom:
           secretKeyRef:
            name: mysql-pass
            key: username
  

Спасибо,

Комментарии:

1. service / wordpress без изменений persistentvolumeclaim/ wp-pv-утверждение без изменений ошибка: ошибка проверки «wordpress-deployment.yaml»: ошибка проверки данных: [Ошибка проверки (Deployment.spec.template.spec.volumes[0].PersistentVolumeClaim): неизвестное поле «clahiimName» в io.k8s.api.core.v1.PersistentVolumeClaimVolumeSource, ошибка проверки (Deployment.spec.template.spec.volumes[0].PersistentVolumeClaim): отсутствует обязательное поле «claimName» в io.k8s.api.core.v1.PersistentVolumeClaimVolumeSource]; если вы решите игнорировать эти ошибки, отключите проверку с помощью —validate=false

2. Ошибка выглядит как орфографическая ошибка в слове «claimName» (упомянутом как clahiimName) в файле yaml. Не могли бы вы, пожалуйста, исправить это.

3. Спасибо! Я попытался использовать настройку one click для среды разработки wordpress docker console.cloud.google.com/marketplace/details/google/wordpress

Ответ №2:

Чтобы избежать опечаток, я решил использовать настройку one click для среды разработки wordpress docker https://console.cloud.google.com/marketplace/details/google/wordpress