首页 > 解决方案 > kubernetes 如何为副本编写部署 yaml

问题描述

我有一个 pod yaml 文件(见下文)。它具有我想要的所有属性,除了副本属性。所以我必须编写部署 yaml。

apiVersion: v1
kind: Pod
metadata:
  name: app-ykt
  labels:
    app: app-ykt
    purpose: ykt_production
spec:
  containers:
  - name: app-ykt
    image: app
    imagePullPolicy: IfNotPresent
    ports:
      - containerPort: 80
    volumeMounts:
      - name: volume-app-ykt
        mountPath: /usr/application
    env:
      - name: spring.config.location
        value: application.properties
  volumes:
      - name: volume-app-ykt
        hostPath:
          path: /opt/docker/datalook-pre-core
          type: Directory

在编写部署文件时,我不得不提到我不想要的图像和其他属性。更重要的是,它创建了另一个 pod,并且缺少了一些我必须具备的属性,例如 volume。我的目标就是这个副本,这样我就可以获得 pod 的高可用性。有什么解决办法吗?

apiVersion: apps/v1
kind: Deployment
metadata:
  name: app-ykt
  labels:
    app: app-ykt
spec:
  replicas: 1
  selector:
    matchLabels:
      app: app-ykt
  template:
    metadata:
      labels:
        app: app-ykt
    spec:
      containers:
      - name: app-ykt
        image: app
        ports:
        - containerPort: 80

标签: kubernetes

解决方案


首先,我认为 hostPath 卷不是 HA 解决方案,因此您应该关注跨 kubernetes 集群共享一个卷作为 ReadWriteMany Persistent Volume。然后你还需要在复制的 pod 之间使用内部负载均衡器,比如 Services[0]。

我希望它对你有帮助。

[0][ https://kubernetes.io/docs/concepts/services-networking/service/]


推荐阅读