首页 > 解决方案 > 具有裸机的 Kubernetes 有状态应用程序

问题描述

我对 Kubernetes 和云计算还很陌生。我正在家里使用裸机服务器(实际上是 vbox 上的虚拟服务器),并尝试使用 StatefulSet 运行有状态应用程序。我有 1 个主节点和 2 个工作节点,我正在尝试在这个集群上运行一个数据库应用程序。所以每个节点都有 1 个 pod,我对卷很困惑。我使用hostpath卷(下面的代码),但卷单独工作(实际上它们没有同步)。因此,当我到达它们时,我的 2 个 pod 的工作方式不同(相同的应用程序,但它们像 2 个不同的服务器一样运行)。

如何在 2 个同步的 pod 中运行该应用程序?

我尝试在 2 个从站之间同步卷文件。我还尝试将卷文件与部署同步。我尝试通过卷配置(持久卷和持久卷配置)来做到这一点。

apiVersion: apps/v1
kind: StatefulSet
metadata:
  name: cloud
spec:
  selector:
    matchLabels:
      app: cloud
  serviceName: "cloud"
  replicas: 2
  template:
    metadata:
      labels:
        app: cloud
    spec:
      containers:
      - name: cloud
        image: owncloud:v2
        imagePullPolicy: Never
        ports:
        - containerPort: 80
          name: web
        volumeMounts:
        - name: cloud-volume
          mountPath: /var/www/html/
      volumes:
      - name: cloud-volume
        hostPath:
          path: /volumes/cloud/
---
kind: Service
apiVersion: v1
metadata:
  name: cloud
spec:
  selector:
    app: cloud
  type: LoadBalancer
  ports:
  - protocol: TCP
    port: 80

标签: dockerkubernetes

解决方案


推荐阅读