Kubernetes 使用守护程序集运行glusterfs群集

Kubernetes 使用守护程序集运行glusterfs群集,kubernetes,glusterfs,Kubernetes,Glusterfs,我一直在尝试在我的kubernetes群集上运行glusterfs群集,它使用以下各项: glusterfs service.json { "kind": "Service", "apiVersion": "v1", "metadata": { "name": "glusterfs-cluster" }, "spec": { "type": "NodePort", "selector": { "name": "gluster" },

我一直在尝试在我的kubernetes群集上运行glusterfs群集,它使用以下各项:

glusterfs service.json

{
  "kind": "Service",
  "apiVersion": "v1",
  "metadata": {
    "name": "glusterfs-cluster"
  },
  "spec": {
    "type": "NodePort",
    "selector": {
      "name": "gluster"
    },
    "ports": [
      {
        "port": 1
      }
    ]
  }
}
glusterfs server.json

{
  "apiVersion": "extensions/v1beta1",
  "kind": "DaemonSet",
  "metadata": {
    "labels": {
      "name": "gluster"
    },
    "name": "gluster"
  },
  "spec": {
    "selector": {
      "matchLabels": {
        "name": "gluster"
      }
    },
    "template": {
      "metadata": {
        "labels": {
          "name": "gluster"
        }
      },
      "spec": {
        "containers": [
          {
            "name": "gluster",
            "image": "gluster/gluster-centos",
            "livenessProbe": {
              "exec": {
                "command": [
                  "/bin/bash",
                  "-c",
                  "systemctl status glusterd.service"
                ]
              }
            },
            "readinessProbe": {
              "exec": {
                "command": [
                  "/bin/bash",
                  "-c",
                  "systemctl status glusterd.service"
                ]
              }
            },
            "securityContext": {
              "privileged": true
            },
            "volumeMounts": [
              {
                "mountPath": "/mnt/brick1",
                "name": "gluster-brick"
              },
              {
                "mountPath": "/etc/gluster",
                "name": "gluster-etc"
              },
              {
                "mountPath": "/var/log/gluster",
                "name": "gluster-logs"
              },
              {
                "mountPath": "/var/lib/glusterd",
                "name": "gluster-config"
              },
              {
                "mountPath": "/dev",
                "name": "gluster-dev"
              },
              {
                "mountPath": "/sys/fs/cgroup",
                "name": "gluster-cgroup"
              }
            ]
          }
        ],
        "dnsPolicy": "ClusterFirst",
        "hostNetwork": true,
        "volumes": [
          {
            "hostPath": {
              "path": "/mnt/brick1"
            },
            "name": "gluster-brick"
          },
          {
            "hostPath": {
              "path": "/etc/gluster"
            },
            "name": "gluster-etc"
          },
          {
            "hostPath": {
              "path": "/var/log/gluster"
            },
            "name": "gluster-logs"
          },
          {
            "hostPath": {
              "path": "/var/lib/glusterd"
            },
            "name": "gluster-config"
          },
          {
            "hostPath": {
              "path": "/dev"
            },
            "name": "gluster-dev"
          },
          {
            "hostPath": {
              "path": "/sys/fs/cgroup"
            },
            "name": "gluster-cgroup"
          }
        ]
      }
    }
  }
}
根据我的pod定义,我正在做:

"volumes": [
  {
    "name": "< volume name >",
    "glusterfs": {
      "endpoints": "glusterfs-cluster.default.svc.cluster.local",
      "path": "< gluster path >",
      "readOnly": false
    }
  }
]

日志清楚地说明了发生了什么:

无法获取终结点glusterfs群集[未找到终结点“glusterfs群集]

因为:

  "ports": [
  {
    "port": 1
  }

在几个方面都是假的。首先,“1”端口非常可疑。其次,它在
守护进程
端没有匹配的
容器端口:
,kubernetes可以指向
服务
——因此,它不会为
(podIP、协议、端口)
元组创建
端点。由于glusterfs(合理地)希望直接联系底层的
Pod
s,而无需通过
服务
,因此它无法发现
Pod
s,一切都会突然停止。

您是否仍有此问题?这是在Google容器引擎上偶然发现的吗?我的一位同事已经成功地在K8S上部署了Gluster(可能是1/2版本,但我想这无关紧要):
  "ports": [
  {
    "port": 1
  }