首页 > 解决方案 > kubectl - 来自守护程序的错误响应:创建挂载源路径时出错

问题描述

我正在尝试按照指南https://developers.sap.com/tutorials/hxe-k8s-advanced-analytics.html#7f5c99da-d511-479b-在 Google Cloud Platform 的 Kubernetes 节点中安装 SAP HANA Express docker 映像8745-caebfe996164但是,在执行第 7 步“部署您的容器并连接到它们”期间,我没有得到预期的结果。

我正在执行命令kubectl create -f hxe.yaml,这是我正在使用的 yaml 文件:

kind: ConfigMap
apiVersion: v1
metadata:
  creationTimestamp: 2018-01-18T19:14:38Z
  name: hxe-pass
data:
  password.json: |+
    {"master_password" : "HXEHana1"}
---
kind: PersistentVolume
apiVersion: v1
metadata:
  name: persistent-vol-hxe
  labels:
    type: local
spec:
  storageClassName: manual
  capacity:
    storage: 150Gi
  accessModes:
    - ReadWriteOnce
  hostPath:
    path: "/data/hxe_pv"
---
kind: PersistentVolumeClaim
apiVersion: v1
metadata:
  name: hxe-pvc
spec:
  storageClassName: manual
  accessModes:
    - ReadWriteOnce
  resources:
    requests:
      storage: 50Gi
---
apiVersion: apps/v1
kind: Deployment
metadata:
  name: hxe
  labels:
    name: hxe
spec:
  selector:
    matchLabels:
      run: hxe
      app: hxe
      role: master
      tier: backend
  replicas: 1
  template:
    metadata:
      labels:
        run: hxe
        app: hxe
        role: master
        tier: backend
    spec:
      initContainers:
        - name: install
          image: busybox
          command: [ 'sh', '-c', 'chown 12000:79 /hana/mounts' ]
          volumeMounts:
            - name: hxe-data
              mountPath: /hana/mounts
      volumes:
        - name: hxe-data
          persistentVolumeClaim:
             claimName: hxe-pvc
        - name: hxe-config
          configMap:
             name: hxe-pass
      imagePullSecrets:
      - name: docker-secret
      containers:
      - name: hxe-container
        image: "store/saplabs/hanaexpress:2.00.045.00.20200121.1"
        ports:
          - containerPort: 39013
            name: port1
          - containerPort: 39015
            name: port2
          - containerPort: 39017
            name: port3
          - containerPort: 8090
            name: port4
          - containerPort: 39041
            name: port5
          - containerPort: 59013
            name: port6
        args: [ "--agree-to-sap-license", "--dont-check-system", "--passwords-url", "file:///hana/hxeconfig/password.json" ]
        volumeMounts:
          - name: hxe-data
            mountPath: /hana/mounts
          - name: hxe-config
            mountPath: /hana/hxeconfig
      - name: sqlpad-container
        image: "sqlpad/sqlpad"
        ports:
        - containerPort: 3000

---
apiVersion: v1
kind: Service
metadata:
  name: hxe-connect
  labels:
    app: hxe
spec:
  type: LoadBalancer
  ports:
  - port: 39013
    targetPort: 39013
    name: port1
  - port: 39015
    targetPort: 39015
    name: port2
  - port: 39017
    targetPort: 39017
    name: port3
  - port: 39041
    targetPort: 39041
    name: port5
  selector:
    app: hxe
---
apiVersion: v1
kind: Service
metadata:
  name: sqlpad
  labels:
    app: hxe
spec:
  type: LoadBalancer
  ports:
  - port: 3000
    targetPort: 3000
    protocol: TCP
    name: sqlpad
  selector:
    app: hxe

我还在使用 HANA Express Edition docker 映像的最新版本:store/saplabs/hanaexpress:2.00.045.00.20200121.1您可以在此处查看:https ://hub.docker.com/_/sap-hana-express-edition/plans/f2dc436a-d851-4c22- a2ba-9de07db7a9ac?tab=说明

我得到的错误如下:

错误:无法启动容器

有什么想法可能是错的吗?

向大家致以最诚挚的问候和新年快乐。

标签: kubernetesgoogle-cloud-platformgoogle-kubernetes-enginehana

解决方案


多亏了 Mahboob 的建议,我现在可以(部分)启动 pod,并且问题不在“busybox”容器启动阶段出现。问题是我为节点池使用了容器优化镜像,而需要的是 Ubuntu。如果您遇到类似问题,请仔细检查您在创建节点池时选择的图像风格。

但是,我现在有一个不同的问题,pod 正在启动(hanaxs 和另一个用于 sqlpad),但是其中一个,sqlpad 容器,在启动后的某个时候崩溃,并且 pod 卡在 CrashLoopBackOff 状态。如下图所示,Pod 处于 CrashLoopBackOff 状态,仅启动了 1/2,突然两者都在运行。

kubectl 获取 pods 命令

因为我是 kubernetes 和 docker 世界的新手,所以我没有找到解决这个问题的正确位置。希望你们中的一些人能给我带来一些光明。

此致。


推荐阅读