简体   繁体   English

使用 Kompose 将 docker-compose 转换为 kubernetes

[英]Converting docker-compose to kubernetes using Kompose

Im new to Kubernetes and i saw that there is a way runing Kompose up, but i get this error:我是 Kubernetes 的新手,我看到有一种方法可以运行 Kompose,但我收到此错误:

root@master-node:kompose --file docker-compose.yml --volumes hostPath up
INFO We are going to create Kubernetes Deployments, Services and PersistentVolumeClaims for your Dockerized application. If you need different kind of resources, use the 'kompose convert' and 'kubectl create -f' commands instead.

FATA Error while deploying application: Error loading config file "/etc/kubernetes/admin.conf": open /etc/kubernetes/admin.conf: permission denied

ls -l /etc/kubernetes/admin.conf
-rw------- 1 root root 5593 Jun 14 08:59 /etc/kubernetes/admin.conf

How can i make this work?我怎样才能使这项工作?

system info: ubuntu18 Client Version: version.Info: Major:"1", Minor:"21"系统信息:ubuntu18 客户端版本:version.Info:主要:“1”,次要:“21”

I also tried making it work like that:我也试着让它像这样工作:

kompose convert --volumes hostPath
INFO Kubernetes file "postgres-1-service.yaml" created
INFO Kubernetes file "postgres-2-service.yaml" created
INFO Kubernetes file "postgres-1-deployment.yaml" created
INFO Kubernetes file "postgres-2-deployment.yaml" created
kubectl create -f postgres-1-service.yaml,postgres-2-service.yaml,postgres-1-deployment.yaml,postgres-1-claim0-persistentvolumeclaim.yaml,postgres-1-claim1-persistentvolumeclaim.yaml,postgres-2-deployment.yaml,postgres-2-claim0-persistentvolumeclaim.yaml

I get this error only on postgres-1-deployment.yaml and postgres-2-deployment.yaml.我仅在 postgres-1-deployment.yaml 和 postgres-2-deployment.yaml 上收到此错误。

service/postgres-1 created
service/postgres-2 created
persistentvolumeclaim/postgres-1-claim0 created
persistentvolumeclaim/postgres-1-claim1 created
persistentvolumeclaim/postgres-2-claim0 created
Error from server (BadRequest): error when creating "postgres-1-deployment.yaml": Deployment in version "v1" cannot be handled as a Deployment: v1.Deployment.Spec: v1.DeploymentSpec.Template: v1.PodTemplateSpec.Spec: v1.PodSpec.Containers: []v1.Container: v1.Container.Env: []v1.EnvVar: v1.EnvVar.Value: ReadString: expects " or n, but found t, error found in #10 byte of ...|,"value":true},{"nam|..., bigger context ...|sword"},{"name":"REPMGR_PGHBA_TRUST_ALL","value":true},{"name":"REPMGR_PRIMARY_HOST","value":"postgr|...
Error from server (BadRequest): error when creating "postgres-2-deployment.yaml": Deployment in version "v1" cannot be handled as a Deployment: v1.Deployment.Spec: v1.DeploymentSpec.Template: v1.PodTemplateSpec.Spec: v1.PodSpec.Containers: []v1.Container: v1.Container.Env: []v1.EnvVar: v1.EnvVar.Value: ReadString: expects " or n, but found t, error found in #10 byte of ...|,"value":true},{"nam|..., bigger context ...|sword"},{"name":"REPMGR_PGHBA_TRUST_ALL","value":true},{"name":"REPMGR_PRIMARY_HOST","value":"postgr|...

example of postgres-1-deployment.yaml: postgres-1-deployment.yaml 的示例:

apiVersion: apps/v1
kind: Deployment
metadata:
  annotations:
    kompose.cmd: /snap/kompose/19/kompose-linux-amd64 convert --volumes hostPath
    kompose.version: 1.21.0 (992df58d8)
  creationTimestamp: null
  labels:
    io.kompose.service: postgres-1
  name: postgres-1
spec:
  replicas: 1
  selector:
    matchLabels:
      io.kompose.service: postgres-1
  strategy:
    type: Recreate
  template:
    metadata:
      annotations:
        kompose.cmd: /snap/kompose/19/kompose-linux-amd64 convert --volumes hostPath
        kompose.version: 1.21.0 (992df58d8)
      creationTimestamp: null
      labels:
        io.kompose.service: postgres-1
    spec:
      containers:
      - env:
        - name: BITNAMI_DEBUG
          value: "true"
        - name: POSTGRESQL_PASSWORD
          value: password
        - name: POSTGRESQL_POSTGRES_PASSWORD
          value: adminpassword
        - name: POSTGRESQL_USERNAME
          value: user
        - name: REPMGR_NODE_NAME
          value: postgres-1
        - name: REPMGR_NODE_NETWORK_NAME
          value: postgres-1
        - name: REPMGR_PARTNER_NODES
          value: postgres-1,postgres-2:5432
        - name: REPMGR_PASSWORD
          value: repmgrpassword
        - name: REPMGR_PGHBA_TRUST_ALL
          value: yes
        - name: REPMGR_PRIMARY_HOST
          value: postgres-1
        - name: REPMGR_PRIMARY_PORT
          value: "5432"
        image: bitnami/postgresql-repmgr:11
        imagePullPolicy: ""
        name: postgres-1
        ports:
        - containerPort: 5432
        resources: {}
        volumeMounts:
        - mountPath: /bitnami/postgresql
          name: postgres-1-hostpath0
        - mountPath: /docker-entrypoint-initdb.d
          name: postgres-1-hostpath1
      restartPolicy: Always
      serviceAccountName: ""
      volumes:
      - hostPath:
          path: /db4_data
        name: postgres-1-hostpath0
      - hostPath:
          path: /root/ansible/api/posrgres11/cluster
        name: postgres-1-hostpath1
status: {}

Is kompose translated deploy.yml files the wrong way? kompose 翻译 deploy.yml 文件的方式是否错误? i did everything like guided on kompose guid我做了所有像在 kompose guid 上指导的事情

figured the issue is Kompose translated env value true without quotes "true" used this verifier https://kubeyaml.com/认为问题是 Kompose 翻译的 env 值 true 没有引号 "true" 使用了这个验证器https://kubeyaml.com/

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM